逆向初步(1)介绍的是if……else语句在反汇编中的事例,现在我们来看看switch……case语句在反汇编长啥样。我们先来看一段简单的使用switch……case语句的程序,其代码如下:
#include
main()
{
int c = 5;
switch(c)
{
case 0:
printf("c = 0");
break;
case 5:
printf("c = 5");
break;
case 10:
printf("c = 10");
break;
default:break;
}
}
接下来我们来看它对应的反汇编代码,如下所示:
4:
int c = 5;
00401028
mov
dword ptr [ebp-4],5
5:
switch(c)
6:
{
0040102F
mov
eax,dword ptr [ebp-4]
00401032
mov
dword ptr [ebp-8],eax
00401035
cmp
dword ptr [ebp-8],0
00401039
je
mai