1. 程式人生 > >利用x64_dbg破解一個最簡單的64位小程式

利用x64_dbg破解一個最簡單的64位小程式

        最近在研究學習一些逆向的東西,其實之前也涉及到這方面的東西,只是之前的系統和應用,基本上都是32位的,所以直接用od來分析就行了,這方面的資料在網上很多,隨便一搜到處都是,不過隨著技術的不斷髮展,64位系統出現了,隨之64位的應用也出現了,而od只能分析32位應用,所以一些64位應用,od是沒辦法分析逆向的,所以,在這裡要提到另一個可以用於分析64位應用的除錯軟體,名字叫x64_dbg。網上對於這款軟體的介紹很少,只是說能分析64位應用,具體用法也找不到,不過我找到了它的一個教程,裡面有一個最簡單的64位應用,但網上是用英文介紹的,對於一些英文不好的同學來說,看起來可能比較費力,我就大概說說我自己的一個分析過程,供大家學習!對了,先提醒一下哈,我現在還是在這方面的一個極度小白,說的不好或者不對的地方,請各位及時提出來哈!

       首先是這個最簡單的64位小程式,,首先開啟這個exe,,我們會發現,這是一個叫輸入密碼的小應用,當然了,我們肯定不知道這個密碼到底是多少,那麼好,我們就隨便輸入一個密碼123456試試,

當然了,這個密碼肯定不對,軟體也提示了,那我們怎麼辦呢?這個時候就需要用到文章開始的分析工具了,x64_dbg。我們先開啟這個


我們可以看到,這個工具,整體跟od極為相似,所以我相信,會用od的人,對於x64_dbg來說,肯定不是什麼問題。然後我們再用x64_dbg開啟simple.exe,當然了,開啟方法有兩種,一種是file裡面f3,開啟這個exe,也可以file裡面alt+a,附加exe程序,兩種方式對於這個應用來說,基本沒什麼區別,好了,我們先開啟這個exe,附加到這個x64_dbg中來,會得到如下介面


熟悉od的同學,肯定對這種介面相當熟悉了吧,具體的我也不多說了,下面看看如何破解這個exe,還記得剛才我們輸入了一個123456嗎?exe會彈出一個提示框,上面提示了一句話,“Authentication Failed.Invalid Password”,那好,就從這句話入手,在cpu介面,點選右鍵,選擇搜尋字串


搜尋這句話,就能得到以下的東西


那好,我們點選進去看看是什麼?


會od的朋友,看到這裡,應該就比較明白了,中間有一個jnz跳轉,然後再彈出的這句話,我們可以猜想一下,應該是密碼輸入不正確,就導致了這個跳轉,先來點簡單的,要如何不讓程式跳轉呢?最簡單的方法,現在是跳轉的0x59ea68,其實下一個地址是0x59ea5a,我們先把跳轉地址改成跳轉到下一行吧,首先,在0x59ea58這行按F2下一個斷點,然後在應用裡面輸入123456,看會不會在這裡斷下來


很好,斷下來了,我們再將地址改成如圖所示,點ok,再執行,很好,已經提示正確了


如果我們要儲存修改過的exe,如何儲存呢?上面有一個



另外儲存一個exe,這樣,你無論輸入什麼,都會提示正確了。目前破解算是完成了第一步。

然後我們再看看第二步,怎麼才能得到正確的密碼呢?其實這個才是我們破解一個應用比較關鍵的問題,有些應用,我們可能不會給它打補丁,只需要瞭解了他內部的東西,直接就可以破解了,我們再重新來看看跳轉前,有一句,lea rdx, qword ptr ds:[59EAF8],執行完後,再來跳轉的,看來這個應該是比較,那我們dump一個0x59EAF8的值,看看是什麼


看到這個,這麼長一段字元,程式設計的同學,應該都能猜到,這個應該是md5,那我們看看這個md5能不能解密呢?雖然說md5是不可逆的,但如果有字典,有些還是可以,那我們來試試,先拷出這段字串10db8e415b857a61e18ef5d4db8e4f38,上網解密試試


沒想到真的解開了,看來密碼可能是這個,我們來試試


果然,密碼真的是這個,到此,這個sample.exe的分析到此也結束了。

小結:這個exe本身是一個非常非常簡單的應用,所以分析也十分簡單,所以大家不要笑我哈,後面碰到的應用,肯定比這個複雜不止十倍以上,所以大家在分析的時候,要根據應用本身的情況來分析,我寫這個教程的目的,還有一個,因為x64_dbg網上能查到的資料確實不多,我寫了這個,希望以後有人用到這個分析軟體時,提供一點點思路!