首页
社区
课程
招聘
[旧帖] [原创][首次发帖,多多指教!]简单注册码追踪 0.00雪花
发表于: 2010-6-4 22:28 2452

[旧帖] [原创][首次发帖,多多指教!]简单注册码追踪 0.00雪花

2010-6-4 22:28
2452
【文章标题】: 【首次发帖,多多指教!】简单注册码追踪
【文章作者】: cmoon
【作者邮箱】: [email]785930170@qq.com[/email]
【软件名称】: txt文本切割器v2.20
【软件大小】: 1M
【下载地址】: 华军,自己搜索下载
【加壳方式】: 无
【保护方式】: 机器码+用户名+注册码
【编写语言】: VC++6.0(说是E语言,其实不是)
【使用工具】: OD,PEID,KEYMAKE1.73
【操作平台】: XPsp3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  1.观察一下:
  软件为绿色版的,但是每次打开,都会连接到作者主页(不管注册没注册),很是烦人;
  软件注册的方式是:机器码+用户名+注册码;
  机器码自动生成;
  用户名:cmoon;
  注册码:785930170。
  有错误提示:注册失败!请购买后重新注册!
  当然,还可以尝试其他的组合,都这么一个错误提示。另外,虽然可以免费领取注册码,却也麻烦。
  
  2.PEID查壳,无。虽然软件说明是E语言写的,却也不是。看来软件比较简陋,应该没有多大的难处。
  
  3.OD
  查找字符串。找到。往上,得到整个验证模块。
  
  004036A2  /.  55            push    ebp
  004036A3  |.  8BEC          mov     ebp, esp
  004036A5  |.  81EC 20000000 sub     esp, 20
  004036AB  |.  C745 FC 00000>mov     dword ptr [ebp-4], 0
  004036B2  |.  C745 F8 00000>mov     dword ptr [ebp-8], 0
  004036B9  |.  C745 F4 00000>mov     dword ptr [ebp-C], 0
  004036C0  |.  C745 F0 00000>mov     dword ptr [ebp-10], 0
  004036C7  |.  6A 00         push    0
  004036C9  |.  8D45 F0       lea     eax, dword ptr [ebp-10]
  004036CC  |.  50            push    eax
  004036CD  |.  C745 EC 00000>mov     dword ptr [ebp-14], 0
  004036D4  |.  6A 00         push    0
  004036D6  |.  FF75 EC       push    dword ptr [ebp-14]
  004036D9  |.  E8 38040000   call    00403B16                         ;  可能是获取机器码的地方
  004036DE  |.  8B5D F0       mov     ebx, dword ptr [ebp-10]
  004036E1  |.  85DB          test    ebx, ebx
  004036E3  |.  74 09         je      short 004036EE
  004036E5  |.  53            push    ebx
  004036E6  |.  E8 E93E0000   call    004075D4                         ;  分配内存
  004036EB  |.  83C4 04       add     esp, 4
  004036EE  |>  6A FF         push    -1
  004036F0  |.  6A 08         push    8
  004036F2  |.  68 78C50116   push    1601C578
  004036F7  |.  68 208A0152   push    52018A20
  004036FC  |.  E8 F73E0000   call    004075F8                         ;  分配内存
  00403701  |.  83C4 10       add     esp, 10
  00403704  |.  8945 F0       mov     dword ptr [ebp-10], eax
  00403707  |.  6A FF         push    -1
  00403709  |.  6A 08         push    8
  0040370B  |.  68 77C50116   push    1601C577
  00403710  |.  68 208A0152   push    52018A20
  00403715  |.  E8 DE3E0000   call    004075F8
  0040371A  |.  83C4 10       add     esp, 10
  0040371D  |.  8945 EC       mov     dword ptr [ebp-14], eax
  00403720  |.  6A FF         push    -1
  00403722  |.  6A 08         push    8
  00403724  |.  68 3A8A0116   push    16018A3A
  00403729  |.  68 208A0152   push    52018A20
  0040372E  |.  E8 C53E0000   call    004075F8
  00403733  |.  83C4 10       add     esp, 10
  00403736  |.  8945 E8       mov     dword ptr [ebp-18], eax
  00403739  |.  6A 01         push    1
  0040373B  |.  8D45 E8       lea     eax, dword ptr [ebp-18]
  0040373E  |.  50            push    eax
  0040373F  |.  8D45 EC       lea     eax, dword ptr [ebp-14]
  00403742  |.  50            push    eax
  00403743  |.  8D45 F0       lea     eax, dword ptr [ebp-10]
  00403746  |.  50            push    eax
  00403747  |.  E8 22060000   call    00403D6E                         ;  关键的,获取正确注册码的地方
  0040374C  |.  8945 E4       mov     dword ptr [ebp-1C], eax
  0040374F  |.  8B5D F0       mov     ebx, dword ptr [ebp-10]
  00403752  |.  85DB          test    ebx, ebx
  00403754  |.  74 09         je      short 0040375F
  00403756  |.  53            push    ebx
  00403757  |.  E8 783E0000   call    004075D4
  0040375C  |.  83C4 04       add     esp, 4
  0040375F  |>  8B5D EC       mov     ebx, dword ptr [ebp-14]
  00403762  |.  85DB          test    ebx, ebx
  00403764  |.  74 09         je      short 0040376F
  00403766  |.  53            push    ebx
  00403767  |.  E8 683E0000   call    004075D4
  0040376C  |.  83C4 04       add     esp, 4
  0040376F  |>  8B5D E8       mov     ebx, dword ptr [ebp-18]
  00403772  |.  85DB          test    ebx, ebx
  00403774  |.  74 09         je      short 0040377F
  00403776  |.  53            push    ebx
  00403777  |.  E8 583E0000   call    004075D4
  0040377C  |.  83C4 04       add     esp, 4
  0040377F  |>  837D E4 01    cmp     dword ptr [ebp-1C], 1
  00403783     /0F85 3B000000 jnz     004037C4                         ;  错误跳转
  00403789  |.  68 04000080   push    80000004
  0040378E  |.  6A 00         push    0
  00403790  |.  68 4D9F4B00   push    004B9F4D                         ;  恭喜您:
  00403795  |.  68 01030080   push    80000301
  0040379A  |.  6A 00         push    0
  0040379C  |.  68 00000000   push    0
  004037A1  |.  68 04000080   push    80000004
  004037A6  |.  6A 00         push    0
  004037A8  |.  68 569F4B00   push    004B9F56                         ;  注册成功!
  004037AD  |.  68 03000000   push    3
  004037B2  |.  BB 208B4000   mov     ebx, 00408B20
  004037B7  |.  E8 243E0000   call    004075E0
  004037BC  |.  83C4 28       add     esp, 28
  004037BF  |.  E9 36000000   jmp     004037FA
  004037C4  |>  68 04000080   push    80000004
  004037C9  |.  6A 00         push    0
  004037CB  |.  68 BA9D4B00   push    004B9DBA                         ;  提示:
  004037D0  |.  68 01030080   push    80000301
  004037D5  |.  6A 00         push    0
  004037D7  |.  68 00000000   push    0
  004037DC  |.  68 04000080   push    80000004
  004037E1  |.  6A 00         push    0
  004037E3  |.  68 619F4B00   push    004B9F61                         ;  注册失败!请购买后重新注册!
  004037E8  |.  68 03000000   push    3
  004037ED  |.  BB 208B4000   mov     ebx, 00408B20
  004037F2  |.  E8 E93D0000   call    004075E0
  
  很明显的,在00403783     /0F85 3B000000 jnz     004037C4                         ;  错误跳转
  这里,我们可以爆破,先试试。
  不错,的确是祝贺成功了。但是,我们确定之后,却还是未注册。。。
  
  说明,在判断之外,还有另外的判断方法存在并且可以对错误的注册码做修正。那么,我们重新开始。
  
  
  刚才不是说,软件有打开网页的烦人之处吗?嗯,那么,再看看字符串里,作者主页的字符串。
  还有,在开始运行之前,有一个MessageBox提示,很好,下断点。
  很容易就可以来到以下这样的地方:
  
  00405B4C  |.  68 BA9D4B00   push    004B9DBA                         ;  提示:
  00405B51  |.  68 01030080   push    80000301
  00405B56  |.  6A 00         push    0
  00405B58  |.  68 00000000   push    0
  00405B5D  |.  68 04000080   push    80000004
  00405B62  |.  6A 00         push    0
  00405B64  |.  68 52A04B00   push    004BA052                         ;  比较大文件用简单切割,比较小的文件用可编辑切割!
  00405B69  |.  68 03000000   push    3
  00405B6E  |.  BB 208B4000   mov     ebx, 00408B20
  00405B73  |.  E8 681A0000   call    004075E0
  00405B78  |.  83C4 28       add     esp, 28
  00405B7B      B8 83A04B00   mov     eax, 004BA083                    ;  http://www.coffee-read.com/bbs/
  00405B80      8945 E0       mov     dword ptr [ebp-20], eax
  00405B83      8D45 E0       lea     eax, dword ptr [ebp-20]
  00405B86      50            push    eax
  00405B87  |.  90            nop
  00405B88  |.  90            nop
  00405B89  |.  90            nop
  00405B8A  |.  90            nop
  00405B8B  |.  90            nop
  00405B8C  |.  8B5D E0       mov     ebx, dword ptr [ebp-20]
  00405B8F  |.  85DB          test    ebx, ebx
  00405B91  |.  74 09         je      short 00405B9C
  00405B93  |.  53            push    ebx
  00405B94  |.  E8 3B1A0000   call    004075D4
  00405B99  |.  83C4 04       add     esp, 4
  00405B9C  |>  B8 A3A04B00   mov     eax, 004BA0A3                    ;  http://www.coffee-read.com/
  00405BA1  |.  8945 E0       mov     dword ptr [ebp-20], eax
  00405BA4  |.  8D45 E0       lea     eax, dword ptr [ebp-20]
  00405BA7  |.  50            push    eax
  00405BA8  |.  90            nop
  00405BA9  |.  90            nop
  00405BAA  |.  90            nop
  00405BAB  |.  90            nop
  00405BAC  |.  90            nop
  
  这个里面我已经把链接NOP掉了,软件名称我也改掉了。
  
  事实上,在字符处里面,我们可以很明感的看到,有这样的:\system32\systxtu.txt
  嗯,这应该就是保存注册信息的地方。
  
  
  再回到整个验证注册码的地方。经过几次的试探,可以得到如以上注册的基本信息
  00403747  |.  E8 22060000   call    00403D6E                         ;  关键的,获取正确注册码的地方
  这个函数,是真正的计算注册码的地方。很好,我们进去看看。
  
  显然的,这个函数吓到我这个菜鸟了,我只能是糊里糊涂的F8然后一直的盯着字符串信息……
  果然,在多次的观察下,依次的会出现用户名、假注册码、机器码、还有类似格式的一些字符串。
  话说,我也只能根据这些东西来大概猜测一下它在干什么。。。
  好吧,贴出来整个函数。我实在看不懂,用IDA看它的流程图,那真是壮观80+节点、20++的寄存器10+的变量,
  小菜鸟实在不行啊……不过真的很想向大侠们一样能够分析出来它的流程,然后写出它的C代码。。。
  好吧,我就只能看到字符串了,努力学习中!
  
  00403D6E   $  55            push    ebp
  00403D6F   .  8BEC          mov     ebp, esp
  00403D71   .  81EC 70000000 sub     esp, 70
  00403D77   .  C745 FC 00000>mov     dword ptr [ebp-4], 0
  00403D7E   .  C745 F8 00000>mov     dword ptr [ebp-8], 0
  00403D85   .  C745 F4 00000>mov     dword ptr [ebp-C], 0
  00403D8C   .  C745 F0 00000>mov     dword ptr [ebp-10], 0
  00403D93   .  C745 EC 00000>mov     dword ptr [ebp-14], 0
  00403D9A   .  C745 E8 00000>mov     dword ptr [ebp-18], 0
  00403DA1   .  C745 E4 00000>mov     dword ptr [ebp-1C], 0
  00403DA8   .  8B5D 08       mov     ebx, dword ptr [ebp+8]
  00403DAB   .  8B03          mov     eax, dword ptr [ebx]
  00403DAD   .  85C0          test    eax, eax
  00403DAF   .  74 15         je      short 00403DC6
  00403DB1   .  50            push    eax
  00403DB2   .  8BD8          mov     ebx, eax
  00403DB4   .  E8 BED2FFFF   call    00401077                         ;  这里做什么?
  00403DB9   .  40            inc     eax
  00403DBA   .  50            push    eax
  00403DBB   .  E8 1A380000   call    004075DA
  00403DC0   .  59            pop     ecx
  00403DC1   .  5E            pop     esi
  00403DC2   .  8BF8          mov     edi, eax
  00403DC4   .  F3:A4         rep     movs byte ptr es:[edi], byte ptr>;  对注册名循环取字符
  00403DC6   >  50            push    eax
  00403DC7   .  8B5D FC       mov     ebx, dword ptr [ebp-4]
  00403DCA   .  85DB          test    ebx, ebx
  00403DCC   .  74 09         je      short 00403DD7
  00403DCE   .  53            push    ebx
  00403DCF   .  E8 00380000   call    004075D4
  00403DD4   .  83C4 04       add     esp, 4
  00403DD7   >  58            pop     eax
  00403DD8   .  8945 FC       mov     dword ptr [ebp-4], eax
  00403DDB   .  8B5D 10       mov     ebx, dword ptr [ebp+10]
  00403DDE   .  8B03          mov     eax, dword ptr [ebx]
  00403DE0   .  85C0          test    eax, eax
  00403DE2   .  74 15         je      short 00403DF9
  00403DE4   .  50            push    eax
  00403DE5   .  8BD8          mov     ebx, eax
  00403DE7   .  E8 8BD2FFFF   call    00401077
  00403DEC   .  40            inc     eax
  00403DED   .  50            push    eax
  00403DEE   .  E8 E7370000   call    004075DA
  00403DF3   .  59            pop     ecx
  00403DF4   .  5E            pop     esi
  00403DF5   .  8BF8          mov     edi, eax
  00403DF7   .  F3:A4         rep     movs byte ptr es:[edi], byte ptr>;  对机器码循环取字符
  00403DF9   >  50            push    eax
  00403DFA   .  8B5D F8       mov     ebx, dword ptr [ebp-8]
  00403DFD   .  85DB          test    ebx, ebx
  00403DFF   .  74 09         je      short 00403E0A
  00403E01   .  53            push    ebx
  00403E02   .  E8 CD370000   call    004075D4
  00403E07   .  83C4 04       add     esp, 4
  00403E0A   >  58            pop     eax
  00403E0B   .  8945 F8       mov     dword ptr [ebp-8], eax
  00403E0E   .  8B5D 0C       mov     ebx, dword ptr [ebp+C]
  00403E11   .  8B03          mov     eax, dword ptr [ebx]
  00403E13   .  85C0          test    eax, eax
  00403E15   .  74 15         je      short 00403E2C
  00403E17   .  50            push    eax
  00403E18   .  8BD8          mov     ebx, eax
  00403E1A   .  E8 58D2FFFF   call    00401077
  00403E1F   .  40            inc     eax
  00403E20   .  50            push    eax
  00403E21   .  E8 B4370000   call    004075DA
  00403E26   .  59            pop     ecx
  00403E27   .  5E            pop     esi
  00403E28   .  8BF8          mov     edi, eax
  00403E2A   .  F3:A4         rep     movs byte ptr es:[edi], byte ptr>;  对假的注册码循环取字符
  00403E2C   >  50            push    eax
  00403E2D   .  8B5D F4       mov     ebx, dword ptr [ebp-C]
  00403E30   .  85DB          test    ebx, ebx
  00403E32   .  74 09         je      short 00403E3D
  00403E34   .  53            push    ebx
  00403E35   .  E8 9A370000   call    004075D4
  00403E3A   .  83C4 04       add     esp, 4
  00403E3D   >  58            pop     eax
  00403E3E   .  8945 F4       mov     dword ptr [ebp-C], eax
  00403E41   .  68 01030080   push    80000301
  00403E46   .  6A 00         push    0
  00403E48   .  68 08000000   push    8
  00403E4D   .  68 04000080   push    80000004
  00403E52   .  6A 00         push    0
  00403E54   .  8B45 F8       mov     eax, dword ptr [ebp-8]
  00403E57   .  85C0          test    eax, eax
  00403E59   .  75 05         jnz     short 00403E60
  00403E5B   .  B8 3C9D4B00   mov     eax, 004B9D3C
  00403E60   >  50            push    eax
  00403E61   .  68 02000000   push    2
  00403E66   .  BB 80784000   mov     ebx, 00407880
  00403E6B   .  E8 70370000   call    004075E0
  00403E70   .  83C4 1C       add     esp, 1C
  00403E73   .  8945 E0       mov     dword ptr [ebp-20], eax
  00403E76   .  8B45 E0       mov     eax, dword ptr [ebp-20]
  00403E79   .  50            push    eax
  00403E7A   .  8B5D F0       mov     ebx, dword ptr [ebp-10]
  00403E7D   .  85DB          test    ebx, ebx
  00403E7F   .  74 09         je      short 00403E8A
  00403E81   .  53            push    ebx
  00403E82   .  E8 4D370000   call    004075D4
  00403E87   .  83C4 04       add     esp, 4
  00403E8A   >  58            pop     eax
  00403E8B   .  8945 F0       mov     dword ptr [ebp-10], eax
  00403E8E   .  68 01030080   push    80000301
  00403E93   .  6A 00         push    0
  00403E95   .  68 08000000   push    8
  00403E9A   .  68 04000080   push    80000004
  00403E9F   .  6A 00         push    0
  00403EA1   .  8B45 F8       mov     eax, dword ptr [ebp-8]
  00403EA4   .  85C0          test    eax, eax
  00403EA6   .  75 05         jnz     short 00403EAD
  00403EA8   .  B8 3C9D4B00   mov     eax, 004B9D3C
  00403EAD   >  50            push    eax
  00403EAE   .  68 02000000   push    2
  00403EB3   .  BB 80784000   mov     ebx, 00407880
  00403EB8   .  E8 23370000   call    004075E0
  00403EBD   .  83C4 1C       add     esp, 1C
  00403EC0   .  8945 E0       mov     dword ptr [ebp-20], eax
  00403EC3   .  68 02000080   push    80000002
  00403EC8   .  6A 00         push    0
  00403ECA   .  68 01000000   push    1
  00403ECF   .  BB 09000000   mov     ebx, 9
  00403ED4   .  E8 47D4FFFF   call    00401320
  00403ED9   .  68 04000080   push    80000004
  00403EDE   .  6A 00         push    0
  00403EE0   .  8B45 E0       mov     eax, dword ptr [ebp-20]
  00403EE3   .  85C0          test    eax, eax
  00403EE5   .  75 05         jnz     short 00403EEC
  00403EE7   .  B8 3C9D4B00   mov     eax, 004B9D3C
  00403EEC   >  50            push    eax
  00403EED   .  68 04000080   push    80000004
  00403EF2   .  6A 00         push    0
  00403EF4   .  8B45 F8       mov     eax, dword ptr [ebp-8]
  00403EF7   .  85C0          test    eax, eax
  00403EF9   .  75 05         jnz     short 00403F00
  00403EFB   .  B8 3C9D4B00   mov     eax, 004B9D3C
  00403F00   >  50            push    eax
  00403F01   .  68 06000000   push    6
  00403F06   .  BB 70804000   mov     ebx, 00408070
  00403F0B   .  E8 D0360000   call    004075E0
  00403F10   .  83C4 4C       add     esp, 4C
  00403F13   .  8945 DC       mov     dword ptr [ebp-24], eax
  00403F16   .  8B5D E0       mov     ebx, dword ptr [ebp-20]
  00403F19   .  85DB          test    ebx, ebx
  00403F1B   .  74 09         je      short 00403F26
  00403F1D   .  53            push    ebx
  00403F1E   .  E8 B1360000   call    004075D4
  00403F23   .  83C4 04       add     esp, 4
  00403F26   >  8B45 DC       mov     eax, dword ptr [ebp-24]
  00403F29   .  50            push    eax
  00403F2A   .  8B5D F8       mov     ebx, dword ptr [ebp-8]
  00403F2D   .  85DB          test    ebx, ebx
  00403F2F   .  74 09         je      short 00403F3A
  00403F31   .  53            push    ebx
  00403F32   .  E8 9D360000   call    004075D4
  00403F37   .  83C4 04       add     esp, 4
  00403F3A   >  58            pop     eax
  00403F3B   .  8945 F8       mov     dword ptr [ebp-8], eax
  00403F3E   .  68 01030080   push    80000301
  00403F43   .  6A 00         push    0
  00403F45   .  68 08000000   push    8
  00403F4A   .  68 04000080   push    80000004
  00403F4F   .  6A 00         push    0
  00403F51   .  8B45 F8       mov     eax, dword ptr [ebp-8]
  00403F54   .  85C0          test    eax, eax
  00403F56   .  75 05         jnz     short 00403F5D
  00403F58   .  B8 3C9D4B00   mov     eax, 004B9D3C
  00403F5D   >  50            push    eax
  00403F5E   .  68 02000000   push    2
  00403F63   .  BB 80784000   mov     ebx, 00407880
  00403F68   .  E8 73360000   call    004075E0
  00403F6D   .  83C4 1C       add     esp, 1C
  00403F70   .  8945 E0       mov     dword ptr [ebp-20], eax
  00403F73   .  8B45 E0       mov     eax, dword ptr [ebp-20]
  00403F76   .  50            push    eax
  00403F77   .  8B5D EC       mov     ebx, dword ptr [ebp-14]
  00403F7A   .  85DB          test    ebx, ebx
  00403F7C   .  74 09         je      short 00403F87
  00403F7E   .  53            push    ebx
  00403F7F   .  E8 50360000   call    004075D4
  00403F84   .  83C4 04       add     esp, 4
  00403F87   >  58            pop     eax
  00403F88   .  8945 EC       mov     dword ptr [ebp-14], eax
  00403F8B   .  68 01030080   push    80000301
  00403F90   .  6A 00         push    0
  00403F92   .  68 08000000   push    8
  00403F97   .  68 04000080   push    80000004
  00403F9C   .  6A 00         push    0
  00403F9E   .  8B45 F8       mov     eax, dword ptr [ebp-8]
  00403FA1   .  85C0          test    eax, eax
  00403FA3   .  75 05         jnz     short 00403FAA
  00403FA5   .  B8 3C9D4B00   mov     eax, 004B9D3C
  00403FAA   >  50            push    eax
  00403FAB   .  68 02000000   push    2
  00403FB0   .  BB 80784000   mov     ebx, 00407880
  00403FB5   .  E8 26360000   call    004075E0
  00403FBA   .  83C4 1C       add     esp, 1C
  00403FBD   .  8945 E0       mov     dword ptr [ebp-20], eax
  00403FC0   .  68 02000080   push    80000002
  00403FC5   .  6A 00         push    0
  00403FC7   .  68 01000000   push    1
  00403FCC   .  BB 09000000   mov     ebx, 9
  00403FD1   .  E8 4AD3FFFF   call    00401320
  00403FD6   .  68 04000080   push    80000004
  00403FDB   .  6A 00         push    0
  00403FDD   .  8B45 E0       mov     eax, dword ptr [ebp-20]
  00403FE0   .  85C0          test    eax, eax
  00403FE2   .  75 05         jnz     short 00403FE9
  00403FE4   .  B8 3C9D4B00   mov     eax, 004B9D3C
  00403FE9   >  50            push    eax
  00403FEA   .  68 04000080   push    80000004
  00403FEF   .  6A 00         push    0
  00403FF1   .  8B45 F8       mov     eax, dword ptr [ebp-8]
  00403FF4   .  85C0          test    eax, eax
  00403FF6   .  75 05         jnz     short 00403FFD
  00403FF8   .  B8 3C9D4B00   mov     eax, 004B9D3C
  00403FFD   >  50            push    eax
  00403FFE   .  68 06000000   push    6
  00404003   .  BB 70804000   mov     ebx, 00408070
  00404008   .  E8 D3350000   call    004075E0
  0040400D   .  83C4 4C       add     esp, 4C
  00404010   .  8945 DC       mov     dword ptr [ebp-24], eax
  00404013   .  8B5D E0       mov     ebx, dword ptr [ebp-20]
  00404016   .  85DB          test    ebx, ebx
  00404018   .  74 09         je      short 00404023
  0040401A   .  53            push    ebx
  0040401B   .  E8 B4350000   call    004075D4
  00404020   .  83C4 04       add     esp, 4
  00404023   >  8B45 DC       mov     eax, dword ptr [ebp-24]
  00404026   .  50            push    eax
  00404027   .  8B5D F8       mov     ebx, dword ptr [ebp-8]
  0040402A   .  85DB          test    ebx, ebx
  0040402C   .  74 09         je      short 00404037
  0040402E   .  53            push    ebx
  0040402F   .  E8 A0350000   call    004075D4
  00404034   .  83C4 04       add     esp, 4
  00404037   >  58            pop     eax
  00404038   .  8945 F8       mov     dword ptr [ebp-8], eax
  0040403B   .  68 01030080   push    80000301
  00404040   .  6A 00         push    0
  00404042   .  68 08000000   push    8
  00404047   .  68 04000080   push    80000004
  0040404C   .  6A 00         push    0
  0040404E   .  8B45 F8       mov     eax, dword ptr [ebp-8]
  00404051   .  85C0          test    eax, eax
  00404053   .  75 05         jnz     short 0040405A
  00404055   .  B8 3C9D4B00   mov     eax, 004B9D3C
  0040405A   >  50            push    eax
  0040405B   .  68 02000000   push    2
  00404060   .  BB 80784000   mov     ebx, 00407880
  00404065   .  E8 76350000   call    004075E0
  0040406A   .  83C4 1C       add     esp, 1C
  0040406D   .  8945 E0       mov     dword ptr [ebp-20], eax
  00404070   .  8B45 E0       mov     eax, dword ptr [ebp-20]
  00404073   .  50            push    eax
  00404074   .  8B5D E8       mov     ebx, dword ptr [ebp-18]
  00404077   .  85DB          test    ebx, ebx
  00404079   .  74 09         je      short 00404084
  0040407B   .  53            push    ebx
  0040407C   .  E8 53350000   call    004075D4
  00404081   .  83C4 04       add     esp, 4
  00404084   >  58            pop     eax
  00404085   .  8945 E8       mov     dword ptr [ebp-18], eax
  00404088   .  C745 E0 00000>mov     dword ptr [ebp-20], 0
  0040408F   .  6A 00         push    0
  00404091   .  8D45 E0       lea     eax, dword ptr [ebp-20]
  00404094   .  50            push    eax
  00404095   .  8D45 FC       lea     eax, dword ptr [ebp-4]
  00404098   .  50            push    eax
  00404099   .  E8 63020000   call    00404301
  0040409E   .  8945 DC       mov     dword ptr [ebp-24], eax
  004040A1   .  8B5D E0       mov     ebx, dword ptr [ebp-20]
  004040A4   .  85DB          test    ebx, ebx
  004040A6   .  74 09         je      short 004040B1
  004040A8   .  53            push    ebx
  004040A9   .  E8 26350000   call    004075D4
  004040AE   .  83C4 04       add     esp, 4
  004040B1   >  DB45 DC       fild    dword ptr [ebp-24]
  004040B4   .  DD5D D4       fstp    qword ptr [ebp-2C]
  004040B7   .  DD45 D4       fld     qword ptr [ebp-2C]
  004040BA   .  D9E0          fchs
  004040BC   .  DD5D CC       fstp    qword ptr [ebp-34]
  004040BF   .  68 01060080   push    80000601
  004040C4   .  FF75 D0       push    dword ptr [ebp-30]
  004040C7   .  FF75 CC       push    dword ptr [ebp-34]
  004040CA   .  68 01000000   push    1
  004040CF   .  BB C0834000   mov     ebx, 004083C0
  004040D4   .  E8 07350000   call    004075E0
  004040D9   .  83C4 10       add     esp, 10
  004040DC   .  8945 C8       mov     dword ptr [ebp-38], eax
  004040DF   .  C745 C4 00000>mov     dword ptr [ebp-3C], 0
  004040E6   .  6A 00         push    0
  004040E8   .  8D45 C4       lea     eax, dword ptr [ebp-3C]
  004040EB   .  50            push    eax
  004040EC   .  8D45 EC       lea     eax, dword ptr [ebp-14]
  004040EF   .  50            push    eax
  004040F0   .  E8 0C020000   call    00404301
  004040F5   .  8945 C0       mov     dword ptr [ebp-40], eax
  004040F8   .  8B5D C4       mov     ebx, dword ptr [ebp-3C]
  004040FB   .  85DB          test    ebx, ebx
  004040FD   .  74 09         je      short 00404108
  004040FF   .  53            push    ebx
  00404100   .  E8 CF340000   call    004075D4
  00404105   .  83C4 04       add     esp, 4
  00404108   >  DB45 C0       fild    dword ptr [ebp-40]
  0040410B   .  DD5D B8       fstp    qword ptr [ebp-48]
  0040410E   .  DD45 B8       fld     qword ptr [ebp-48]
  00404111   .  D9E0          fchs
  00404113   .  DD5D B0       fstp    qword ptr [ebp-50]
  00404116   .  68 01060080   push    80000601
  0040411B   .  FF75 B4       push    dword ptr [ebp-4C]
  0040411E   .  FF75 B0       push    dword ptr [ebp-50]
  00404121   .  68 01000000   push    1
  00404126   .  BB C0834000   mov     ebx, 004083C0
  0040412B   .  E8 B0340000   call    004075E0
  00404130   .  83C4 10       add     esp, 10
  00404133   .  8945 AC       mov     dword ptr [ebp-54], eax
  00404136   .  C745 A8 00000>mov     dword ptr [ebp-58], 0
  0040413D   .  6A 00         push    0
  0040413F   .  8D45 A8       lea     eax, dword ptr [ebp-58]
  00404142   .  50            push    eax
  00404143   .  8D45 F0       lea     eax, dword ptr [ebp-10]
  00404146   .  50            push    eax
  00404147   .  E8 B5010000   call    00404301
  0040414C   .  8945 A4       mov     dword ptr [ebp-5C], eax
  0040414F   .  8B5D A8       mov     ebx, dword ptr [ebp-58]
  00404152   .  85DB          test    ebx, ebx
  00404154   .  74 09         je      short 0040415F
  00404156   .  53            push    ebx
  00404157   .  E8 78340000   call    004075D4
  0040415C   .  83C4 04       add     esp, 4
  0040415F   >  68 01030080   push    80000301
  00404164   .  6A 00         push    0
  00404166   .  FF75 A4       push    dword ptr [ebp-5C]
  00404169   .  68 01000000   push    1
  0040416E   .  BB C0834000   mov     ebx, 004083C0
  00404173   .  E8 68340000   call    004075E0
  00404178   .  83C4 10       add     esp, 10
  0040417B   .  8945 A0       mov     dword ptr [ebp-60], eax
  0040417E   .  C745 9C 00000>mov     dword ptr [ebp-64], 0
  00404185   .  6A 00         push    0
  00404187   .  8D45 9C       lea     eax, dword ptr [ebp-64]
  0040418A   .  50            push    eax
  0040418B   .  8D45 E8       lea     eax, dword ptr [ebp-18]
  0040418E   .  50            push    eax
  0040418F   .  E8 6D010000   call    00404301
  00404194   .  8945 98       mov     dword ptr [ebp-68], eax
  00404197   .  8B5D 9C       mov     ebx, dword ptr [ebp-64]
  0040419A   .  85DB          test    ebx, ebx
  0040419C   .  74 09         je      short 004041A7
  0040419E   .  53            push    ebx
  0040419F   .  E8 30340000   call    004075D4
  004041A4   .  83C4 04       add     esp, 4
  004041A7   >  68 01030080   push    80000301
  004041AC   .  6A 00         push    0
  004041AE   .  FF75 98       push    dword ptr [ebp-68]
  004041B1   .  68 01000000   push    1
  004041B6   .  BB C0834000   mov     ebx, 004083C0
  004041BB   .  E8 20340000   call    004075E0
  004041C0   .  83C4 10       add     esp, 10
  004041C3   .  8945 94       mov     dword ptr [ebp-6C], eax
  004041C6   .  FF75 94       push    dword ptr [ebp-6C]
  004041C9   .  FF75 A0       push    dword ptr [ebp-60]
  004041CC   .  FF75 AC       push    dword ptr [ebp-54]
  004041CF   .  FF75 C8       push    dword ptr [ebp-38]
  004041D2   .  B9 04000000   mov     ecx, 4
  004041D7   .  E8 06CFFFFF   call    004010E2
  004041DC   .  83C4 10       add     esp, 10
  004041DF   .  8945 90       mov     dword ptr [ebp-70], eax
  004041E2   .  8B5D C8       mov     ebx, dword ptr [ebp-38]
  004041E5   .  85DB          test    ebx, ebx
  004041E7   .  74 09         je      short 004041F2
  004041E9   .  53            push    ebx
  004041EA   .  E8 E5330000   call    004075D4
  004041EF   .  83C4 04       add     esp, 4
  004041F2   >  8B5D AC       mov     ebx, dword ptr [ebp-54]
  004041F5   .  85DB          test    ebx, ebx
  004041F7   .  74 09         je      short 00404202
  004041F9   .  53            push    ebx
  004041FA   .  E8 D5330000   call    004075D4
  004041FF   .  83C4 04       add     esp, 4
  00404202   >  8B5D A0       mov     ebx, dword ptr [ebp-60]
  00404205   .  85DB          test    ebx, ebx
  00404207   .  74 09         je      short 00404212
  00404209   .  53            push    ebx
  0040420A   .  E8 C5330000   call    004075D4
  0040420F   .  83C4 04       add     esp, 4
  00404212   >  8B5D 94       mov     ebx, dword ptr [ebp-6C]
  00404215   .  85DB          test    ebx, ebx
  00404217   .  74 09         je      short 00404222
  00404219   .  53            push    ebx
  0040421A   .  E8 B5330000   call    004075D4
  0040421F   .  83C4 04       add     esp, 4
  00404222   > \8B45 90       mov     eax, dword ptr [ebp-70]          ;  出现了真的注册码
  00404225   .  50            push    eax
  00404226   .  8B5D E4       mov     ebx, dword ptr [ebp-1C]
  00404229   .  85DB          test    ebx, ebx
  0040422B   .  74 09         je      short 00404236
  0040422D   .  53            push    ebx
  0040422E   .  E8 A1330000   call    004075D4
  00404233   .  83C4 04       add     esp, 4
  00404236   >  58            pop     eax
  00404237   .  8945 E4       mov     dword ptr [ebp-1C], eax
  0040423A   .  8B45 E4       mov     eax, dword ptr [ebp-1C]
  0040423D   .  50            push    eax
  0040423E   .  FF75 F4       push    dword ptr [ebp-C]
  00404241   .  E8 84D3FFFF   call    004015CA
  00404246   .  83C4 08       add     esp, 8
  00404249   .  83F8 00       cmp     eax, 0
  0040424C   .  B8 00000000   mov     eax, 0
  00404251   .  0F94C0        sete    al
  00404254   .  8945 E0       mov     dword ptr [ebp-20], eax
  00404257   .  8D45 FC       lea     eax, dword ptr [ebp-4]
  0040425A   .  50            push    eax
  0040425B   .  FF75 E0       push    dword ptr [ebp-20]
  0040425E   .  E8 ED020000   call    00404550
  00404263   .  8945 D8       mov     dword ptr [ebp-28], eax
  00404266   .  837D D8 01    cmp     dword ptr [ebp-28], 1
  0040426A   .  0F85 0F000000 jnz     0040427F
  00404270   .  B8 01000000   mov     eax, 1
  00404275   .  E9 0F000000   jmp     00404289
  0040427A   .  E9 0A000000   jmp     00404289
  0040427F   >  B8 00000000   mov     eax, 0
  00404284   .  E9 00000000   jmp     00404289
  00404289   >  50            push    eax
  0040428A   .  8B5D FC       mov     ebx, dword ptr [ebp-4]
  0040428D   .  85DB          test    ebx, ebx
  0040428F   .  74 09         je      short 0040429A
  00404291   .  53            push    ebx
  00404292   .  E8 3D330000   call    004075D4
  00404297   .  83C4 04       add     esp, 4
  0040429A   >  8B5D F8       mov     ebx, dword ptr [ebp-8]
  0040429D   .  85DB          test    ebx, ebx
  0040429F   .  74 09         je      short 004042AA
  004042A1   .  53            push    ebx
  004042A2   .  E8 2D330000   call    004075D4
  004042A7   .  83C4 04       add     esp, 4
  004042AA   >  8B5D F4       mov     ebx, dword ptr [ebp-C]
  004042AD   .  85DB          test    ebx, ebx
  004042AF   .  74 09         je      short 004042BA
  004042B1   .  53            push    ebx
  004042B2   .  E8 1D330000   call    004075D4
  004042B7   .  83C4 04       add     esp, 4
  004042BA   >  8B5D F0       mov     ebx, dword ptr [ebp-10]
  004042BD   .  85DB          test    ebx, ebx
  004042BF   .  74 09         je      short 004042CA
  004042C1   .  53            push    ebx
  004042C2   .  E8 0D330000   call    004075D4
  004042C7   .  83C4 04       add     esp, 4
  004042CA   >  8B5D EC       mov     ebx, dword ptr [ebp-14]
  004042CD   .  85DB          test    ebx, ebx
  004042CF   .  74 09         je      short 004042DA
  004042D1   .  53            push    ebx
  004042D2   .  E8 FD320000   call    004075D4
  004042D7   .  83C4 04       add     esp, 4
  004042DA   >  8B5D E8       mov     ebx, dword ptr [ebp-18]
  004042DD   .  85DB          test    ebx, ebx
  004042DF   .  74 09         je      short 004042EA
  004042E1   .  53            push    ebx
  004042E2   .  E8 ED320000   call    004075D4
  004042E7   .  83C4 04       add     esp, 4
  004042EA   >  8B5D E4       mov     ebx, dword ptr [ebp-1C]
  004042ED   .  85DB          test    ebx, ebx
  004042EF   .  74 09         je      short 004042FA
  004042F1   .  53            push    ebx
  004042F2   .  E8 DD320000   call    004075D4
  004042F7   .  83C4 04       add     esp, 4
  004042FA   >  58            pop     eax
  004042FB   .  8BE5          mov     esp, ebp
  004042FD   .  5D            pop     ebp
  004042FE   .  C2 1000       retn    10
  
  
  在出现了真的注册码的地方下断点。
  00404222   > \8B45 90       mov     eax, dword ptr [ebp-70]          ;  出现了真的注册码
  我的是:-777694-7701915851266145273914
  填进去,注册成功。关闭软件,重新运行,结果,还是现实未注册……可能是,我并不是该网站的合法注册用户?
  真是的……还得联网吗?好吧,这个还是不完美。
  
  在这个地方下断点。
  我们重新来一下,意想不到的事情出现了!
  在开始运行程序不久,我们看到这个断点的地方竟然有类似注册码格式的字符串!
  例如,我的这里是:0-7701915851266145273914
  这个……莫非是万能的注册码?!(猜测……)好吧,那么,拿下来,试试。猜测用户名空着,填进去,注册成功!
  再次关闭,运行。强悍啊,真正的注册成功了,没有未注册的任何信息。。。
  
  然后,我又跟着流程走,大概的可以发现如下规律:
  注册码分两部分,前面是由用户名算得,后半部分由机器码算得,中间用连字符连接。
  
  其他的……不知道了。
  
  写了一个内存注册机,嗯,就这样,让它在第一次就得到一个万能注册码,很好。

  得看雪论坛的帮助收获颇多,向大侠们学习,向大侠们致敬!
  
--------------------------------------------------------------------------------
【经验总结】
  1.软件注册码追踪方面比较简单:
  字符串搜索(注意:OD运行到在不同的地方,搜索到的字符串不同),定位;
  一些常用的API函数断点很有用;
  2.算法上,目前小菜鸟的确是力所不能及,大侠们多多指教!

对了,我是新手,不知道我这个写出来,表达清楚了没有,我看其他的帖子都是有图有文的,很详细,而我的却主要说的是感受及思路(……);
不知道对同样的新手们有没有帮助;我觉得最好的办法是跟着一个例子,对照着做,然后慢慢的形成自己的思路,所以在帖子后面最好附上crack过程中涉及到的工具资源。
好吧,我们一起加油!
第一次发帖,谢谢大家的鼓励!也真心的希望大家给出宝贵的意见!这样更有利于我们的进步!我们一直在努力!


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

                                                       2010年06月04日 22:14:31

【添加内存注册机的编写】【仅仅新手学习】
中段地址:40423D【其实有很多地址都可以,我也不知道如何最好】
中断次数:1【一次即可,在调试的时候可以跑出来】
第一字节:50
指令长度:1
保存以下信息为注册码:
内存方式,寄存器,EBX(其实不太懂哪个更好)
可以了。
  
【增加附件下载】附件中是原版软件和我修改后的软件,以及写的简易注册机,
欢迎大家批评指正!加上我的网盘连接:http://e.ys168.com/?cmoon

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 181
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不错啊,刚接触汇编不久就已经有这样的水平,赞一个!
软件如果是明码比较的话都没什么难度,只要找到关键信息,基本上就成功80%了。
2010-6-5 00:19
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
嗯,谢谢鼓励!小菜鸟会更加努力地学习!只是看反汇编出来的研究算法,实在是很有难度现在。另外,不太会用那个IDA动态调试,嗯,相信这个工具很好。。。加油加油!

2010-6-5 01:29
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
继续努力学习中
2010-6-5 20:31
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
易语言编的软件peid报是VC++是误报吧。
2010-6-5 20:45
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
嗯,新手都在修炼!没关系,我们一直在努力!加油!
2010-6-5 20:57
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哦,嗯,有可能是的,我不太懂。PEID可能没有能够检测E语言的。。。
话说,E语言写程序,与C区别不大吗?居然能够被检测为VC写的?
好吧,继续努力谢谢提醒!
2010-6-5 21:00
0
雪    币: 94
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
支持原创...
2010-6-5 22:13
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不错噢,偶啥时候才能啊...努力中..
2010-6-5 22:47
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
嗯,谢谢你的鼓励!咱们一起努力!
2010-6-5 22:57
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
相信你也很快啦!一起加油!
2010-6-5 22:58
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
继续努力学习
2010-6-6 00:37
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
支持啊 慢慢研究
2010-6-6 02:50
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
嗯,加油!咱们一起努力!
2010-6-6 15:50
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
对了,我也是新手,不知道我这个写出来,表达清楚了没有,我看其他的帖子都是有图有文的,很详细,而我的却主要说的是感受及思路(……);
不知道对同样的新手们有没有帮助;我觉得最好的办法是跟着一个例子,对照着做,然后慢慢的形成自己的思路,所以在帖子后面最好附上crack过程中涉及到的工具资源。
好吧,我们一起加油!

第一次发帖,谢谢大家的鼓励!也真心的希望大家给出宝贵的意见!这样更有利于我们的进步!我们一直在努力!
2010-6-6 15:58
0
游客
登录 | 注册 方可回帖
返回
//