首页
社区
课程
招聘
[旧帖] [原创]C三种循环结构逆向分析 0.00雪花
发表于: 2013-4-28 19:32 3484

[旧帖] [原创]C三种循环结构逆向分析 0.00雪花

2013-4-28 19:32
3484

之前分析的一篇东西申请邀请码
          C语言的3种循环分析
                                                ---forward
C语言中一共有三种类型的循环语句while语句、do语句和for语句,同样都是循环语句但是从汇编的角度来看他们有着不同的循环流程,做了次简单的逆向分析如下
(1)while循环
While在进入循环前会先进行判断,根据比较的结果来决定是否进行循环,如下面代码(到时候我会打包一起上传)

int a,b;
scanf("%d",&b);       /*此处省略N多行反汇编代码*/
a=0;
00401039   mov         dword ptr [ebp-4],0
while(a<b){          /*根据值得比较判断是否进入循环*/
00401040   mov         ecx,dword ptr [ebp-4]
00401043   cmp         ecx,dword ptr [ebp-8]
00401046   jge         main+54h (00401064)
printf("%d\n",a);
00401048   mov         edx,dword ptr [ebp-4]
0040104B   push        edx
0040104C   push        offset string "%d\n" (0042501c)
00401051   call        printf (00401090)
00401056   add         esp,8
a++;
00401059   mov         eax,dword ptr [ebp-4]
0040105C   add         eax,1
0040105F   mov         dword ptr [ebp-4],eax
}              /*jmp指令直接跳到起始处,重新开始*/
00401062   jmp         main+30h (00401040)
15:       return 0;
00401064   xor         eax,eax

在这里要区分if和while,经过反汇编后的while(a<b)与if条件判断的结构非常相似。都是比较相反,比较完之后都往下跳。光从这一点来看它们是一样的,无法直观的的分辨。看看jge的目标地址00401064上面有一个jmp指令并且是指向循环起始处的,很明显这个是个循环语句。可以根据这一个特性来辨别if判断和while判断。利用IDA的流程图分析更为直观 如图


篇幅有限,直接下载pdf附件吧
简单的做下分析,又不到之处欢迎指出


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (8)
雪    币: 81
活跃值: (73)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
2013-4-29 13:33
0
雪    币: 1258
活跃值: (1434)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看了楼主的帖子,学习了。
2013-4-29 22:12
0
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
己将补足50Kx给你,可以购买邀请码转正了。
2013-4-30 22:22
0
雪    币: 81
活跃值: (73)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
哈哈 感谢刚叔
2013-5-2 15:05
0
雪    币: 249
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
原来这样也能换邀请码。。
2013-5-2 15:25
0
雪    币: 81
活跃值: (73)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
有何不可呢
2013-5-11 14:22
0
雪    币: 81
活跃值: (73)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
呵呵
2014-7-20 22:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习了.....
2014-7-20 22:09
0
游客
登录 | 注册 方可回帖
返回
//