首页
社区
课程
招聘
[旧帖] [原创]用软件自身制作正版注册机 0.00雪花
发表于: 2007-12-2 18:19 7409

[旧帖] [原创]用软件自身制作正版注册机 0.00雪花

2007-12-2 18:19
7409
【文章标题】: 用软件自身制作正版注册机
【文章作者】: chinglq
【作者邮箱】: chinglq@sina.com
【作者主页】: http://lqcoolboy.xinwen365.com
【软件名称】: 无
【软件大小】: 无
【下载地址】: 无
【加壳方式】: N/A
【保护方式】: 注册码
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OD、PEiD
【操作平台】: 联想OEM WinXPsp2
【软件介绍】: 无
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!如果喜欢该软件,请支持正版!

--------------------------------------------------------------------------------
【详细过程】

    明码比较软件,大部分可以很方便地用keymake制作内存注册机,或用自注册的方式修改软件,让它自动弹出显示正确注册码的信息框。但它们有一个共同的缺陷,那就是只能显示本机的注册吗。而自注册则显得有些多余,也许是为了展现才华横溢。我今天要向大家介绍的是在一
个机器上,便能计算出其他任何机器上的注册码的方法,也就是真正意义上的注册机。它和这两种方式有些地方相似,即利用了软件自身的算
法系统,有原装正版之誉,而且能弥补不足,功能完整。这比较适合我等菜鸟操作使用。
    下面我利用一个实例来做以详细介绍。请大家仔细看下面:
--------------------------------------------------------
00409E2C  |>  FF75 08            push    dword ptr [ebp+8]                            ; /String2 ; 输入机器码
00409E2F  |.  8D85 C4FDFFFF      lea     eax, dword ptr [ebp-23C]                     ; |
00409E35  |.  50                 push    eax                                          ; |String1
00409E36  |.  FF15 E4469C00      call    dword ptr [<&KERNEL32.lstrcpyA>]             ; \lstrcpyA ; 由[ebp+8]复制到[ebp-23C]
00409E3C  |.  803D FCBEB000 00   cmp     byte ptr [B0BEFC], 0                         ; eax=输入机器码
00409E43  |.  0F84 92010000      je      00409FDB
       .................省略..................................
00409EFC  |>  8D85 C4F5FFFF      lea     eax, dword ptr [ebp-A3C]
00409F02  |.  50                 push    eax
00409F03  |.  68 A4B4B000        push    00B0B4A4
00409F08  |.  FF75 10            push    dword ptr [ebp+10]
00409F0B  |.  E8 A04F2800        call    0068EEB0                                      ; 获得机器码16位
00409F10  |.  80A5 D0F5FFFF 00   and     byte ptr [ebp-A30], 0
00409F17  |.  83C4 0C            add     esp, 0C                                       ; 取0C(12)位
00409F1A  |.  8D85 C4F5FFFF      lea     eax, dword ptr [ebp-A3C]          ; ---> 8D85 C4FDFFFF lea eax, dword ptr [ebp-23C]
00409F20  |.  8D4D EC            lea     ecx, dword ptr [ebp-14]           ; 上句由 eax=本机机器码 ---> eax=输入机器码
00409F23  |.  50                 push    eax
00409F24  |.  E8 EBA45600        call    <jmp.&MFC42.#537_CString::CString>
       .................省略..................................
0040A03C  |.  50                 push    eax                                             ; /String2 ; 输入机器码
0040A03D  |.  8D85 C4F9FFFF      lea     eax, dword ptr [ebp-63C]                        ; |
0040A043  |.  50                 push    eax                                             ; |String1 ; 注册码
0040A044  |.  FF15 E0469C00      call    dword ptr [<&KERNEL32.lstrcmpA>]                ; \lstrcmpA
0040A04A  |.  85C0               test    eax, eax
0040A04C  |.^ 0F85 CAFDFFFF      jnz     00409E1C
-------------------------------------------------------------
      在注册码框中不填入任意码,而填入需要计算注册码的机器码,点注册按钮后在00409E3C行记录地址。然后在本机机器码计算完成后,
进入由机器码计算注册码前,在00409F1A改为输入的机器码。这是最关键的一步,这样才能保证在本机计算其他机器的注册码!
      在真码出现后的0040A043处记录地址,然后跟踪该地址的真码是否被删除。我们来到:
------------------------------------------------------------
004B5243   >  807D F3 01         cmp     byte ptr [ebp-D], 1
004B5247   .  75 36              jnz     short 004B527F                  ; ---> 74 36      je   short 004B527F
004B5249   .  6A 00              push    0
004B524B   .  68 66230000        push    2366
004B5250   .  8D4D BC            lea     ecx, dword ptr [ebp-44]
004B5253   .  FFD3               call    ebx
004B5255   .  6A 00              push    0
004B5257   .  6A 00              push    0
004B5259   .  8BC8               mov     ecx, eax
004B525B   .  C645 FC 03         mov     byte ptr [ebp-4], 3             ; ---> 8D85 60F9FFFF  lea  eax, dword ptr [ebp-6A0]
004B525F   .  FFD7               call    edi
004B5261   .  50                 push    eax                                                     ; 成功信息
004B5262   .  E8 6DF24B00        call    <jmp.&MFC42.#1200_AfxMessageBox>                        ; 成功对话框
004B5267   .  8D4D BC            lea     ecx, dword ptr [ebp-44]
004B526A   .  C645 FC 01         mov     byte ptr [ebp-4], 1
004B526E   .  FF15 D88D9C00      call    dword ptr [<&db.__ResourceString::~__ResourceString>]   ;  db.__ResourceString::~__ResourceString
004B5274   .  6A 0A              push    0A
004B5276   .  8BCE               mov     ecx, esi
004B5278   .  E8 D9FA4B00        call    <jmp.&MFC42.#2645_CDialog::EndDialog>
004B527D   .  EB 3A              jmp     short 004B52B9
004B527F   >  68 F8B3B000        push    00B0B3F8
004B5284   .  8D8E 20010000      lea     ecx, dword ptr [esi+120]
004B528A   .  E8 DBF54B00        call    <jmp.&MFC42.#6199_CWnd::SetWindowTextA>                 ; 删除真码
004B528F   .  33F6               xor     esi, esi
004B5291   .  8D4D BC            lea     ecx, dword ptr [ebp-44]
004B5294   .  56                 push    esi
004B5295   .  68 68230000        push    2368
004B529A   .  FFD3               call    ebx
004B529C   .  56                 push    esi
004B529D   .  56                 push    esi
004B529E   .  8BC8               mov     ecx, eax
004B52A0   .  C645 FC 04         mov     byte ptr [ebp-4], 4
004B52A4   .  FFD7               call    edi
004B52A6   .  50                 push    eax
004B52A7   .  E8 28F24B00        call    <jmp.&MFC42.#1200_AfxMessageBox>                        ; 出错对话框
004B52AC   .  8D4D BC            lea     ecx, dword ptr [ebp-44]
004B52AF   .  C645 FC 01         mov     byte ptr [ebp-4], 1
004B52B3   .  FF15 D88D9C00      call    dword ptr [<&db.__ResourceString::~__ResourceString>]   ;  db.__ResourceString::~__ResourceString
004B52B9   >  8065 FC 00         and     byte ptr [ebp-4], 0
-----------------------------------------------------------
    004B5247行是决定出现哪个对话框的跳转,在出现出错对话框以前的004B528A行的CALL中删除真码,这是我们不希望看到的。分析真假两
路的程序段可知,成功对话框那路没有类似语句,我们就将它改向成功对话框。成功对话框前面的004B5261行是提供成功信息字符串的,它是
由前面的CALL函数获得的。我们要将成功信息字符串更换为真码,那么,与这个CALL相关的语句(004B5255——004B525F)对我们来说就是多
余的。在这段地方放上我们让信息变为真码的语句,那是再好不过的啦(省得另找地方)!就这样改动三处:
------------------------------------------------
00409F1A  |.  8D85 C4F5FFFF lea     eax, dword ptr [ebp-A3C]     ; ---> 8D85 C4FDFFFF lea eax, dword ptr [ebp-23C]
004B5247   .  75 36         jnz     short 004B527F               ; ---> 74 36      je   short 004B527F
004B525B   .  C645 FC 03    mov     byte ptr [ebp-4], 3          ; ---> 8D85 60F9FFFF  lea  eax, dword ptr [ebp-6A0]
------------------------------------------------
    好了,在OD中改好,右键——复制到可执行文件——所有修改——全部复制,在弹出窗口中,右键——保存文件——换名——保存。
    OK!大功告成!一个功能完整的正版注册机诞生了,收工!

--------------------------------------------------------------------------------
【经验总结】
    这是菜鸟成长的第四篇破文。用keymake制作的内存注册机,虽然简单方便,但生成的注册机的壳与许多病毒的壳相同,常被杀软误报为病
毒并采取强硬措施,使许多新手望而生畏。自注册方法虽然安全,但和它的名字一样,也只能给自己注册罢了。本文介绍的方法,弥补了它们
的缺陷,是个真正的功能完整的正版注册机。一点体会,愿与大家分享,方家莫要见笑!

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                              2007.12.02

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 2575
活跃值: (487)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
2
好好学习,可以自己写内存注册机来实现,论坛中曾看过类似东西
2007-12-2 18:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ltr
3
谢谢分享..
2007-12-5 20:04
0
雪    币: 207
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
内存注册机和论坛中的“类似东西”能在一台机器上计算其他机器上的注册码?
若只给自己用,那什么注册机都不用写,抄下码就行!
内存注册机给一个人就等于给十亿人,这些道理你懂吗?
BC!
2007-12-6 08:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ttv
5
谢谢分享..但看不懂!
2007-12-6 09:47
0
雪    币: 226
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢分享精神
2007-12-7 06:36
0
雪    币: 266
活跃值: (52)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
现在明码比较的软件可是越来越少了
2007-12-7 08:23
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不错,学习了〉
2007-12-7 17:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
真棒!!!顶顶顶!!!!!!!!!
2007-12-7 23:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不错的方法!比什么内存注册机、自注册,高明多了!
2007-12-21 19:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢.楼主同享.......反刚才说自己抄注册码就行那位......自己做注册机代表自己懂得....拿出来发表代表大家共同学习讨论....电脑这东西非常巧妙,,就算做出注册机来...如果不懂的话...不好说,,,不懂的还是不会用............
2007-12-21 20:12
0
雪    币: 202
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
留下脚印,学习型
2008-4-26 00:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
http://bbs.pediy.com/showthread.php?s=&threadid=34352
再找找
KeyMakePro 这个软件

讨论问题而已 用的着骂人吗??
2008-4-29 13:13
0
雪    币: 207
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
新手看不懂高手的方法,只好用些笨办法了!
2008-4-30 15:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
谢了!先拷贝下来再慢慢看。
2008-6-15 06:31
0
游客
登录 | 注册 方可回帖
返回
//