首页
社区
课程
招聘
不好意思,又看不懂了
发表于: 2010-3-4 17:00 2894

不好意思,又看不懂了

2010-3-4 17:00
2894
还是处理字符串的

1000A3C5  |> /83F8 07       /CMP EAX,7
1000A3C8  |. |7E 02         |JLE SHORT  1000A3CC
1000A3CA  |. |33C0          |XOR EAX,EAX
1000A3CC  |> |8A1430        |MOV DL,BYTE PTR DS:[EAX+ESI]
1000A3CF  |. |8A5C0C 11     |MOV BL,BYTE PTR SS:[ESP+ECX+11]
1000A3D3  |. |32DA          |XOR BL,DL
1000A3D5  |. |885C0C 11     |MOV BYTE PTR SS:[ESP+ECX+11],BL
1000A3D9  |. |41            |INC ECX
1000A3DA  |. |40            |INC EAX
1000A3DB  |. |3BCD          |CMP ECX,EBP
1000A3DD  |.^\7C E6         \JL SHORT  1000A3C5

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
刚才分少了,有位朋友没分到分数,哈哈,现在多点,总能分到了吧.
2010-3-4 17:04
0
雪    币: 119
活跃值: (10)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
3
1000A3C5  |> /83F8 07       /CMP EAX,7      
1000A3C8  |. |7E 02         |JLE SHORT  1000A3CC
1000A3CA  |. |33C0          |XOR EAX,EAX                      ;  EAX>7则清零
1000A3CC  |> |8A1430        |MOV DL,BYTE PTR DS:[EAX+ESI]     ;  取ESI开始的字符串的第EAX个字符
1000A3CF  |. |8A5C0C 11     |MOV BL,BYTE PTR SS:[ESP+ECX+11]  ;  取ESI+11开始的字符串的第ECX个字符
1000A3D3  |. |32DA          |XOR BL,DL                        ;  异或
1000A3D5  |. |885C0C 11     |MOV BYTE PTR SS:[ESP+ECX+11],BL  ;  将异或结果放回
1000A3D9  |. |41            |INC ECX                          ;  增为下一个字符的下标
1000A3DA  |. |40            |INC EAX                          ;  增为下一个字符的下标
1000A3DB  |. |3BCD          |CMP ECX,EBP                      ;  知道字符串结束(EBP放的应该是字符串长度吧)
1000A3DD  |.^\7C E6         \JL SHORT  1000A3C5


感觉应该是用一个8位的密码对一个字符串进行抑或加密吧。

谢谢hdxs,打错了。。
2010-3-4 17:17
0
雪    币: 366
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
异或吧,作用应该就是楼上分析的那样。
2010-3-4 17:31
0
雪    币: 132
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用C语言表示的话,是不是这样:
char        string1[8] ;
char        string2[ebp];
while(ecx<ebp)
{
        if(eax>7)   eax=0;
        string2[ecx]=string2[ecx] ^ string1[eax];
        eax++;
        ecx++;
}
2010-3-4 17:32
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=hamgl;770201]用C语言表示的话,是不是这样:
char        string1[8] ;
char        string2[ebp];
while(ecx<ebp)
{
        if(eax>7)   eax=0;
        string2[ecx]=string2[ecx] ^ string1[eax];
        eax++;
        ...[/QUOTE]

这个应该是正解吧~~~用一个字符串对另外一个字符串做循环异或(加密)解密
2010-3-4 17:39
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢各位,又学了不少东西。
2010-3-4 19:07
0
雪    币: 97
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我也是新手 帮不了你啊
2010-3-5 20:56
0
游客
登录 | 注册 方可回帖
返回
//