- UID
- 9910
注册时间2006-3-22
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
发表于 2006-5-20 18:05:50
|
显示全部楼层
贴个简单算法分析~~
00467893 |. 55 push ebp
00467894 |. 68 5A794600 push 0046795A
00467899 |. 64:FF30 push dword ptr fs:[eax]
0046789C |. 64:8920 mov fs:[eax], esp
0046789F |. 8D55 FC lea edx, [ebp-4]
004678A2 |. 8B83 FC020000 mov eax, [ebx+2FC]
004678A8 |. E8 E7BCFCFF call 00433594 ; 取第一个文本框
004678AD |. 837D FC 00 cmp dword ptr [ebp-4], 0 ; 与0比较
004678B1 |. 74 7C je short 0046792F ; 是空的就挂~~~
004678B3 |. 8D55 F8 lea edx, [ebp-8]
004678B6 |. 8B83 FC020000 mov eax, [ebx+2FC]
004678BC |. E8 D3BCFCFF call 00433594 ; 在来取一次
004678C1 |. 8B45 F8 mov eax, [ebp-8] ; 把取到的内容放到eax中
004678C4 |. E8 BFFEFFFF call 00467788 ; 看看是不是数字
004678C9 |. 84C0 test al, al ; 测试低8位
004678CB |. 74 58 je short 00467925 ; 是0就跳(不是数字就跳)(检查输入字符的格式)
004678CD |. 8D55 F4 lea edx, [ebp-C]
004678D0 |. 8B83 00030000 mov eax, [ebx+300]
004678D6 |. E8 B9BCFCFF call 00433594 ; 在来取一次(取第2个文本框的内容)
004678DB |. 8B45 F4 mov eax, [ebp-C] ; 把取到的内容放到eax中
004678DE |. 50 push eax ; 把eax压栈
004678DF |. 8D55 EC lea edx, [ebp-14]
004678E2 |. 8B83 FC020000 mov eax, [ebx+2FC]
004678E8 |. E8 A7BCFCFF call 00433594 ; 在来取一次(取第1个文本框的内容)
004678ED |. 8B45 EC mov eax, [ebp-14] ; 把取到的内容放到eax中
004678F0 |. E8 9305FAFF call 00407E88 ; 此call就是把 字符串 转成16进制码放到eax中
004678F5 |. 35 1DD20C05 xor eax, 50CD21D ; (这里就是唯一的算法)EAX_1=EAX XOR 0x50CD21D
004678FA |. 8D55 F0 lea edx, [ebp-10]
004678FD |. E8 4A04FAFF call 00407D4C ; 把计算好的16进制值转成10进制
00467902 |. 8B55 F0 mov edx, [ebp-10] ; 把转好的真码放到edx中
00467905 |. 58 pop eax ; 弹出 第2个文本框中的 假码
00467906 |. E8 4DC9F9FF call 00404258 ; 比较call(经典)(内存注册机)
0046790B |. 74 0C je short 00467919 ; 相等就成功~~
0046790D |. B8 70794600 mov eax, 00467970 ; 重来撒....
00467912 |. E8 A5FEFBFF call 004277BC
00467917 |. EB 16 jmp short 0046792F
00467919 |> B8 84794600 mov eax, 00467984 ; 做对了!!!
0046791E |. E8 99FEFBFF call 004277BC
00467923 |. EB 0A jmp short 0046792F
00467925 |> B8 98794600 mov eax, 00467998 ; 输入的数据格试错误,请检查
0046792A |. E8 8DFEFBFF call 004277BC
0046792F |> 33C0 xor eax, eax
00467931 |. 5A pop edx
00467932 |. 59 pop ecx
00467933 |. 59 pop ecx
00467934 |. 64:8910 mov fs:[eax], edx
00467937 |. 68 61794600 push 00467961
0046793C |> 8D45 EC lea eax, [ebp-14]
0046793F |. E8 08C5F9FF call 00403E4C
00467944 |. 8D45 F0 lea eax, [ebp-10]
00467947 |. E8 00C5F9FF call 00403E4C
0046794C |. 8D45 F4 lea eax, [ebp-C]
0046794F |. BA 03000000 mov edx, 3
00467954 |. E8 17C5F9FF call 00403E70
00467959 \. C3 retn
算法没什么好总结的:
就是把输入的用户名(要是整形的数字)转成16进制在与0x50CD21D异或结果转成10进制就是注册码
顺便来个内存注册机 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|