VC6生成OBJ文件的奇怪问题。
最近使用VC6来写一些简单shellcode。
但是VC6生成的二进制文件实在让我抓狂了。
反汇编 dumpbin /disasm xxxx.obj ,编译器我已经禁用优化、使用release版本生成尽量整洁量少的代码。
但是,那个跳转实在是让我奔溃了。因为shellcode是要注入某个游戏进程的,但是VC6生成的shellcode太飘逸了。
反汇编生成的shellcode,明明一些call 语句和jump语句,dumpbin 查看的时候偏移是对的。但是它在偏移地址中多了一个0D 的字节,造成偏移错误,在注入进程中运行失败。
比如要跳到一个地址 EB 08 0A 00 00 这个这个就是对的。
但是往往有时就生成 EB 08 0D 0A 00 00 这个值给我,一到注入进程,就错了。。。。中间这个字节 0D 太诡异了。怎么会加这个字节呢? EB 08 0D 0A 00 跳的地址也不对啊,怎么会跳到那里呢??