Heyho,
nachdem ich hier im Forum bisher nichts zu dem Thema gefunden habe, wollte ich einfach mal selbst fragen, wer sich hier alles mit Assembler so gut auskennt, es anderen zu vermitteln. Ich habe ein paar Fragen, auf die ich durch CrackMe's gestoßen bin. Die erste Frage:
|
Quellcode 
|
1
2
|
MOV ESI,DWORD PTR DS:[<&MSVCP90.??$?5DU?>].... (die Zeile geht ewig lang)
CALL ESI
|
Ist das richtig, dass diese Kombination ein DWORD aus dem Datensegment, und somit der Eingabe, als Funktion in das Register ESI schiebt und Call diese dann ausführt, sodass daraus eine Benutzereingabe wird?
Desweiteren:
|
Quellcode 
|
1
|
MOV ESI,DWORD PTR SS:[ESP+48]
|
Diese Zeile schiebt in ESI ein DWORD aus dem Stapelsegment, und zwar das 6t-letzte (da 48/8 = 6), was zuvor mit Push auf den Stapel geschoben wurde? Soweit richtig?
Nun meine letzte Frage:
|
Quellcode 
|
1
|
MOV EAX,DWORD PTR DS:[<&MSVCP90.?cin@std@>....(wieder ewig lang)
|
Woran erkenn ich hier, dass die Länge der Eingabe im Register landet?!
Vielen Dank vorab
MfG DaRe