首页
社区
课程
招聘
[求助]请指点一下以下的汇编代码可能从哪些C/C++的语句编译过来的
发表于: 2004-12-9 12:56 4412

[求助]请指点一下以下的汇编代码可能从哪些C/C++的语句编译过来的

2004-12-9 12:56
4412
转换汇编到C++时遇到的问题:
0040123F   . 8D7C24 28      LEA EDI,DWORD PTR SS:[ESP+28]
00401243   . 83C9 FF        OR ECX,FFFFFFFF
00401246   . 33C0           XOR EAX,EAX
00401248   . F2:AE          REPNE SCAS BYTE PTR ES:[EDI]
0040124A   . F7D1           NOT ECX
0040124C   . 2BF9           SUB EDI,ECX
0040124E   . 8BD1           MOV EDX,ECX
00401250   . 8BF7           MOV ESI,EDI
00401252   . 33FF           XOR EDI,EDI
00401254   . C1E9 02        SHR ECX,2
00401257   . F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
00401259   . 8BCA           MOV ECX,EDX
0040125B   . 83E1 03        AND ECX,3
0040125E   . F3:A4          REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00401260   . 5F             POP EDI
00401261   . 5E             POP ESI
00401262   . 81C4 C4000000  ADD ESP,0C4
00401268   . C2 1000        RETN 10

其中0040123F中的SS:[ESP+28]为一字符串的地址,
我分析从00401243到0040124A是取得这个字符串的长度, 但是接下来就有点莫名其妙了, 尤其是在00401252后调用REP MOVS 导致 access violation !
请教各位, 这些汇编代码是从哪些C/C++的语句编译过来的 ?
C/C++中哪些语句会调用REP MOVS ?

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

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
最初由 blast 发布
转换汇编到C++时遇到的问题:
xor edi, edi
这一句把EDI变成了0,然后REP MOVSD会向EDI中也就是0地址写数据。当然会产生非法操作。程序本身就存在问题。空指针

我估计作者的本意是复制字符串的
2004-12-9 13:17
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
3
edi 清 0 后使用 rep movs 来把字符串从 esi 复制到 edi,太奇怪了

当然会 access violation
2004-12-9 13:40
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
4
其实就是复制string

不过,他没有SEH吗?没有的话就很奇怪了。
2004-12-9 13:46
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
它的功能应该是复制string,
我尝试了很多种C/C++语句,但汇编以后和上面的都不一样!  郁闷ing



C/C++中哪些语句汇编后会调用  REP MOVS ?   memcpy ?
2004-12-9 18:47
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
6
这个可能是库函数或者编译器的自动优化。

我在delphi里看见过类似的。
2004-12-9 18:58
0
雪    币: 13095
活跃值: (4092)
能力值: ( LV15,RANK:1673 )
在线值:
发帖
回帖
粉丝
7
00401252   . 33FF           XOR EDI,EDI

这句可疑呀...似乎就为了产生异常来着...
2004-12-9 19:51
0
游客
登录 | 注册 方可回帖
返回
//