最資訊丨Crackme逆向分析365例-001
來源: 嗶哩嗶哩 2023-05-15 06:01:07
【Crackme逆向分析365例-001】
(資料圖)
表哥是神,誤落凡塵
說明:本篇練習(xí)是表哥逆向分析365系列的第1例,所使用的CrackMe本體來自于網(wǎng)站:https://crackmes.one/,您可在此網(wǎng)站通過作者名或本體名查詢下載,也可從本貼中提供的網(wǎng)盤地址下載,其CrackMe本體信息如下所示:
?? 本體名稱:[EASY] CrackMe
?? 本體作者:endofmarconia
?? 上傳日期:2023-05-03
?? 適用平臺:Windows
?? 難度【1-6】:1.2
?? 描述:本CrackMe專門為初學(xué)者制作,請破解用戶名和密碼以便訪問程序。
1、本次練習(xí)所需軟件及下載地址:
?? 十六進(jìn)制編輯器:HxD64,版本:2.5.0.0,下載地址:https://www.123pan.com/s/egPeVv-vrLQ3.html
?? PE文件信息觀察器:ExeinfoPE,版本:0.0.7.7,下載地址:https://www.123pan.com/s/egPeVv-drLQ3.html
?? 動態(tài)調(diào)試器:x32dbg/x64dbg,版本:2023-04-30,下載地址:https://www.123pan.com/s/egPeVv-TrLQ3.html
?? CrackMe本體及附件,版本:2023-05-03,下載地址:https://www.123pan.com/s/egPeVv-S8LQ3.html
2、逆向分析之前的準(zhǔn)備工作:
2.1、將下載的CrackMe本體解壓到某個空白的逆向分析文件夾下(最好是全英文路徑),并確保能夠正常運(yùn)行(云盤下載已經(jīng)附帶了4個缺失的運(yùn)行庫,若在您的電腦上還是不能運(yùn)行,請根據(jù)提示的庫名在:https://cn.dll-files.com網(wǎng)站查詢下載并保存到與CrackMe本體相同文件夾內(nèi))。
2.2、復(fù)制CrackMe本體文件[EASY] CrackMe.exe并重新命名為CM001.exe,保證原始CrackMe本體文件的備份,逆向分析時僅針對CM001.exe。
2.3、啟動ExeinfoPE.exe,加載CM001.exe,根據(jù)ExeinfoPE的分析數(shù)據(jù),手動列出文件信息如下:
?? 文件名稱:CM001.exe
?? 殼:無殼(不需要脫殼,可直接進(jìn)行分析)
?? 位數(shù):64位程序(需要使用x64dbg調(diào)試器進(jìn)行分析)
?? 編譯器:Microsoft Visual C++ 2022
?? 子系統(tǒng):控制臺程序
?? 映像基地址:0x140000000
?? 重定位段:有(需要修改文件屬性標(biāo)志字段,使其運(yùn)行時不再重定位)
2.4、啟動HxD64.exe,加載CM001.exe,修改文件屬性標(biāo)志字段(從PE頭偏移22個字節(jié)),將其值從0x22修改為0x23并保存文件,如圖所示:
這樣的話,映像基地址將固定在0x140000000,方便本次練習(xí)場景重現(xiàn)。
2.5、運(yùn)行CM001.exe文件,隨便輸入用戶名和密碼后,程序出錯了(錯誤信息為:Wrong username or password.),如下圖所示:
3、針對CM001.exe文件進(jìn)行爆破
3.1、思路:由于出現(xiàn)了錯誤信息,我們有理由相信,程序?qū)斎氲臄?shù)據(jù)進(jìn)行了某種計算,并且對計算結(jié)果進(jìn)行了驗證判斷,以此決定顯示正確或錯誤信息。利用此思路,以當(dāng)前出錯信息加載指令為基點,通過向上或向下來查找到正確的條件轉(zhuǎn)移指令,然后修改這條指令,使其忽略驗證結(jié)果,直接顯示正確信息。
3.2、啟動x64dbg.exe,在菜單中打開【選項】窗口,在【事件】選項中僅選擇【入口斷點】(若已經(jīng)配置好了,可省略此步驟)。
3.3、根據(jù)經(jīng)驗,出錯信息很可能以字符串的形式存儲在常量數(shù)據(jù)段中,我們需要在代碼段中定位出加載出錯信息字符串的指令地址。現(xiàn)在點擊【打開文件】按鈕,加載CM001.exe文件,此時RIP指向了程序入口點地址:0x1400114EC,點擊【搜索字符串】按鈕,在【引用】頁面底部的搜索框中輸入:wrong username or password進(jìn)行過濾后,共找到1處指令地址:0x140018795。鼠標(biāo)左鍵雙擊地址,轉(zhuǎn)到【CPU】頁面的相關(guān)位置,以此條指令為基點(lea rdx,[140023908]),向上查找最近的條件轉(zhuǎn)移指令,其指令地址為:0x140018793(在本例中,其與基點緊挨著),如圖所示:
3.4、既然基點地址(0x140018795)是顯示錯誤信息的指令分支,那么可以推測,紅線盡頭所指的地址(0x1400187DC)就是顯示正確信息的指令分支了,我們只要修改地址(0x140018793)處的指令,使其忽略條件判斷,直接轉(zhuǎn)移到地址(0x1400187DC)處,就可以完成本次的爆破過程。
3.5、鼠標(biāo)左鍵單擊地址(0x140018793),按空格鍵彈出匯編窗口,將je修改為jmp,其余信息保持不變,然后按【確定】按鈕使修改生效,如圖所示:
點擊【補(bǔ)丁】按鈕或Ctrl+P打開補(bǔ)丁窗口,點擊【修補(bǔ)文件】按鈕將修改另存為:CM001-已爆破.exe文件,如圖所示:
3.6、退出所有程序,運(yùn)行CM001-已爆破.exe文件,看看爆破效果如何,如圖所示:
效果很明顯,同樣的輸入數(shù)據(jù),不同的輸出結(jié)果,說明爆破成功。
4、針對CM001.exe文件進(jìn)行追碼
4.1、思路:在上面的爆破過程中,我們已經(jīng)定位出了顯示成功信息的指令分支地址:0x1400187DC,所以我們可以從此地址進(jìn)行反推,看看有哪些轉(zhuǎn)移指令與此相關(guān),從而推斷出關(guān)鍵call,然后對這些關(guān)鍵call進(jìn)行詳細(xì)分析,理解其針對輸入數(shù)據(jù)的計算邏輯以便追碼。
4.2、啟動x64dbg.exe,點擊【打開文件】按鈕,加載CM001.exe文件,此時RIP指向了程序入口點地址:0x1400114EC,按Ctrl+G打開地址轉(zhuǎn)移窗口,輸入:0x1400187DC,如圖所示:
然后按【確定】按鈕,這時可通過左側(cè)紅線觀察到指令來源路線有2條,在源頭附件還發(fā)現(xiàn)了2個call指令(地址分別為:0x140018789和0x140018772),這2個指令就是關(guān)鍵call了,分別在這2個地址上按F2鍵下執(zhí)行斷點,如圖所示:
4.3、按F9鍵運(yùn)行程序,然后在程序控制臺界面上輸入用戶名(SMKB)和密碼(123456789),回到調(diào)試器界面,這時已經(jīng)中斷在第1個關(guān)鍵call上,我們先看一下函數(shù)的參數(shù)是什么(64位程序規(guī)則,前4個參數(shù)通過rcx、rdx、r8、r9傳遞,多于4個的參數(shù)通過堆棧傳遞),鼠標(biāo)右鍵點擊寄存器(rcx和rdx),選擇【在內(nèi)存窗口中轉(zhuǎn)到】(內(nèi)存1和內(nèi)存2),通過觀察內(nèi)存窗口發(fā)現(xiàn),rcx指向我們輸入的用戶名SMKB,rdx指向字符串kanyefan,(注意:其實真實指向的是某個結(jié)構(gòu)指針,但也無所謂了,因為結(jié)構(gòu)中包含了我們需要關(guān)注的字符串,能理解就行),據(jù)此推測,kanyefan可能是超級用戶,不需要判斷密碼。
4.4、按F9鍵繼續(xù)運(yùn)行,中斷在第2個關(guān)鍵call上,使用同樣的操作方法觀察內(nèi)存窗口發(fā)現(xiàn),rcx指向我們輸入的密碼123456789,而rdx這次指向了堆中的一個地址:0x4376E0,再次在內(nèi)存窗口中轉(zhuǎn)到這個堆地址,發(fā)現(xiàn)字符串kanyewestlover911,我們據(jù)此大膽推測,這是一個超級密碼。
4.5、到此為止,已經(jīng)不需要具體分析匯編代碼了,可以確定:如果輸入的用戶名是kanyefan,那么密碼可以隨便了,否則,輸入的密碼必須是kanyewestlover911,在這種情況下就不會出現(xiàn)錯誤信息了,我們試一試吧,如圖所示:
果然如此,看來作者是kanye west(坎耶-維斯特)的腦殘粉啊。
PS:本貼到此結(jié)束,若轉(zhuǎn)載請保留全部信息,期待我們在下一貼再見。
標(biāo)簽:
猜你喜歡
最資訊丨Crackme逆向分析365例-001
2023-05-15 06:01:07
多家銀行今起正式調(diào)整兩類存款利率 有銀行下調(diào)幅度達(dá)55個基點
2023-05-15 06:02:14
期后事項聲明書_期后事項 天天熱文
2023-05-15 05:42:24
世界實時:巴特勒自曝巨星待遇!萊利請他穿23號:熱火曾為喬丹退役該號碼
2023-05-15 05:27:15
記者:曼城給京多安的續(xù)約合同是一年,他被巴薩的兩年合同吸引 環(huán)球百事通
2023-05-15 03:59:39
即時:有含義的男孩名字帶木字_有含義的男孩名字
2023-05-15 04:04:26
一體化壓鑄板塊開盤活躍 嶸泰股份漲超8%
2023-05-15 02:56:32
八哥影視解說_八哥影視
2023-05-15 02:39:41
26個字母順序表?_26個字母順序表
2023-05-15 01:41:01
全球快看:船從海中流入河流浮力是否變化_船從河里開到海里浮力變化如何
2023-05-15 01:50:20
李秘:大陸對臺政策外剛內(nèi)柔有善意
2023-05-15 00:57:53
室內(nèi)游樂場英文_游樂場英文 全球今日訊
2023-05-15 00:41:16
環(huán)球快訊:北京地鐵20號線線路圖_北京地鐵20號線
2023-05-14 23:06:19
全球滾動:鄭州到??跈C(jī)票價格表查詢_鄭州到??跈C(jī)票價格
2023-05-14 22:54:58
如何吃魷魚_送老年人禮物排行榜
2023-05-14 22:23:07
今日產(chǎn)品合格證有什么要求(產(chǎn)品合格證 必須要包含什么內(nèi)容請?zhí)峁┫嚓P(guān)規(guī)定的出處)
2023-05-14 22:17:48
vivo X90S預(yù)計將配備3.35 GHz CPU和Wi-Fi 7支持_今日聚焦
2023-05-14 21:32:10
電視機(jī)頂盒密碼是多少(電視機(jī)頂盒密碼是多少移動) 環(huán)球聚焦
2023-05-14 21:38:47
明朝時候,有人自稱目睹過雷神,并記錄下雷神的長相
2023-05-14 21:05:39
飛越鐵窗的母愛,因阻隔更顯珍貴
2023-05-14 20:53:26
環(huán)球今日訊!2023健康中國發(fā)展大會·貴州疾控展區(qū)圓滿閉幕
2023-05-14 20:05:17
因在非公開發(fā)行股票及持續(xù)督導(dǎo)中未勤勉盡責(zé) 東北證券遭監(jiān)管罰款566.04萬元
2023-05-14 20:09:00
天天即時看!國家統(tǒng)計局:5月上旬8種產(chǎn)品價格上漲,42種產(chǎn)品價格下降
2023-05-14 19:58:44
環(huán)球通訊!新筑股份將于5月18日解禁1.22億股
2023-05-14 19:45:52
天堂2游戲官網(wǎng)_天堂2私服發(fā)布
2023-05-14 18:52:44