Testplatform is Windows 32 bit. IDA pro 64
Dus eigenlijk gebruik ik IDA pro om een PE-bestand uit elkaar te halen, en doe wat transformatiewerk aan de asm-code die ik krijg, om het opnieuw samen te stellen .
In de getransformeerde code die ik heb gegenereerd, wordt de systeemfunctieaanroep zoals printf
op de gebruikelijke manier geschreven.
extern printf ... ..... call printf
Ik gebruik dit om de code die ik maak opnieuw samen te stellen:
nasm -fwin32 --prefix _ test.scl test. obj / link msvcrt.lib
Ik heb een uitvoerbaar PE-bestand, en in principe werkt het prima (zoals een hello world-programma, een snel sorteerprogramma en andere).
Maar toen ik IDA pro gebruik om het nieuwe uitvoerbare PE-bestand dat ik maak opnieuw uit elkaar te halen, gebeurden er vreemde dingen.
IDA pro genereert een functieaanroep als volgt:
en wanneer ik gebruik:
idaq.exe -B test.exe
om nieuwe assembly-code, in het printf-functie-aanroepgedeelte, genereert het dit:
call j_printf
pr e>Zonder de functie
j_printf proc near
definieer ...Dus eigenlijk vraag ik me af of iemand weet hoe hiermee om te gaan, om IDA pro
call printf
of
call _printf
opnieuw of een andere oplossing ?