【文章标题】: 【首次发帖,多多指教!】简单注册码追踪
【文章作者】: 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直播授课