-
-
[讨论]反编译一段汇编代码
-
发表于:
2007-12-19 21:49
9099
-
fun(int a1)
{
int v1;//地址在:ebp-4
PUSH EBP
MOV EBP,ESP
PUSH ECX
MOV DWORD PTR SS:[EBP-4],3
MOV EAX,DWORD PTR SS:[EBP+8]
CDQ
IDIV DWORD PTR SS:[EBP-4]
MOV EAX,EDX
MOV ESP,EBP
POP EBP
RETN
}
在提供函数原型和局部变量信息的情况下,谁能写一个程序将上面的汇编代码自动反编译为C代码?
输入的标准格式为:
int fun(int a1 = [ebp+8])
{
int v1 = [ebp-4];
__asm{
PUSH EBP
MOV EBP,ESP
PUSH ECX
MOV DWORD PTR SS:[EBP-4],3
MOV EAX,DWORD PTR SS:[EBP+8]
CDQ
IDIV DWORD PTR SS:[EBP-4]
MOV EAX,EDX
MOV ESP,EBP
POP EBP
RETN
}
}
提示:可以编写词法分析器和语法分析器对上面的代码进行分析,给出算法即可,不必实际编写程序。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!