wie schreibt man patches????



  • bin ein anfänger, also falls diese frage für euch einfach sein sollte, bitte nicht böse sein *g*

    ich frage mich nur:

    wie schreibt man patches?????

    und zwar so dass sie das programm verändern bzw. verbessern....



  • Interessiert Dich die programmiertechnische Umsetzung oder die technische Realisierung, wie man ein Programm patcht?

    Ein moderner Ansatz arbeitet wohl damit, daß man bestimmte Teilbereich der Software in COM-Objekte (oder CORBA) auslagert und diese dann auch durch eine neue Implementation ersetzen kann.

    Hardcoreansätze laufen so, daß man in der Exe Funktionsaufrufe ersetzt durch Aufrufe zu anderen stellen, so daß nicht mehr die alte Implementation der Funktion aufgerufen wird, sonder die Neue. Das ist aber ziemliches Gehacke.

    Manche Programme bauen für sowas daher gleich die ganzen Funktionen im Programm in Form einer Sprungtabelle auf (also eine Art DLL im Programm), so daß man nur die Sprungtabelle ändern muß.

    Tja, und mancher Patch tauscht einfach die Exe-Datei aus... es gibt Differenzbilder, die einfach zwei Exes vergleichen, die Unterschiede in eine dritte Datei schreiben. Der Aufruf des Differenzfiles führt dann dazu, daß die Änderungen in die alte Exe eingebaut werden und dadurch eine neue entsteht.

    Das ist zwar vielleicht technisch interessiert (Kompression, Delta-Kompression, etc), aber aus Softwaresicht banal, weil es wirklich nur dem Austausch der Exe entspricht. Der Softwareentwickler der Exe würde davon überhaupt nichts bemerken und sich überhaupt nicht darum kümmern.





  • @Marc++us
    also viele Patches (für binär Distributionen) arbeiten doch einfach so, dass der Hersteller den gepatchten Code neu kompiliert und den Unterschied der alten Binär Datei und der neuen speichert (siehe zB. GNU/Diffutils) und dann nimmt man ein Programm (siehe zB. GNU/Patch) um die alte Exe auf den neuen Stand zu bringen.

    Aber ich glaub <patcher> meint eher so inoffizielle Patches. Die sind recht schwierig glaube ich. Man muss dafür gute Assembler Kentnisse haben und braucht einen guten Debugger und einen DisAssembler. Man nimmt einfach das Programm, versucht die Abläufe zu verstehen und schreibt dann mit dem HexEditor neuen Code in die Binär Datei.



  • Original erstellt von kingruedi:
    @Marc++us
    also viele Patches (für binär Distributionen) arbeiten doch einfach so, dass der Hersteller den gepatchten Code neu kompiliert und den Unterschied der alten Binär Datei und der neuen speichert (siehe zB. GNU/Diffutils) und dann nimmt man ein Programm (siehe zB. GNU/Patch) um die alte Exe auf den neuen Stand zu bringen.

    Ah ja, und was ist der Unterschied zu dem von mir gesagten:

    Tja, und mancher Patch tauscht einfach die Exe-Datei aus... es gibt Differenzbilder, die einfach zwei Exes vergleichen, die Unterschiede in eine dritte Datei schreiben. Der Aufruf des Differenzfiles führt dann dazu, daß die Änderungen in die alte Exe eingebaut werden und dadurch eine neue entsteht.

    *confused*



  • keiner 😉



  • ups, dann hab ich wohl nicht ganz gelesen was du geschrieben hast 😞

    gibt natürlich keinen Unterschied


Anmelden zum Antworten