请高手帮忙看看一个反汇编的练习题!!!
下面是《天书夜读》的一道反汇编的练习题,我试着翻译成C语言,但是只翻译了一些程序的片断出来,不能组成一个完整的程序,请高手帮忙看看,到底能不能翻译成一个完整的程序!谢谢!(练习题下面有我翻译的片断)====================================================================
;下面是一个练习,内容是把下面的汇编代码还原成c语言(后面的注释是我自己分析的,也不知道对不对)
00411A20push ebp ;保存ebp
00411A21mov ebp,esp ;esp的值送给ebp(此时esp==ebp)
00411A23sub esp,0E8h ;开辟 0E8h 字节的栈空间
00411A29push ebx ;保存 ebx esi edi 三个寄存器
00411A2Apush esi
00411A2Bpush edi
00411A2Clea edi, ;把上面开辟的 0E8h 字节大小的栈空间地址
;送入edi中
00411A32mov ecx,3Ah ;设定装载 0CCCCCCCCh 次数(0E8h/4=3Ah)
00411A37mov eax,0CCCCCCCCh
00411A3Crep stos dword ptr ;用eax的值初始化
00411A3Emov eax,dword ptr ;eax=a
00411A41add eax,dword ptr ;eax=a+b
00411A44mov dword ptr ,eax ;b=eax b=a+b
00411A47mov dword ptr ,1 ;i=1
00411A4Emov dword ptr ,0 ;c=0
00411A55cmp dword ptr ,64h ;c与100比较
00411A59jge myfunction+46h (411A66h) ;如果 c>=100 跳转到 411A66h 处
00411A5Bmov eax,dword ptr ;eax=c
00411A5Eadd eax,dword ptr ;eax=c+i
00411A61mov dword ptr ,eax ;c=eax c=c+i
00411A64jmp myfunction+35h (411A55h) ;无条件跳转到 411A55h 处(进入下次循环)
00411A66mov eax,dword ptr ;c的值送入eax
00411A69mov dword ptr ,eax ;eax(c)的值送入栈保存
00411A6Fcmp dword ptr ,0 ;eax(c)的值与0比较 (case 0:)
00411A76je myfunction+63h (411A83h) ;如果eax(c)=0,则跳到 411A83h 处
00411A78cmp dword ptr ,1 ;eax(c)的值与1比较 (case 1:)
00411A7Fje myfunction+6Ah (411A8Ah) ;如果eax(c)=1,则跳到 411A8Ah 处
00411A81jmp myfunction+72h (411A92h) ;无条件跳转到 411A92h 处 (default)
00411A83mov dword ptr ,1 ;d=1
00411A8Amov eax,dword ptr ;c送入eax
00411A8Dmov dword ptr ,eax ;d=c(eax)
00411A90jmp myfunction+79h (411A99h) ;无条件跳转到 411A99h 处
00411A92mov dword ptr ,0 ;d=0
00411A99mov eax,dword ptr ;d送入eax(return d)
00411A9Cpop edi ;恢复 edi esi ebx esp ebp 的值
00411A9Dpop esi
00411A9Epop ebx
00411A9Fmov esp,ebp
00411AA1pop ebp
00411AA2ret
====================================================================
下面是我翻译的片断:
====================================================================
b = a + b;
i = 1;
c = 0;
while ( c<100 )
{
c = c + i;
}
switch ( c )
{
case 0:
{
d = 1;
d = c;
}
break;
case 1:
{
d = c;
}
break;
default:
d = 0;
}
return d;
晕,怎么字体都变了{:5_94:} 没有原程序麽? hkylin 发表于 2011-10-13 16:50 static/image/common/back.gif
没有原程序麽?
没有源程序,有的话,我就知道它是个完整的程序了,现在就是不知道它到底是不是完整的程序
页:
[1]