首页
社区
课程
招聘
这是什么算法,谁见过?谢谢大家
发表于: 2013-1-22 23:09 3601

这是什么算法,谁见过?谢谢大家

2013-1-22 23:09
3601
00520076  |   8B0A            MOV ECX,DWORD PTR DS:[EDX]
00520078  |. |BF FFFEFE   |MOV EDI,7EFEFEFF
0052007D  |. |8BC1          |MOV EAX,ECX
0052007F  |. |8BF7           |MOV ESI,EDI
00520081  |. |33CB          |XOR ECX,EBX
00520083  |. |03F0          |ADD ESI,EAX
00520085  |. |03F9          |ADD EDI,ECX       ;这是相加
00520087  |. |83F1 FF      |XOR ECX,FFFFFFFF
0052008A  |. |83F0 FF      |XOR EAX,FFFFFFFF  ;这是求反
0052008D  |. |33CF          |XOR ECX,EDI
0052008F  |. |33C6          |XOR EAX,ESI
00520091  |. |83C2 04     |ADD EDX,4
00520094  |. |81E1 00010181 |AND ECX,81010100  ;
0052009A  |. |75 1C         |JNZ SHORT Insight3.005200B8
做个说明,这是一个字符串变换算法,头一句
MOV ECX,DWORD PTR DS:[EDX],edx是字符串的首地址,
整条指令也即是:ecx被赋值edx指向的字符串ascii码(也就是ecx
存有4个字母),想问的是:后面几条异或和相加指令到底想做什么?
一直没有看明白,其中:开头的MOV EDI,7EFEFEFF中的7EFEFEFF
和结尾的AND ECX,81010100 中的81010100 ,81010100 +7EFEFEFF相加正好是FFFFFFFF(八位),很诡异
这是什么算法,谁见过?谢谢大家

再补充下,以上源码来自于Source Insight 3.5逆向分析,
http://bbs.pediy.com/showthread.php?t=121910
上面的汇编码是来自于Source Insight 3.5逆向分析开头的第六条指令:  004432E5  |.  E8 26870D00   call    0051BA10         中的函数调用

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 29349
活跃值: (7890)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
2
strchr..
vc6源码位置C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\PLATFORM\STRCHR.ASM
2013-1-23 17:29
0
雪    币: 7044
活跃值: (3316)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
搞到ide里看看单步调试一下看看结果
2013-1-23 17:36
0
雪    币: 99
活跃值: (96)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
真是牛人啊,见多识广,佩服
2013-1-23 20:52
0
游客
登录 | 注册 方可回帖
返回
//