- UID
- 51668
注册时间2008-5-2
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 无聊 2024-8-16 18:56 |
---|
签到天数: 50 天 [LV.5]常住居民I
|
本帖最后由 zhangyun173 于 2015-10-22 15:47 编辑
算法分析参考crackvip https://www.chinapyg.com/thread-78116-1-1.html
通过分析 0050B7EC 是算法CALL 传入的用户名和假码
比较位置1:
0050B8D1 |. 8D55 C0 |lea edx, dword ptr [ebp-40]
0050B8D4 |. 8B45 F8 |mov eax, dword ptr [ebp-8]
0050B8D7 8A4418 FF mov al, byte ptr [eax+ebx-1]
0050B8DB B9 23000000 mov ecx, 23
0050B8E0 E8 ABF4FFFF call 0050AD90
0050B8E5 3BF0 cmp esi, eax
0050B8E7 0F94C0 |sete al
0050B8EA |. 25 FF000000 |and eax, 0FF
这里比较假码在字符串位置中的位置eax与真码位置esi对比,那么在字符串中取出esi位置的值就是真码;下面我们将真码覆盖假码。
0050B8D1 |. 8D55 C0 |lea edx, dword ptr [ebp-40]
0050B8D4 |. 8B45 F8 |mov eax, dword ptr [ebp-8]
0050B8D7 |. 8A0C32 |mov cl, byte ptr [edx+esi]---将真码存放到cl
0050B8DA |. 884C18 FF |mov byte ptr [eax+ebx-1], cl ---cl中的值覆盖假码中的值
0050B8DE |. B9 23000000 |mov ecx, 23
0050B8E3 |. E8 A8F4FFFF |call 0050AD90
0050B8E7 0F94C0 |sete al
0050B8EA |. 25 FF000000 |and eax, 0FF
比较位置2
0050B92B 3A02 cmp al, byte ptr [edx]
改为
0050B92B |. 8802 mov byte ptr [edx], al
以下操作方式一样我直接写结果
0050B94C |. 8842 01 mov byte ptr [edx+1], al
0050B970 |. 8842 02 mov byte ptr [edx+2], al
0050B995 |. 8842 03 mov byte ptr [edx+3], al
0050B9BB |. 8842 04 mov byte ptr [edx+4], al
0050B9E0 |. 8842 18 mov byte ptr [edx+18], al
0050BA05 |. 8842 19 mov byte ptr [edx+19], al
0050BA2C |. 8842 1A mov byte ptr [edx+1A], al
0050BA51 |. 8842 1B mov byte ptr [edx+1B], al
0050BA76 |. 8842 1C mov byte ptr [edx+1C], al
在最后我们在加上一个信息框弹出真码( edx中的就是我们的真码)
0050BA79 |. 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL
0050BA7B 68 84D75000 push 0050D784 ; ASCII "Smart Install Maker"
0050BA80 |. 52 push edx ; |Text
0050BA81 |. 6A 00 push 0 ; |hOwner = NULL
0050BA83 E8 58BEEFFF call <jmp.&user32.MessageBoxA>
0050BA88 |. 90 nop
0050BA89 |. 33C0 xor eax, eax
效果图
(0050D05D E8 8AE7FFFF call 0050B7EC >>
0050D05D 90 nop
0050D05E 90 nop
0050D05F 90 nop
0050D060 90 nop
0050D061 90 nop
完善了下NOP掉了启动时候调用这个函数避免没有注册码信息的时候报错,另外假码需要输入29位)
我这里不是来提供注册机的,我只是给大家分享一种方法。
另外说一下,这种方法是是介于内存注册机和算法注册机之间,
它需要你理解什么地方做了对比,这样在你写算法注册机中多一个过渡的过程。
|
评分
-
查看全部评分
|