gtboy 发表于 2009-9-2 16:02:51

巧取考试宝典注册码

【文章标题】: 巧取考试宝典注册码
【文章作者】: gtboy
【软件名称】: 银行从业资格考试宝典2.2
【下载地址】: 自己搜索下载
【加壳方式】: aspack
【保护方式】: 序列号
【使用工具】: strongod,peid
【操作平台】: xp sp3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
女朋友要考银行从业资格,买了两本书,想看看有啥好点的软件不。在华军上搜索了下,看到这个就下载了。安装,运行,要注册,尝试自己弄弄。水平太菜了,信心不足。
peid查壳aspak,esp定律脱了下,似乎有附加数据,懒得弄,直接带壳跑了。用esp定律来到oep,拿插件搜索下,啥都没有。试着注册,弹出个对话框,说注册码错误,ok,下bp MessageBoxA
btw,strongod带来cmdbar的功能,希望越来越强大,菜鸟的福音啊。
随便输入个注册码,就输入19532386吧,呵呵。注册-od断下。在堆栈窗口中右键0012EA7C   004D5082/CALL 到 MessageBoxA 来自 ExamBibl.004D507D。上下翻腾了下,没发现关键的地方。想来下,既然运行起来了,那么字符串啥的都解码了。再查找下字符串,果然出来很多。搜索注册,有正确和错误了。呵呵,当然是去那里了。
00590458    55            PUSH EBP
00590459    8BEC            MOV EBP,ESP
0059045B    81C4 FCFDFFFF   ADD ESP,-204
00590461    53            PUSH EBX
00590462    33D2            XOR EDX,EDX
00590464    8955 FC         MOV DWORD PTR SS:,EDX
00590467    8BD8            MOV EBX,EAX
00590469    33C0            XOR EAX,EAX
0059046B    55            PUSH EBP
0059046C    68 04055900   PUSH 00590504
00590471    64:FF30         PUSH DWORD PTR FS:
00590474    64:8920         MOV DWORD PTR FS:,ESP
00590477    8BD3            MOV EDX,EBX
00590479    A1 B0FF5F00   MOV EAX,DWORD PTR DS:
0059047E    E8 0DE7FFFF   CALL 0058EB90
00590483    8D45 FC         LEA EAX,DWORD PTR SS:
00590486    E8 B5040000   CALL 00590940
0059048B    E8 A8F8FFFF   CALL 0058FD38
00590490    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:
00590496    8BD3            MOV EDX,EBX
00590498    B9 FF000000   MOV ECX,0FF
0059049D    E8 1257E7FF   CALL 00405BB4
005904A2    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:
005904A8    50            PUSH EAX
005904A9    8D85 FCFDFFFF   LEA EAX,DWORD PTR SS:         ; 机器码放入eax
005904AF    8B55 FC         MOV EDX,DWORD PTR SS:             ; 假码放入edx
005904B2    B9 FF000000   MOV ECX,0FF
005904B7    E8 F856E7FF   CALL 00405BB4
005904BC    8D85 FCFDFFFF   LEA EAX,DWORD PTR SS:
005904C2    5A            POP EDX
005904C3    E8 2CF6FFFF   CALL 0058FAF4                            ; 关键call
005904C8    8BD8            MOV EBX,EAX
005904CA    84DB            TEST BL,BL
005904CC    74 16         JE SHORT 005904E4                        ; 关键跳,跳走就失败
005904CE    A1 B0FF5F00   MOV EAX,DWORD PTR DS:
005904D3    E8 10E6FFFF   CALL 0058EAE8
005904D8    B8 1C055900   MOV EAX,0059051C                         ; 注册完毕,请关闭软件后再重新运行。如果注册成功,软件的标题不会有[试用版]的提示。
005904DD    E8 3EDBFFFF   CALL 0058E020
005904E2    EB 0A         JMP SHORT 005904EE
005904E4    B8 78055900   MOV EAX,00590578                         ; 注册失败:您输入的注册码不正确。如果您还没有购买注册码,请联系我们购买!如要试用,请先关闭此窗口。
005904E9    E8 32DBFFFF   CALL 0058E020

跟入0058FAF4
0058FAF4    55            PUSH EBP
0058FAF5    8BEC            MOV EBP,ESP
0058FAF7    B9 26000000   MOV ECX,26
0058FAFC    6A 00         PUSH 0
0058FAFE    6A 00         PUSH 0
0058FB00    49            DEC ECX
0058FB01^ 75 F9         JNZ SHORT 0058FAFC
0058FB03    53            PUSH EBX                                 ; F4过来,循环压入0?
0058FB04    56            PUSH ESI
0058FB05    57            PUSH EDI
0058FB06    8BF2            MOV ESI,EDX
0058FB08    8BF8            MOV EDI,EAX
0058FB0A    33C0            XOR EAX,EAX
0058FB0C    55            PUSH EBP
0058FB0D    68 DAFC5800   PUSH 0058FCDA
0058FB12    64:FF30         PUSH DWORD PTR FS:
0058FB15    64:8920         MOV DWORD PTR FS:,ESP
0058FB18    33DB            XOR EBX,EBX
0058FB1A    8BC7            MOV EAX,EDI
0058FB1C    E8 A3FAFFFF   CALL 0058F5C4                            ; 验证机器码长度为0c
0058FB21    84C0            TEST AL,AL
0058FB23    0F84 8B010000   JE 0058FCB4
0058FB29    8BC6            MOV EAX,ESI
0058FB2B    E8 D4F9FFFF   CALL 0058F504                            ; 验证注册码长度为0c,全为数字,还有别的,没分析出来
0058FB30    84C0            TEST AL,AL
0058FB32    0F84 7C010000   JE 0058FCB4
0058FB38    8D85 F0FEFFFF   LEA EAX,DWORD PTR SS:
0058FB3E    8BD6            MOV EDX,ESI
0058FB40    E8 1B60E7FF   CALL 00405B60
0058FB45    8B85 F0FEFFFF   MOV EAX,DWORD PTR SS:
0058FB4B    8D95 F4FEFFFF   LEA EDX,DWORD PTR SS:
0058FB51    E8 CADCFFFF   CALL 0058D820                            ; md5计算过程
0058FB56    8B85 F4FEFFFF   MOV EAX,DWORD PTR SS:         ; eax中出现假码md5的结果
0058FB5C    50            PUSH EAX
0058FB5D    8D85 ECFEFFFF   LEA EAX,DWORD PTR SS:
0058FB63    8B15 E8635F00   MOV EDX,DWORD PTR DS:            ; edx中出现真码md5后的结果
0058FB69    E8 F25FE7FF   CALL 00405B60
0058FB6E    8B95 ECFEFFFF   MOV EDX,DWORD PTR SS:
0058FB74    58            POP EAX
0058FB75    E8 C661E7FF   CALL 00405D40                            ; 两个md5字符串进行比较
0058FB7A    0F85 34010000   JNZ 0058FCB4                           ; 关键跳,不跳就生成注册文件
0058FB80    8D95 E4FEFFFF   LEA EDX,DWORD PTR SS:
0058FB86    A1 DC615F00   MOV EAX,DWORD PTR DS:
0058FB8B    8B00            MOV EAX,DWORD PTR DS:
0058FB8D    E8 5A59F4FF   CALL 004D54EC
0058FB92    8B85 E4FEFFFF   MOV EAX,DWORD PTR SS:
0058FB98    8D95 E8FEFFFF   LEA EDX,DWORD PTR SS:
0058FB9E    E8 A1BBE7FF   CALL 0040B744
0058FBA3    8D85 E8FEFFFF   LEA EAX,DWORD PTR SS:         ; 下面为注册文件名
0058FBA9    BA F4FC5800   MOV EDX,0058FCF4                         ; data\temp.db
0058FBAE    E8 3160E7FF   CALL 00405BE4                            ; 获取该文件的位置
0058FBB3    8B95 E8FEFFFF   MOV EDX,DWORD PTR SS:         ; 写入内容date=t5zIlQiZqP78NuWJ7z+CREioMcBv/Ol4wVrX4rZN
小菜认为验证过程应该就发生在CALL 0058F504,跟了两遍,没啥收获,突然想起md5可以查询的呀.在线查询了下,没有.下了个软件跑吧,12位数字还是很慢.突然想到,他要计算md5得先传递真码呀,由分析可知0058D820就是计算过程。因为有壳,用硬件执行断点。重新运行,看寄存器窗口,可以看到注册码和机器码。我的机器码是198951907558,对应的注册码为871371197802。同时发现软件产生了个D_WD-WMAJ52175170CJ_YHCY,明显不符合注册码规则,但输入进去没反应,不知为何。
注册后,发现题目还是和原先一样多,只是软件显示成正式版,估计是有暗桩或者是需要联网注册下才行吧。还要上课,就暂时不分析了。

--------------------------------------------------------------------------------
【经验总结】
md5也不能直接拿来比较呀,而且用一个文件来确认是否注册是很危险的。
对真码md5存放地址下硬件断点的话应该更快。
基础要扎实,要有耐心,像小菜我就不行了,算法分析不出来,用取巧的方法获得了注册码。

--------------------------------------------------------------------------------
【版权声明】: 没有版权,呵呵。探讨交流。

                                                       2009年09月02日 15:56:37

wodedipan1 发表于 2009-9-2 16:50:27

学习``` 以后有用/:014

cjteam 发表于 2009-9-2 17:49:51

/:001 不错,支持下

kcr 发表于 2009-9-3 10:14:30

学习一下。

20010501 发表于 2009-9-3 17:53:23

嘿嘿
支持你了

walili 发表于 2009-9-5 13:16:10

D_WD-WMAJ52175170CJ_YHCY感觉怎么像硬盘码?

wan 发表于 2009-9-5 17:48:54

估计作者全系列就一个注册机,算法完全一样的。
简单的MD5变换再余数运算就是注册码了/:001

老万 发表于 2009-9-5 20:41:53

路过学习一下

freewold 发表于 2009-9-7 17:00:05

原帖由 gtboy 于 2009-9-2 16:02 发表 https://www.chinapyg.com/images/common/back.gif
【文章标题】: 巧取考试宝典注册码
【文章作者】: gtboy
【软件名称】: 银行从业资格考试宝典2.2
【下载地址】: 自己搜索下载
【加壳方式】: aspack
【保护方式】: 序列号
【使用工具】: strongod,peid
【操 ...
这是由于数据库被锁定了,只要卸载软件,重新安装输入注册码,题库就全部显现了。

freewold 发表于 2009-9-7 17:01:41

原帖由 gtboy 于 2009-9-2 16:02 发表 https://www.chinapyg.com/images/common/back.gif
【文章标题】: 巧取考试宝典注册码
【文章作者】: gtboy
【软件名称】: 银行从业资格考试宝典2.2
【下载地址】: 自己搜索下载
【加壳方式】: aspack
【保护方式】: 序列号
【使用工具】: strongod,peid
【操 ... 注册后,发现题目还是和原先一样多,只是软件显示成正式版,估计是有暗桩或者是需要联网注册下才行吧。还要上课,就暂时不分析了。
这是由于数据库被锁定了,只要卸载软件,重新安装输入注册码,题库就全部显现了。
页: [1] 2 3
查看完整版本: 巧取考试宝典注册码