-
-
[求助]注释一段反汇编代码 不知道对不对 哪位大虾帮我看看
-
发表于: 2014-8-11 15:25 2709
-
原始代码
void chswap(char** s1,char** s2)
{
char* tmp;
tmp=*s1;
*s1=*s2;
*s2=tmp;
}
下面是反汇编代码 我已经把 ebp+X 替换为参数? 把ebp-X替换为 局部变量? 不知道这样替换是否正确
00401000 >/$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP,ESP
00401003 |. 51 PUSH ECX
00401004 |. 8B45 08 MOV EAX,DWORD PTR SS:[参数1]
00401007 |. 8B08 MOV ECX,DWORD PTR DS:[EAX] //ECX=参数1的字符串首地址
00401009 |. 894D FC MOV DWORD PTR SS:[局部变量1],ECX //局部变量1=参数1指向的地址
0040100C |. 8B55 08 MOV EDX,DWORD PTR SS:[参数1] //EDX=参数1
0040100F |. 8B45 0C MOV EAX,DWORD PTR SS:[参数2] //EAX=参数2
00401012 |. 8B08 MOV ECX,DWORD PTR DS:[EAX] //ECX=参数2的字符串首地址
00401014 |. 890A MOV DWORD PTR DS:[EDX],ECX //EDX所指向的地址=参数2所指向的字符串的首地址
00401016 |. 8B55 0C MOV EDX,DWORD PTR SS:[参数2] //EDX=参数2
00401019 |. 8B45 FC MOV EAX,DWORD PTR SS:[局部变量1] //EAX=参数1所指向的字符串的首地址
0040101C |. 8902 MOV DWORD PTR DS:[EDX],EAX
0040101E |. 8BE5 MOV ESP,EBP
00401020 |. 5D POP EBP
00401021 \. C3 RETN
void chswap(char** s1,char** s2)
{
char* tmp;
tmp=*s1;
*s1=*s2;
*s2=tmp;
}
下面是反汇编代码 我已经把 ebp+X 替换为参数? 把ebp-X替换为 局部变量? 不知道这样替换是否正确
00401000 >/$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP,ESP
00401003 |. 51 PUSH ECX
00401004 |. 8B45 08 MOV EAX,DWORD PTR SS:[参数1]
00401007 |. 8B08 MOV ECX,DWORD PTR DS:[EAX] //ECX=参数1的字符串首地址
00401009 |. 894D FC MOV DWORD PTR SS:[局部变量1],ECX //局部变量1=参数1指向的地址
0040100C |. 8B55 08 MOV EDX,DWORD PTR SS:[参数1] //EDX=参数1
0040100F |. 8B45 0C MOV EAX,DWORD PTR SS:[参数2] //EAX=参数2
00401012 |. 8B08 MOV ECX,DWORD PTR DS:[EAX] //ECX=参数2的字符串首地址
00401014 |. 890A MOV DWORD PTR DS:[EDX],ECX //EDX所指向的地址=参数2所指向的字符串的首地址
00401016 |. 8B55 0C MOV EDX,DWORD PTR SS:[参数2] //EDX=参数2
00401019 |. 8B45 FC MOV EAX,DWORD PTR SS:[局部变量1] //EAX=参数1所指向的字符串的首地址
0040101C |. 8902 MOV DWORD PTR DS:[EDX],EAX
0040101E |. 8BE5 MOV ESP,EBP
00401020 |. 5D POP EBP
00401021 \. C3 RETN
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: