首页
社区
课程
招聘
[求助]求解释下 rep movs
发表于: 2014-5-24 16:38 10010

[求助]求解释下 rep movs

2014-5-24 16:38
10010
00438E10  /$  8B4424 08     mov eax,dword ptr ss:[esp+0x8]
00438E14  |.  8B15 B06B3504 mov edx,dword ptr ds:[0x4356BB0]
00438E1A  |.  53            push ebx
00438E1B  |.  56            push esi
[COLOR="Lime"]00438E1C  |.  8B7424 0C     mov esi,dword ptr ss:[esp+0xC][/COLOR]
00438E20  |.  57            push edi
00438E21  |.  8BC8          mov ecx,eax
00438E23  |.  8BD9          mov ebx,ecx
00438E25  |.  C1E9 02       shr ecx,0x2
00438E28  |.  8DBA 90692D04 lea edi,dword ptr ds:[edx+0x42D6990]
00438E2E  |.  F3:A5         [COLOR="red"]rep movs dword ptr es:[edi],dword ptr ds:[esi][/COLOR]
00438E30  |.  8BCB          mov ecx,ebx
00438E32  |.  83E1 03       and ecx,0x3
00438E35  |.  F3:A4         [COLOR="Red"]rep movs byte ptr es:[edi],byte ptr ds:[esi][/COLOR]
00438E37  |.  5F            pop edi
00438E38  |.  03D0          add edx,eax
00438E3A  |.  5E            pop esi
00438E3B  |.  8915 B06B3504 mov dword ptr ds:[0x4356BB0],edx
00438E41  |.  5B            pop ebx
00438E42  \.  C3            retn


怀疑此为解密程序,其中绿色部分为收到包的地址

汇编不是特别熟悉,这个rep movs以及后面的参数是啥意思?谁给解释下呗!

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 19
活跃值: (1111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
循环从esi指向的内存区域复制数据到edi处的内存区域,复制ecx次,每次是一个BYTE
2014-5-24 16:48
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我觉得这条rep movs指令可以改进一些,
比如内存条加个中断号,如果要rep movs达到1GB的内存,cpu干等着执行这条rep movs太无聊了,可以先执行别的线程,等rep movs完成以后,内存条来个中断,cpu再继续处理rep movs以后的指令。
2014-5-24 16:57
0
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
memcpy(edi,esi,ecx)
元素大小可以是byte、word、dword
这样应该能看懂了吧
2014-5-24 17:05
0
雪    币: 134
活跃值: (11)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
rep是循环  movs是转移指令  后面就是 目的地址和源地址
就是循环执行 movs dword ptr es:[edi],dword ptr ds:[esi]
循环次数在 ecx里
2014-5-24 17:09
0
雪    币: 192
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那句话不是用的dword,为什么你说每次去一个byte呢?
2014-5-24 19:48
0
雪    币: 192
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哥哥,我已经说了,这个是游戏收到封包后的解密子程序,我咋改?改了玩不了游戏了!
2014-5-24 19:49
0
雪    币: 192
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
另外,这句有什么意义么?复制一次和复制多次有区别么?
2014-5-24 20:14
0
雪    币: 19
活跃值: (1111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
看语句啊 DWORD就DWORD BYTE就BYTE
2014-5-24 22:31
0
雪    币: 192
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
那依此看来这段应该是转存而非解密了,这游戏封包加密部分我看了,比较复杂,解密程序真难找啊!
2014-5-25 09:01
0
游客
登录 | 注册 方可回帖
返回