首页
社区
课程
招聘
[求助]注释一段反汇编代码 不知道对不对 哪位大虾帮我看看
发表于: 2014-8-11 15:25 2709

[求助]注释一段反汇编代码 不知道对不对 哪位大虾帮我看看

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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//