测试平台为windows 32位。国际开发协会专业版 64
所以,基本上我使用 IDA pro 来反汇编一个 PE 文件,并对我得到的 asm 代码做一些转换工作,使其可重新组装。
在我生成的转换后的代码中,系统函数调用 likeprintf
将按照通常的方式编写。
extern printf
....
....
call printf
我用它来重新组装我创建的代码:
nasm -fwin32 --prefix _ test.s
cl test.obj /link msvcrt.lib
我得到了一个 PE 可执行文件,基本上它运行良好(比如 hello world 程序、快速排序程序等)。
但是,当我使用IDA pro 重新反汇编我创建的新 PE 可执行文件时,奇怪的事情发生了。
IDA pro 生成如下函数调用:
当我使用:
idaq.exe -B test.exe
要生成新的汇编代码,在 printf 函数调用部分,它会生成:
call j_printf
没有j_printf proc near
函数定义...
所以基本上我想知道是否有人知道如何处理这个问题,让 IDA pro 生成
call printf
或者
call _printf
再次或任何其他解决方案?