逆向分析——破解一個CrackMe

點贊後看,養成習慣
喜歡的話 可以點個關注喲
你們的點贊支持對博主們來說很重要哦 !!!

爲方便您的閱讀,可點擊下方藍色字體,進行跳轉↓↓↓


在這裏插入圖片描述

00 前情提要

該CrackMe是我本學期,計算機病毒老師給出的實驗題,通過學習看雪論壇技術教程帖子以及請教大牛同學,收穫了一些關於逆向分析的要點。現將分析筆記列出。


01 題目描述

CrackMe,即破解我的意思,鼠標右鍵點擊屬性查看詳細信息,初步判斷該可執行文件是一個用來練習破解的軟件。

在這裏插入圖片描述


雙擊打開CrackMe,軟件顯示如下圖所示:

在這裏插入圖片描述



02 破解步驟

1、根據難度提示信息,發現可以採用暴力破解破解該密碼,沿着這個思路走,先嚐試常用的弱口令進行登錄。

在這裏插入圖片描述
在這裏插入圖片描述

多次嘗試無效後,嘗試其他思路。


2、既然弱密碼嘗試無效,那我們嘗試crack它。逆向分析的時候,我們首先查看該軟件是否加殼,在這裏我們使用從吾愛破解論壇上下載的查殼利器——Exeinfo PE。

在這裏插入圖片描述

打開查殼軟件,軟件頁面顯示如下:

在這裏插入圖片描述


將CrackMe文件載入Exeinfo PE中,得到如下信息
在這裏插入圖片描述

分析查殼結果可知,該CrackMe沒有加殼,編寫語言是Microsoft Visual C++ 9.0 - Visual Studio 2008 (E8)


3、根據上述所得信息:因爲軟件沒有加殼,自然我們就不用對軟件進行脫殼處理。所以我們直接使用OD對CrackMe進行分析。 打開OD軟件初始化界面如下:

在這裏插入圖片描述


載入CrackMe文件信息後,軟件顯示如下圖所示

在這裏插入圖片描述


接下來,我們關注左上角這個大框框,它的名字叫反彙編窗口,意思就是這個程序已經被反彙編了,代碼都在這裏。

在這裏插入圖片描述


緊接着我們進行,斷點調試

在這裏插入圖片描述


然後在反彙編窗口右鍵查找,選擇查詢文本、字符串內容

在這裏插入圖片描述
查找結果如下
在這裏插入圖片描述


紅色字條上一條雙擊,然後就回到了反彙編窗口,並且光標停留在了一條語句上,鼠標滾輪向上滾幾行,然後,就看到了,CrackMe的相關代碼。

在這裏插入圖片描述


觀察相應代碼,試圖瞭解程序執行流,並經過彙編方式重新定義判斷條件,使得無論輸入密碼爲真還是爲假,條件判斷爲永真式。

在這裏插入圖片描述


嘗試多次無效後,請教同學,發現是自己的文本信息找錯位置了,我們可以通過插件萬能API斷點定位來找到相對應的位置(以下截圖來自大牛同學)

在這裏插入圖片描述

單步步過查看堆棧信息

在這裏插入圖片描述


溯源堆棧信息 找不到 定位不到父程序 關鍵斷點
對話框斷點-MessageBoxA:
OD 執行bpx MessageBoxA命令設置斷點
觀察堆棧返回的信息

在這裏插入圖片描述

對話框MessageBoxA函數返回的參數爲

在這裏插入圖片描述
Retn返回後到這個位置

在這裏插入圖片描述
然後,將JNZ改成JE,也就是置反,但是這樣改的話等到你輸入了正確的驗證碼卻會出現錯誤的提示,輸入錯誤的驗證碼就提示正確

在這裏插入圖片描述
保存保存修改後的文件
在這裏插入圖片描述

輸入任意密碼,提示密碼正確

在這裏插入圖片描述


以上文章,作爲自己的學習筆記,僅供參考

本文完,感謝你的閱讀!!!

最後,如果本文對你有所幫助,希望可以點個贊支持一下。你們的鼓勵將會是博主原創的動力。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章