Der 2k/3 ist in Delphi geschrieben, dass sieht man schon an der calling convention im Assembler und an verschiedenen Delphi Sachen in der exe mit denen ich wiederum nichts anfangen kann. Willst du nun den Maker verändern bringt dir dieses Wissen allerdings denkbar wenig, denn du hast den Delphi Sourcecode nicht. Was du hast ist astreiner x86 assembler. (in binärform)
Dazu kommt noch, dass dieser Code natürlich nicht direkt von einem Menschen geschrieben wurde, sondern von einem Programm (Compiler) generiert wurde. Der Compiler macht dabei ne Menge Sachen mit dem ursprünglichen Code die ihn im Effekt meist absolut unlesbar machen, es sei denn du hast sehr viel Erfahrung mit solchen Dingen.
Der erste Schritt sollte jedenfalls sein, Assembler zu lernen. Ich würde dir dieses Buch emfehlen: Art of Assembly Language Programming. Das gibt es zwar nicht auf Deutsch, und es behandelt nur sog. "High Level Assembler", aber vermittelt eigentlich alles Wissen was man jemals zu Assembler wissen muss. (außer vielleicht wenn du dein eigenes Betriebssystem, oder einfach für einen anderen Prozessor wie zum Beispiel ppc schreiben willst)
Rein technisch ist es nicht notwendig sich wirklich so gut mit Assembler auszukennen für die meisten Anwendungen reicht es auch nur die Grundlagen zu kennen. In dem Fall dauert es halt länger, und in deinem Fall halte ich es nicht für besonders ratsam.
Außerdem ist ein gutes Wissen über Features und Konzepte von Delphi unabdingbar um wirklich mit dem Code des 2k arbeiten zu können. Das ist zwar kein Delphi, aber einige Strukturen sind nach wie vor erkennbar, und erleichtern die Arbeit mit dem Code enorm.
Um nun überhaupt arbeiten zu können brauchst du die richtigen Programme. Anders geht es aus verschiedenen Gründen einfach nicht oder dauert zu lange. (zum beispiel sind Sprungmarken keine deskriptiven Strings, sondern einfach Zahlen die mehr oder weniger direkt auf Speicherpositionen zeigen)
Ganz gut geeignet ist IDA pro, ein "interaktiver disassembler" mit eingebautem und recht leistungsfähigem Debugger. Das Programm hat zwar seinen Preis und teilweise würde ich noch weitere Programme zu rate ziehen, aber es macht die Arbeit überhaupt erstmal möglich.
Wenn du hierbei nun ein vorhandenes Programm verändern willst, fang am besten damit an es neu zu schreiben, da man nach wie vor mit Assembler nicht gut arbeiten kann.
Das Problem bis hier her ist allerdings, dass gerade dieses debuggen und neu schreiben von Programmen die du nicht selbst geschrieben hast, unter reverse engineering fällt und damit illegal ist.
Aber zumindest ist es möglich und ich hoffe ich konnte dir helfen.
Achso, bevor ich das noch vergesse: die viel angepriesenen "decompiler" sind definitiv keine Option.
Das liegt zuerst mal daran, dass es praktisch keinen richtigen decompiler gibt (Boomerang sieht gut aus, befindet sich aber noch in der Entwicklung, ansonsten kann man halt nur Bytecode gut decompilieren, zum Beispiel sind .Net Programme wirklich freundlich zu hackern) und zum anderen, dass die die es gibt, meist weniger Information liefern als gute Disassembler.
Zum Beispiel bringen dir Funktionen mit Namen wie proc123() die ihre Argumente über inline Assembler ohne richtige calling convention übergeben bekommen nicht wirklich was.