ida pro funktion

06/12/2015 18:40 Slade100#16
Quote:
Originally Posted by Jeoni View Post
Oh, sorry, mein Fehler. Ich sollte weniger von mir auf Andere schließen. Ich bin ein Fan von solchen Dingen.



Sieht schon viel besser aus. Floats kannste, wie Terrat schon vor ein paar Posts erwähnte, schlecht mit %d ausgeben. Für die anderen Argumente kannste %d eigentlich weiter verwenden. Ist meines Wissens nach Synonym zu %i, aber man möge mich korrigieren, wenn ich falsch liege. Habe da jetzt nicht nachgeschaut.
Den char kannste theoretisch mit %c ausgeben, wie Terrat ebenfalls erwähnte. Das macht aber nur Sinn, wenn das tatsächlich ein Asciicharakter ist, und halt keine beliebige 8 bit Zahl (für was man char ja ebenfalls verwenden kann). In letzterem Fall ist %d / %i vermutlich die sinnvollere Variante.
Mit freundlichen Grüßen
Jeoni
oh das mit %d bei float hab ich ja total veträumt :D kommt davon das nur ein printf schreibe dann copy paste ^^, danke euch für den hinweis und für die ganze hilfe nochmal ;)
edit: eine frage hätte ich noch unzwar, wie kann ich lernen über asm zu sehen wie viele argumente die funktion hat?, bei ida pro steht die funktion ja eh nur manchmal da, habe mir schon asm tutorials angesehn aber sowas wird nirgends erklärt :S
06/12/2015 22:54 hazejp#17
Quote:
Originally Posted by erfan100 View Post
eine frage hätte ich noch unzwar, wie kann ich lernen über asm zu sehen wie viele argumente die funktion hat?, bei ida pro steht die funktion ja eh nur manchmal da, habe mir schon asm tutorials angesehn aber sowas wird nirgends erklärt :S
Sieh dir den xrefs-Graph an und such dir irgendeine Funktion die deine Zielfunktion aufruft.
Dann musst du einfach nur zählen wie viele Argumente vor dem Aufruf auf den Stack gepusht werden.
06/13/2015 17:05 Slade100#18
danke das mit dem argumenten hab ich mittlerweile verstanden, aber wie siehts aus mit den datentypen dieser argumente, kann man das über den asm code rauslesen?
06/13/2015 17:13 _asm#19
ja, z.B hier:
[Only registered and activated users can see links. Click Here To Register...]
wie man sieht wird ein uint8_t (unsigned char) auf den stack gepusht (bool) welche auf true assigned ist.
arg 3, arg 4, arg 5 sind floats ([Only registered and activated users can see links. Click Here To Register...])
PUSH EAX, PUSH ECX dementsprechend unsigned longs (DWORD)

btw: die datentypen sollten dir auch ida pro anzeigen (glaub du brauchst aber den hexrays decompiler)
beispiel: [Only registered and activated users can see links. Click Here To Register...]
06/13/2015 21:58 Slade100#20
Quote:
Originally Posted by _asm View Post
ja, z.B hier:
[Only registered and activated users can see links. Click Here To Register...]
wie man sieht wird ein uint8_t (unsigned char) auf den stack gepusht (bool) welche auf true assigned ist.
arg 3, arg 4, arg 5 sind floats ([Only registered and activated users can see links. Click Here To Register...])
PUSH EAX, PUSH ECX dementsprechend unsigned longs (DWORD)

btw: die datentypen sollten dir auch ida pro anzeigen (glaub du brauchst aber den hexrays decompiler)
beispiel: [Only registered and activated users can see links. Click Here To Register...]
thx für die hilfe, ja ida pro zeigt die datentypen manchmal, aber iwie nicht oft :D