首页
社区
课程
招聘
[原创]解密市面上考试软件系列所有题库 + 编写自己的考试软件 + [求职]
发表于: 2014-4-23 11:38 41196

[原创]解密市面上考试软件系列所有题库 + 编写自己的考试软件 + [求职]

2014-4-23 11:38
41196
本人小菜一枚,若有错误请大神们指正。

考试系列产品市场上主要有
No.1:考试宝典[Delphi]考试软件巨头淘宝出售每月都过N万
No.2:题无忧[C# .NET] 价格较低 广告印象深刻..
No.3:帕斯考通、助考之星等各种。。[VC/Delphi]

No.3系列软件几乎没有什么保护可言,OD调试软件后下断点就可以跟踪到密码。但是有个小问题是:不同版本的sqlite3.dll的加密算法不同只能用原DLL程序调用解密才能还原,不然你有了密码也不会匹配的,因为算法不同。所以,你必须把程序目录下的sqlite3.dll 或者System.Data.SQLite.DLL复制出来自己写个exe调用程序移除密码。
通过调试获取所有产品sqlite3加密密码如下
助考之星 qinbibnghe2003@163.com.xzfvd*
职称英语A qinbibngheA@163&.cvd*
帕斯考通 zonghengsihai#&&99
考试宝典 20090919lovejrtytong
题无忧 sqlitetiwuyouwen / sqlitetiwuyoulishan
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SQLite3的加密函数说明
sqlite3_key是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作,如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误。
int sqlite3_key( sqlite3 *db, const void *pKey, int nKey),db 是指定数据库,pKey 是密钥,nKey 是密钥长度。例:sqlite3_key( db, "lo6.net", 7);
 
sqlite3_rekey是变更密钥或给没有加密的数据库添加密钥或清空密钥,变更密钥或清空密钥前必须先正确执行 sqlite3_key。在正确执行 sqlite3_rekey 之后在 sqlite3_close 关闭数据库之前可以正
 
常操作数据库,不需要再执行 sqlite3_key。
int sqlite3_rekey( sqlite3 *db, const void *pKey, int nKey),参数同上。
 
[SIZE=3]清空密钥为 sqlite3_rekey( db, NULL, 0)。[/SIZE]
--------------------------------------------------------------------
No.3系列

简单分析了下助考之星的加密算法,写了所有系列产品注册机,如下
[SIZE=3]00C0621C    55              push ebp                                 ; OEP[/SIZE]
[SIZE=3]00C0621D    8BEC            mov ebp,esp[/SIZE]
[SIZE=3]00C0621F    83C4 E0         add esp,-0x20[/SIZE]
[SIZE=3]00C06222    53              push ebx[/SIZE]
[SIZE=3]00C06223    56              push esi                                 ; 0002-06A7-0FEB-FBFF-8098-2203[PT_N]11111111111111111111111[/SIZE]
[SIZE=3]00C06224    57              push edi                                 ; 0xE进栈;//EDI[/SIZE]
[SIZE=3]00C06225    33DB            xor ebx,ebx                              ; EBX=0,CF=0;//自身xor运算结果为0,CF=0[/SIZE]
[SIZE=3]00C06227    895D E4         mov dword ptr ss:[ebp-0x1C],ebx          ; SS段 清空[/SIZE]
[SIZE=3]00C0622A    895D E0         mov dword ptr ss:[ebp-0x20],ebx[/SIZE]
........................//算法为MD5算法。不用贴出来看了。。。只是构造一种格式 看下图就知道了

而且,sqlite数据库中竟然有一处保存着类似FTP账号密码的东东。。而且竟然连接上了=.= 软件怎么能这么弱 这都在哪儿找的开发人员??

No.2系列:题无忧[C# .NET] Xenocode壳

C# .NET 我一直没看过...而且加了个Xenocode壳搞得我更不懂了.. 换个思路 不调试了,有些做C#这种高级语言的都不懂得释放,尝试内存搜索找出密码
运行程序后,拿出外挂注入器CE,插入题无忧.exe 盲目搜索一些关键字符串 比如 SQLite Format3 等这种解密后的头。功夫不负有心人,在内存里找到了DB密码。
复制出System.Data.SQLite.DLL[c#]自己写个C#语言的调用程序清空密钥就OK了。

No.1系列:考试宝典[Delphi] Safengine Protector v2.1.9.0强壳
这个刚刚开始感觉无从下手,断断续续1星期搞定的。主要原因是1.强壳我不会脱,2.无sqlite3.dll调用 他自己将sqlite源码写在exe里面了!有了DB密码也打不开的(⊙o⊙)…
我想了几个方案:
1.找到sqlite3算法源码 尝试从算法解密[下载了份C源码,看了几眼立马放弃了!全是一排排一列列的矩阵数字,这么成熟的东西我这无知的小菜妄想了....]
2.能不能远程插入调用?[没尝试 感觉不会]
3.内存dump解密后的数据库 [无知的小菜又妄想了。。]
4.修改sqlite3指令导出解密后的DB数据库 [可惜..没有这功能语句]
5.试遍所有sqlite3.dll [下载了几十种sqlite3...]
6.是否存在open_rekey()函数 [如果开发人员够2,没有移除的话。。我来构造调用让其自解密!]
OD载入后如下:
[SIZE=3]00BA433B > $  E8 1D000000   call    00BA435D                         ;  (initial cpu selection); PUSH ASCII "Safengine Protector v2.1.9.0"[/SIZE]
[SIZE=3]00BA4340   .  53 61 66 65 6>ascii   "Safengine P"[/SIZE]
[SIZE=3]00BA434B   >  72 6F         jb      short 00BA43BC[/SIZE]
[SIZE=3]00BA434D      74            db      74                               ;  CHAR 't'[/SIZE]
[SIZE=3]00BA434E      65            db      65                               ;  CHAR 'e'[/SIZE]
[SIZE=3]00BA434F      63            db      63                               ;  CHAR 'c'[/SIZE]
[SIZE=3]00BA4350   .  74 6F 72 20 7>ascii   "tor v2.1.9.0",0[/SIZE]
[SIZE=3]00BA435D   >  9C            pushfd[/SIZE]

这么强的壳对于我这种小菜,脱壳是不太可能的 先换个思路 构造个open_key异常
弹窗出错喽...各种被偷窥到了哈。。SQLiteTable3.pas[这个可百度谷歌到源码!]




动态调试SE壳里的程序,我是先跳转到关键位置[解密前必经过],然后点运行,他会解出原反汇编代码,手要快按下下断。。
动态调试也要有个参考吧!不然这么下断如同大海捞针。我在解出原反汇编代码断下来后,用PELOAD dump保存整个程序,拖到IDA和DEDE里面后可以分析一些东西了~!


下面要做的就是:通过sqlite3提供的C源码 或者 SQLiteTable3.pas 结合IDA 定位open_rekey()函数 //我做的时候并不清楚到底有没有这接口,虽然有些无力但我没放弃哈。
这是以前留下的笔记
[SIZE=3]1.脱SE壳  ->修改DB数据库 造成无法打开弹出错误 暴露软件真实地址[/SIZE]
 
[SIZE=3]2.过SE壳OD加载程序 下断点 或者找到OEP下段 LoadPE -> Dump整个程序 [/SIZE]
 
[SIZE=3]3.dede分析 + IDA分析 [/SIZE]
 
[SIZE=3]4.利用IDA的ASCII码与源码定位sqlite3_open函数[/SIZE]
[SIZE=3]sqlite3_open  = 0054094C[/SIZE]
[SIZE=3]sqlite3_rekey = 00543A58[/SIZE]
 
[SIZE=3]5.[/SIZE]
[SIZE=3]00545EFE    8B55 08         mov edx,dword ptr ss:[ebp+0x8]           ; password[/SIZE]
[SIZE=3]00545F01    8B45 FC         mov eax,dword ptr ss:[ebp-0x4][/SIZE]
[SIZE=3]00545F04    E8 77090000     call ExamBibl.00546880                   ; sqlite3_key(mydb, password, strlen(pwd))[/SIZE]
[SIZE=3]00545F09    84C0            test al,al[/SIZE]
[SIZE=3]00545F0B    74 09           je short ExamBibl.00545F16[/SIZE]
[SIZE=3]---------------------------------------------------------------------[/SIZE]
[SIZE=3]0054689F    A1 5CC67900     mov eax,dword ptr ds:[0x79C65C][/SIZE]
[SIZE=3]005468A4    8B00            mov eax,dword ptr ds:[eax][/SIZE]
[SIZE=3]005468A6    FFD0            call eax                                 ; ExamBibl.00543A3C       ------|[/SIZE]
[SIZE=3]005468A8    83C4 0C         add esp,0xC                              ; 用密码打开成功 平衡堆栈       |[/SIZE]
[SIZE=3]005468AB    85C0            test eax,eax                             ; 利用key构造rekey自解密--------|----用密码打开后,平衡堆栈完毕 再跳回去构造解密 //jmp 00543A3C[/SIZE]
[SIZE=3]005468AD    0F94C0          sete al                                                                  |[/SIZE]
[SIZE=3]005468B0    84C0            test al,al                                                               |[/SIZE]
[SIZE=3]---------------------------------------------------------------------                                |[/SIZE]
[SIZE=3]00543A3C    55              push ebp                                 ; 真sqlite3_key函数    <<<-------[/SIZE]
[SIZE=3]00543A3D    8BEC            mov ebp,esp[/SIZE]
[SIZE=3]00543A3F    8B45 10         mov eax,dword ptr ss:[ebp+0x10]          ; strlen(password) // 改0 实现无密码[/SIZE]
[SIZE=3]00543A42    50              push eax[/SIZE]
[SIZE=3]00543A43    8B55 0C         mov edx,dword ptr ss:[ebp+0xC]           ; password  // 改0 实现无密码[/SIZE]
[SIZE=3]00543A46    52              push edx[/SIZE]
[SIZE=3]00543A47    6A 00           push 0x0[/SIZE]
[SIZE=3]00543A49    8B4D 08         mov ecx,dword ptr ss:[ebp+0x8]           ; *mydb   =   02AC20A8   /* Database to be rekeyed */[/SIZE]
[SIZE=3]00543A4C    51              push ecx[/SIZE]
[SIZE=3]00543A4D    E8 76FEFFFF     call ExamBibl.005438C8                   ; 执行sqlite3_key()  //call sqlite3_rekey()   call 00543A58[/SIZE]
[SIZE=3]00543A52    83C4 10         add esp,0x10                             ; 自解密完毕!![/SIZE]
[SIZE=3]00543A55    5D              pop ebp[/SIZE]
[SIZE=3]00543A56    C3              retn[/SIZE]
 
[SIZE=3][COLOR=red]//自动脚本[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468AD    0F94C0          sete al //执行到此处修改一下代码实现自解密[/COLOR][/SIZE]
 
[SIZE=3][COLOR=red]-----------[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468AD    50              push eax  //push strlen(pwd) = 0[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468AE    52              push edx  //push password = 0[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468AF    6A 00           push 0x0[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468B1    51              push ecx  //push mydb[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468B2    E8 A1D1FFFF     call ExamBibl.00543A58 //call sqlite3_rekey()自解密[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468B7    90              nop[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468B8    90              nop[/COLOR][/SIZE]
[SIZE=3][COLOR=red]005468B9    90              nop[/COLOR][/SIZE]




上图解密前,下图解密后

当解密出来的那一刻。。我happy的跳了起来=.=!没想到就这么搞了一件自己完不成的事情。灵感很关键..

================================================================================================
自己写考试系列软件
用VS2010写的 也学着考试宝典自封sqlite3 但是我知道要移除open_rekey() =.= .
界面用的开源的炫彩库XCGUI,我也自封到exe里了。。
自己练习做做开发哈。。没什么技术含量了就 设计界面 布局 PS 调用下sql语句。。
show 下程序..






最后,用apktools逆向下考试宝典android手机版本发现了内部调用接口测试平台,还有个接口 每天注册多少人都能看到。。个人信息 机器码 联系方式
http://t.api.ksbao.com/


不要抱怨自己运气不好,机会不多,机会、运气是自己创造的!
-------------------------------------------------------------------------------------------------

构造自解密部分确实不容易操作 放一下曾经的操作记录录像。。。曾经有个看雪C+大侠想花万元买数据哈。。估计你也会看到这的....

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 5
支持
分享
最新回复 (74)
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
2
分析的不错
2014-4-23 11:39
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
3
老乡啊 地狱怪客
2014-4-23 11:52
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
4
好多山东的
2014-4-23 12:02
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
5
哈....
2014-4-23 12:56
0
雪    币: 4
活跃值: (726)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
前来支持怪客大姐..
2014-4-23 13:38
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
7
应该是支持怪客小妹
2014-4-23 14:11
0
雪    币: 5041
活跃值: (3439)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
8
标记一下,多谢分享
2014-4-23 14:12
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
9
ca....
2014-4-23 14:17
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
10
咋能黑我。。
2014-4-23 14:18
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
支持老怪
2014-4-23 15:24
0
雪    币: 11
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
支持山东老乡。
2014-4-23 15:58
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
战斗力 10颗星
2014-4-23 22:57
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
看了内容,感觉楼主很强大,佩服
2014-4-28 16:06
0
雪    币: 188
活跃值: (32)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
很牛,关注考试宝典的壳是怎么脱的啊
2014-5-9 14:11
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
17
SE壳没脱,带壳调试的。。。
2014-5-9 14:23
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
难道是山东蓝翔毕业的???[QUOTE][/QUOTE]
2014-5-12 21:02
0
雪    币: 411
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不错的思路,貌似是卫生的考试系统.
2014-5-13 07:53
0
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
收藏下,值得学习下!
2014-5-13 08:47
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
21
2014-5-13 09:20
0
雪    币: 110
活跃值: (522)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
22
啥情况,是个妹纸?
2014-5-13 09:33
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
23
他们黑我。。
2014-5-13 10:19
0
雪    币: 152
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
LZ求职直接放大招啊 呵呵 支持了
2014-5-13 14:11
0
雪    币: 110
活跃值: (522)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
25
叼得不行呀
2014-5-15 09:05
0
游客
登录 | 注册 方可回帖
返回
//