-
-
[求助]代码改成 00 后的问题
-
发表于:
2007-5-19 22:05
3535
-
有一段程序是这样的
......
:00416EE6 8D8C24A4010000 lea ecx, dword ptr [esp+000001A4]
:00416EED 51
push ecx
:00416EEE E8AD010000
call 004170A0
:00416EF3 83C404
add esp, 00000004
:00416EF6 3BC3 cmp eax, ebx
:00416EF8 0F84B2000000 je 00416FB0
:00416EFE 8D542418 lea edx, dword ptr [esp+18]
:00416F02 8D442458 lea eax, dword ptr [esp+58]
:00416F06 52 push edx
:00416F07 50 push eax
:00416F08 8D8C24BC040000 lea ecx, dword ptr [esp+000004BC]
* Possible StringData Ref from Data Obj ->"Could not get license '%s' (feature "
->"'%s')."
......
其中红色的 call 要花很长的时间去寻找网络服务器
我不想它寻找,所以把这个 call 的五个字节改成了 00
运行的时候出现程序错误,VC调试的时候
00416EED push ecx
00416EEE add byte ptr [eax],al
00416EF0 add byte ptr [eax],al
00416EF2 add byte ptr [ebx-3CC4FB3Ch],al
00416EF8 je 00416FB0
在 push 和 je 之间的 00 被认为是加法了
而在W32DSAM里面
:00416EE6 8D8C24A4010000 lea ecx, dword ptr [esp+000001A4]
:00416EED 51 push ecx
:00416EEE 0000000000 BYTE 5 DUP(0)
:00416EF3 83C404 add esp, 00000004
:00416EF6 3BC3 cmp eax, ebx
:00416EF8 0F84B2000000 je 00416FB0
这是为什么?是我的 CPU 支持的指令集不同?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!