电竞比分网-中国电竞赛事及体育赛事平台

分享

【轉(zhuǎn)自看雪】解密市面上考試軟件系列所有題庫 + 編寫自己的考試軟件 + [求職]

 herowuking 2015-01-12

本人小菜一枚,若有錯誤請大神們指正。
 原帖地址:http://bbs./showthread.php?t=186883

考試系列產(chǎn)品市場上主要有
No.1:考試寶典[Delphi]考試軟件巨頭淘寶出售每月都過N萬
No.2:題無憂[C# .NET] 價格較低 廣告印象深刻..
No.3:帕斯考通、助考之星等各種。。[VC/Delphi]
 
No.3系列軟件幾乎沒有什么保護(hù)可言,OD調(diào)試軟件后下斷點(diǎn)就可以跟蹤到密碼。但是有個小問題是:不同版本的sqlite3.dll的加密算法不同只能用原DLL程序調(diào)用解密才能還原,不然你有了密碼也不會匹配的,因?yàn)樗惴ú煌?。所以,你必須把程序目錄下的sqlite3.dll 或者System.Data.SQLite.DLL復(fù)制出來自己寫個exe調(diào)用程序移除密碼。
通過調(diào)試獲取所有產(chǎn)品sqlite3加密密碼如下
助考之星 qinbibnghe2003@163.com.xzfvd*
職稱英語A qinbibngheA@163&.cvd*
帕斯考通 zonghengsihai#&&99
考試寶典 20090919lovejrtytong
題無憂 sqlitetiwuyouwen / sqlitetiwuyoulishan
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SQLite3的加密函數(shù)說明
[SIZE=3]

代碼:
sqlite3_key是輸入密鑰,如果數(shù)據(jù)庫已加密必須先執(zhí)行此函數(shù)并輸入正確密鑰才能進(jìn)行操作,如果數(shù)據(jù)庫沒有加密,執(zhí)行此函數(shù)后進(jìn)行數(shù)據(jù)庫操作反而會出現(xiàn)“此數(shù)據(jù)庫已加密或不是一個數(shù)據(jù)庫文件”的錯誤。
int sqlite3_key( sqlite3 *db, const void *pKey, int nKey),db 是指定數(shù)據(jù)庫,pKey 是密鑰,nKey 是密鑰長度。例:sqlite3_key( db, "lo6.net", 7);
 
sqlite3_rekey是變更密鑰或給沒有加密的數(shù)據(jù)庫添加密鑰或清空密鑰,變更密鑰或清空密鑰前必須先正確執(zhí)行 sqlite3_key。在正確執(zhí)行 sqlite3_rekey 之后在 sqlite3_close 關(guān)閉數(shù)據(jù)庫之前可以正
 
常操作數(shù)據(jù)庫,不需要再執(zhí)行 sqlite3_key。
int sqlite3_rekey( sqlite3 *db, const void *pKey, int nKey),參數(shù)同上。
 
清空密鑰為 sqlite3_rekey( db, NULL, 0)。
--------------------------------------------------------------------
No.3系列
 
簡單分析了下助考之星的加密算法,寫了所有系列產(chǎn)品注冊機(jī),如下
代碼:
00C0621C    55              push ebp                                 ; OEP
00C0621D    8BEC            mov ebp,esp
00C0621F    83C4 E0         add esp,-0x20
00C06222    53              push ebx
00C06223    56              push esi                                 ; 0002-06A7-0FEB-FBFF-8098-2203[PT_N]11111111111111111111111
00C06224    57              push edi                                 ; 0xE進(jìn)棧;//EDI
00C06225    33DB            xor ebx,ebx                              ; EBX=0,CF=0;//自身xor運(yùn)算結(jié)果為0,CF=0
00C06227    895D E4         mov dword ptr ss:[ebp-0x1C],ebx          ; SS段 清空
00C0622A    895D E0         mov dword ptr ss:[ebp-0x20],ebx
 ........................//算法為MD5算法。不用貼出來看了。。。只是構(gòu)造一種格式 看下圖就知道了
點(diǎn)擊圖片以查看大圖

圖片名稱:	捕獲zkzx.jpg
查看次數(shù):	109
文件大小:	47.6 KB
文件 ID :	88600
而且,sqlite數(shù)據(jù)庫中竟然有一處保存著類似FTP賬號密碼的東東。。而且竟然連接上了=.= 軟件怎么能這么弱 這都在哪兒找的開發(fā)人員??
 
 
No.2系列:題無憂[C# .NET] Xenocode殼
 
C# .NET 我一直沒看過...而且加了個Xenocode殼搞得我更不懂了.. 換個思路 不調(diào)試了,有些做C#這種高級語言的都不懂得釋放,嘗試內(nèi)存搜索找出密碼
運(yùn)行程序后,拿出外掛注入器CE,插入題無憂.exe 盲目搜索一些關(guān)鍵字符串 比如 SQLite Format3 等這種解密后的頭。功夫不負(fù)有心人,在內(nèi)存里找到了DB密碼。
復(fù)制出System.Data.SQLite.DLL[c#]自己寫個C#語言的調(diào)用程序清空密鑰就OK了。
 
No.1系列:考試寶典[Delphi] Safengine Protector v2.1.9.0強(qiáng)殼
這個剛剛開始感覺無從下手,斷斷續(xù)續(xù)1星期搞定的。主要原因是1.強(qiáng)殼我不會脫,2.無sqlite3.dll調(diào)用 他自己將sqlite源碼寫在exe里面了!有了DB密碼也打不開的(⊙o⊙)…
我想了幾個方案:
1.找到sqlite3算法源碼 嘗試從算法解密[下載了份C源碼,看了幾眼立馬放棄了!全是一排排一列列的矩陣數(shù)字,這么成熟的東西我這無知的小菜妄想了....]
2.能不能遠(yuǎn)程插入調(diào)用?[沒嘗試 感覺不會]
3.內(nèi)存dump解密后的數(shù)據(jù)庫 [無知的小菜又妄想了。。]
4.修改sqlite3指令導(dǎo)出解密后的DB數(shù)據(jù)庫 [可惜..沒有這功能語句]
5.試遍所有sqlite3.dll [下載了幾十種sqlite3...]
6.是否存在open_rekey()函數(shù) [如果開發(fā)人員夠2,沒有移除的話。。我來構(gòu)造調(diào)用讓其自解密!]
OD載入后如下:
代碼:
00BA433B > $  E8 1D000000   call    00BA435D                         ;  (initial cpu selection); PUSH ASCII "Safengine Protector v2.1.9.0"
00BA4340   .  53 61 66 65 6>ascii   "Safengine P"
00BA434B   >  72 6F         jb      short 00BA43BC
00BA434D      74            db      74                               ;  CHAR 't'
00BA434E      65            db      65                               ;  CHAR 'e'
00BA434F      63            db      63                               ;  CHAR 'c'
00BA4350   .  74 6F 72 20 7>ascii   "tor v2.1.9.0",0
00BA435D   >  9C            pushfd
這么強(qiáng)的殼對于我這種小菜,脫殼是不太可能的 先換個思路 構(gòu)造個open_key異常
彈窗出錯嘍...各種被偷窺到了哈。。SQLiteTable3.pas[這個可百度谷歌到源碼!]
名稱:  err.jpg
查看次數(shù): 1
文件大小:  58.9 KB
點(diǎn)擊圖片以查看大圖

圖片名稱:	err2.jpg
查看次數(shù):	39
文件大小:	123.9 KB
文件 ID :	88595
名稱:  err3.jpg
查看次數(shù): 1
文件大小:  83.1 KB
 
動態(tài)調(diào)試SE殼里的程序,我是先跳轉(zhuǎn)到關(guān)鍵位置[解密前必經(jīng)過],然后點(diǎn)運(yùn)行,他會解出原反匯編代碼,手要快按下下斷。。
動態(tài)調(diào)試也要有個參考吧!不然這么下斷如同大海撈針。我在解出原反匯編代碼斷下來后,用PELOAD dump保存整個程序,拖到IDA和DEDE里面后可以分析一些東西了~!
點(diǎn)擊圖片以查看大圖

圖片名稱:	psbdede.jpg
查看次數(shù):	47
文件大小:	76.6 KB
文件 ID :	88606
 
下面要做的就是:通過sqlite3提供的C源碼 或者 SQLiteTable3.pas 結(jié)合IDA 定位open_rekey()函數(shù) //我做的時候并不清楚到底有沒有這接口,雖然有些無力但我沒放棄哈。
這是以前留下的筆記
代碼:
1.脫SE殼  ->修改DB數(shù)據(jù)庫 造成無法打開彈出錯誤 暴露軟件真實(shí)地址
 
2.過SE殼OD加載程序 下斷點(diǎn) 或者找到OEP下段 LoadPE -> Dump整個程序 
 
3.dede分析 + IDA分析 
 
4.利用IDA的ASCII碼與源碼定位sqlite3_open函數(shù)
sqlite3_open  = 0054094C
sqlite3_rekey = 00543A58
 
5.
00545EFE    8B55 08         mov edx,dword ptr ss:[ebp+0x8]           ; password
00545F01    8B45 FC         mov eax,dword ptr ss:[ebp-0x4]
00545F04    E8 77090000     call ExamBibl.00546880                   ; sqlite3_key(mydb, password, strlen(pwd))
00545F09    84C0            test al,al
00545F0B    74 09           je short ExamBibl.00545F16
---------------------------------------------------------------------
0054689F    A1 5CC67900     mov eax,dword ptr ds:[0x79C65C]
005468A4    8B00            mov eax,dword ptr ds:[eax]
005468A6    FFD0            call eax                                 ; ExamBibl.00543A3C       ------|
005468A8    83C4 0C         add esp,0xC                              ; 用密碼打開成功 平衡堆棧       |
005468AB    85C0            test eax,eax                             ; 利用key構(gòu)造rekey自解密--------|----用密碼打開后,平衡堆棧完畢 再跳回去構(gòu)造解密 //jmp 00543A3C
005468AD    0F94C0          sete al                                                                  |
005468B0    84C0            test al,al                                                               |
---------------------------------------------------------------------                                |
00543A3C    55              push ebp                                 ; 真sqlite3_key函數(shù)    <<<-------
00543A3D    8BEC            mov ebp,esp
00543A3F    8B45 10         mov eax,dword ptr ss:[ebp+0x10]          ; strlen(password) // 改0 實(shí)現(xiàn)無密碼
00543A42    50              push eax
00543A43    8B55 0C         mov edx,dword ptr ss:[ebp+0xC]           ; password  // 改0 實(shí)現(xiàn)無密碼
00543A46    52              push edx
00543A47    6A 00           push 0x0
00543A49    8B4D 08         mov ecx,dword ptr ss:[ebp+0x8]           ; *mydb   =   02AC20A8   /* Database to be rekeyed */
00543A4C    51              push ecx
00543A4D    E8 76FEFFFF     call ExamBibl.005438C8                   ; 執(zhí)行sqlite3_key()  //call sqlite3_rekey()   call 00543A58
00543A52    83C4 10         add esp,0x10                             ; 自解密完畢!!
00543A55    5D              pop ebp
00543A56    C3              retn
 
//自動腳本
005468AD    0F94C0          sete al //執(zhí)行到此處修改一下代碼實(shí)現(xiàn)自解密
 
-----------
005468AD    50              push eax  //push strlen(pwd) = 0
005468AE    52              push edx  //push password = 0
005468AF    6A 00           push 0x0
005468B1    51              push ecx  //push mydb
005468B2    E8 A1D1FFFF     call ExamBibl.00543A58 //call sqlite3_rekey()自解密
005468B7    90              nop
005468B8    90              nop
005468B9    90              nop

 
點(diǎn)擊圖片以查看大圖

圖片名稱:	psddb.jpg
查看次數(shù):	72
文件大小:	91.0 KB
文件 ID :	88607
點(diǎn)擊圖片以查看大圖

圖片名稱:	ksbd1.jpg
查看次數(shù):	10
文件大小:	532.2 KB
文件 ID :	88598
上圖解密前,下圖解密后
點(diǎn)擊圖片以查看大圖

圖片名稱:	ksbd2.jpg
查看次數(shù):	8
文件大小:	540.9 KB
文件 ID :	88599
當(dāng)解密出來的那一刻。。我happy的跳了起來=.=!沒想到就這么搞了一件自己完不成的事情。靈感很關(guān)鍵..
 
================================================================================================
[SIZE=3]自己寫考試系列軟件
用VS2010寫的 也學(xué)著考試寶典自封sqlite3 但是我知道要移除open_rekey() =.= .
界面用的開源的炫彩庫XCGUI,我也自封到exe里了。。
自己練習(xí)做做開發(fā)哈。。沒什么技術(shù)含量了就 設(shè)計(jì)界面 布局 PS 調(diào)用下sql語句。。
show 下程序..
點(diǎn)擊圖片以查看大圖

圖片名稱:	圖片1.png
查看次數(shù):	23
文件大小:	255.8 KB
文件 ID :	88601
點(diǎn)擊圖片以查看大圖

圖片名稱:	圖片2.png
查看次數(shù):	17
文件大小:	141.8 KB
文件 ID :	88602
點(diǎn)擊圖片以查看大圖

圖片名稱:	圖片3.png
查看次數(shù):	5
文件大小:	347.4 KB
文件 ID :	88603
點(diǎn)擊圖片以查看大圖

圖片名稱:	圖片4.png
查看次數(shù):	7
文件大小:	167.0 KB
文件 ID :	88604
點(diǎn)擊圖片以查看大圖

圖片名稱:	圖片5.png
查看次數(shù):	19
文件大小:	32.6 KB
文件 ID :	88605
 
最后,用apktools逆向下考試寶典android手機(jī)版本發(fā)現(xiàn)了內(nèi)部調(diào)用接口測試平臺,還有個接口 每天注冊多少人都能看到。。個人信息 機(jī)器碼 聯(lián)系方式
http://t.api./
點(diǎn)擊圖片以查看大圖

圖片名稱:	cg.jpg
查看次數(shù):	54
文件大小:	60.2 KB
文件 ID :	88597
 
不要抱怨自己運(yùn)氣不好,機(jī)會不多,機(jī)會、運(yùn)氣是自己創(chuàng)造的!
-------------------------------------------------------------------------------------------------


構(gòu)造自解密部分確實(shí)不容易操作 放一下曾經(jīng)的操作記錄錄像。。。曾經(jīng)有個看雪C+大俠想花萬元買數(shù)據(jù)哈。。估計(jì)你也會看到這的....           
鏈接: http://pan.baidu.com/s/1o6mMmvg 密碼: pt28                    

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多