zhangyun173 发表于 2015-10-21 10:51:23

换种思维写 Smart Install Maker 5.04算法注册机

本帖最后由 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
0050B8D4|.8B45 F8       |mov   eax, dword ptr
0050B8D7      8A4418 FF   mov   al, byte ptr
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
0050B8D4|.8B45 F8       |mov   eax, dword ptr
0050B8D7|.8A0C32      |mov   cl, byte ptr ---将真码存放到cl
0050B8DA|.884C18 FF   |mov   byte ptr , 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
改为
0050B92B|.8802          mov   byte ptr , al
以下操作方式一样我直接写结果
0050B94C|.8842 01       mov   byte ptr , al
0050B970|.8842 02       mov   byte ptr , al
0050B995|.8842 03       mov   byte ptr , al
0050B9BB|.8842 04       mov   byte ptr , al
0050B9E0|.8842 18       mov   byte ptr , al
0050BA05|.8842 19       mov   byte ptr , al
0050BA2C|.8842 1A       mov   byte ptr , al
0050BA51|.8842 1B       mov   byte ptr , al
0050BA76|.8842 1C       mov   byte ptr , 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
效果图

**** Hidden Message *****
(0050D05D      E8 8AE7FFFF   call    0050B7EC>>
0050D05D      90            nop
0050D05E      90            nop
0050D05F      90            nop
0050D060      90            nop
0050D061      90            nop
完善了下NOP掉了启动时候调用这个函数避免没有注册码信息的时候报错,另外假码需要输入29位)
我这里不是来提供注册机的,我只是给大家分享一种方法。
另外说一下,这种方法是是介于内存注册机和算法注册机之间,
它需要你理解什么地方做了对比,这样在你写算法注册机中多一个过渡的过程。

DragonLoft 发表于 2015-10-21 11:38:11

说内存注册机更确切一些。

hoy0a1d 发表于 2015-10-21 12:09:35

方法不错,比单独制作内存注册机酷

wangwei1978 发表于 2015-10-21 12:26:05

本质是内存注册机

稻草人ak47 发表于 2015-10-21 15:04:24

谢谢,分享,我们论坛有你们的支持更加强大

wenhaitushu 发表于 2015-10-21 17:53:19

好东西,收藏先.

lijun520 发表于 2015-10-21 19:31:55

虽然用不到,但是还要感谢楼主的无私奉献精神。

开心啦 发表于 2015-10-22 08:21:07

不错的思路,赞一个了

yosen2001 发表于 2015-10-22 10:33:16

好想法,好创意,不错,鼓励

flatron 发表于 2015-10-22 16:02:36

很详细,我想看看隐藏了什么。
页: [1] 2 3
查看完整版本: 换种思维写 Smart Install Maker 5.04算法注册机