-
-
菜鸟求教 release版本的for循环反汇编
-
发表于:
2013-2-28 22:56
3426
-
VS2010自带反汇编代码:
for(i=-100;i<100;++i)
000A1008 mov eax,0FFFFFF9Ch
000A100D xor edx,edx
000A100F nop
{
sum+=i;
000A1010 add ecx,eax
000A1012 lea edx,[edx+eax+1]
000A1016 lea esi,[esi+eax+2]
000A101A lea edi,[edi+eax+3]
000A101E add eax,4
000A1021 cmp eax,64h
000A1024 jl main+10h (0A1010h)
}
——————————————————————————————————
while(i<=100)
{
sum+=i;
000A1035 add ecx,eax
000A1037 lea edx,[edx+eax+1]
000A103B lea esi,[esi+eax+2]
000A103F add eax,3
000A1042 cmp eax,64h
000A1045 jle main+35h (0A1035h)
————————————————————————————————————
1、我知道LEA这个指令的作用 但是反汇编后这三个指令是干嘛的?并没看到这个循环体内哪里用到EDX\ESI\EDI了啊。。。。
2、EAX中存放的是I的值 为什么i++反汇编后是add eax,4 ?
3、for循环中还是加4 怎么 while循环中就变成了3?
DEBUG版本可以看懂 不过一到了这个版本就蒙了 毕竟真正破解的时候都是发行版。。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课