Zitat Zitat von Aretures
hmm du hast mal gesagt das man die Variablen werte des Makers auslesen kann ! Wie , wie hast du z.B. herausbekommen wie die Harmony.dll aufgebaut ist ..auch mit nem Hexeditor...so ein hab ich aber byts interpretieren ist net so mein ding xDDD
Ineluki weiß nicht, wie die Harmony-DLL genau programmiert ist. Er kennt nur das DLL-Interface. Das heißt die Funktionen die die DLL den Programmen, die sie benutzen, zur Verfügung stellt. Dann hat Luki einfach eine zweite DLL, mit exakt dem selben Interface (Den selben Funktionen) wie die Oldharmony sie hat, geschrieben und die Oldharmony durch diese ersetzt. Der Maker denkt jetzt es wäre "seine" DLL. Er sendet also exakt die selben Aufrufe an die DLL wie sie die Oldharmony empfangen würde. In Inelukis DLL wird dann überprüft, ob die Aufrufe, die der Maker sendet, ihn interessieren, oder nicht. Interessant ist dann z.b. die Funktion, die der DLL sagt, dass sie eine .wav Datei abspielen soll. Lukis DLL guckt da nämlich ob die Datei wirklich eine .wav oder vielleicht doch eine .script.wav ist. Sollte letzteres zutreffen verarbeitet Inelukis DLL das Script. Sollte ersteres zutreffen, wird der Aufruf einfach an die Oldharmony weiter geleitet.
Genauso funktioniert das mit allen anderen Funktionen in der DLL auch. Ist der Aufruf uninteressant geht er an die alte DLL.

Das Interface einer DLL kann man recht einfach rausbekommen, dafür gibt es Programme. In irgendeinem der GNU Pakete ist eins. In den Binutils wahrscheinlich.

Das ganze hat also recht wenig mit Disassemblieren oder Hexcode zu tun..