Funktionen on the Fly

02/19/2013 19:09 theredvex#1
Hallo liebe Community,

komme zur zeit leider nicht ganz weiter und zwar bastel ich gerade eine DLL die ich in das zu Reversende Programm einschleuse und anhand von kommandos Funktionen ausführen lasse.

Und zwar stelle ich es mir momentan so vor, dass ich mit meinem Clienten auf die DLL zugreife ihr eine nachricht schicke in der, das Offset von der Funktion übergeben wird mit den passenden Werten und die DLL diese dann Callt.

Gehe ich jetzt recht der annahme, dass ich ohne Inline ASM hier nicht weiter komme? gibt es evtl sowas schon? bin ich an etwas dran was evtl sehr hilfreich wäre? ;)

LG
theredvex
02/19/2013 20:52 Schlüsselbein#2
Wenn ich das mal eben schnell durchdenke (schnell, da die CL ja bereits angefangen hat), würde ich sagen: Es geht auch mit einfachen Funktionszeigern.

Ich würde mir nur Gedanken machen, wies mit dem Ressourcenzugriff aussieht? Du erstellst ja wahrscheinlich einen Thread in der DLL. Weißt du, auf welche Ressourcen welche Funktion des eigentlichen Programms zugreifen? Ich wäre da wirklich sehr, _sehr_ vorsichtig. Dort später den Fehler suchen - Prost, Mahlzeit.





Gruß
02/19/2013 21:08 Dr. Coxxy#3
Ist eine interessante Frage, ohne inline Assembler fallen mir auf Anhieb einige Hürden ein, mit Assembler ist es auf jedenfall "relativ" einfach.

Wenn ich zeit habe, werd ichs nachher mal durchdenken und ohne asm versuchen und mich nochmal hier melden.

mit assembler ists relativ einfach, solltest am besten ne funktion basteln, der du calling convention, anzahl/typen der parameter (am besten über nen formatierten string, musste dir dann nen miniparser schreiben) und die parameter selbst über variable parameter übergeben.
da kannste dann je nach calling convention parameter pushen, stack cleanen, usw.


Wahrscheinlich ist es in deinem fall einfacher die funktionen vorher mit nem disassembler rauszusuchen und dann calling convention und fertige calls in den code reinzuschreiben und dann per tastendruck, debug konsole oder sonstwas auszulösen.
02/19/2013 22:06 theredvex#4
An sich wäre es so einfacher nur bin ich leider noch ein wenig ungeschickt was das raus suchen von Funktionen betrifft somit könnte ich mit der DLL einfach das offset parsen und die variablen um es auszuprobieren.
Nach meinen Gedanken Gängen werde ich wohl nicht ohne ASM voran kommen.