反编译exe软件_【娱乐向】exe逆向工程(破译《游戏开发课》老师的成绩程序)...
生活随笔
收集整理的這篇文章主要介紹了
反编译exe软件_【娱乐向】exe逆向工程(破译《游戏开发课》老师的成绩程序)...
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第一幕
- 我們的游戲老師有一個(gè)自己的網(wǎng)站,他很喜歡在他網(wǎng)站上發(fā)布各種各樣的消息,也包括我們的成績(jī)。
- 我們第一次小測(cè)的成績(jī)他就放了一個(gè)鏈接,鏈接里面是個(gè)exe文件,只要你輸入了你的學(xué)號(hào),就可以查到你的成績(jī)。
- 但是由于大家是知道互相的學(xué)號(hào)的,所以互相就能查到各自的成績(jī),所以引起了不滿。
第二幕
- 于是老師就發(fā)送了一個(gè)Passcode,讓我們使用Passcode來(lái)查詢(xún)成績(jī)。
- 這個(gè)passcode長(zhǎng)成這樣
- 總共是8位數(shù),全部都是數(shù)字。
- 我上看下看,都看不出這串?dāng)?shù)字和學(xué)號(hào)之間的關(guān)系。
第三幕
- 期中考的時(shí)候,老師就通過(guò)這個(gè)exe文件,讓我們查詢(xún)了我們的成績(jī)。
- 當(dāng)時(shí)我是相當(dāng)好奇
- 到底其他同學(xué)分?jǐn)?shù)咋樣?
- 這個(gè)passcode和學(xué)號(hào)的關(guān)系是怎么樣?
- 由于太忙了,我沒(méi)有去深入調(diào)查。
期末
- 然而期末的時(shí)候,老師發(fā)了個(gè)小組作業(yè)成績(jī)和期末成績(jī)的成績(jī)單。
- 小組作業(yè)查出來(lái)是這個(gè)
- 期末成績(jī)是這個(gè)
- 這逗我玩呢????
- 于是我下定決心,得把它這exe拆了才行。
嘗試
- 我去網(wǎng)上搜了幾個(gè)軟件,lpspy,dnspy,Resource Hacker,全部以失敗告終。
- 他們都只能處理C#相關(guān)的包文件。
查找
- 很重要的關(guān)鍵詞在于逆向工程(reverse engineering) ,一旦知道了這個(gè)詞之后,你再去搜索結(jié)果,出來(lái)的工具會(huì)靠譜很多。
- 在查閱了大量資料只好,我發(fā)現(xiàn)IDA-pro可以將exe文件轉(zhuǎn)為匯編語(yǔ)言。
IDA-pro
- 安裝好IDA-pro之后,我馬上開(kāi)始處理老師的文件。【教育用途】
- 因?yàn)檫@里是主流處理器和執(zhí)行配置,所以默認(rèn)選項(xiàng)即可。
- 等待處理結(jié)束后,出現(xiàn)了這樣的界面。
- 左邊是函數(shù)名稱(chēng),右邊則是大段的匯編代碼。
- 這里是一些關(guān)于函數(shù)窗口的解釋,來(lái)自于IDA的幫助文檔,但是對(duì)于理解這些代碼的幫助并不大。
直接觀察
結(jié)論1: 黑體的函數(shù)更重要
- 原因:我猜黑體的是執(zhí)行了的函數(shù),因?yàn)閙ain也在里面。
結(jié)論2:老師沒(méi)有自己寫(xiě)函數(shù)(除了main)
- 原因: 這一點(diǎn)其實(shí)讓我非常的意外。我原來(lái)的推測(cè)是老師是用了什么辦法,通過(guò)我們的學(xué)號(hào)生成了passcode,然后再進(jìn)行輸入輸出的操作。這理應(yīng)需要一個(gè)函數(shù),但是在IDA顯示的函數(shù)表中,并沒(méi)有任何像是人寫(xiě)的函數(shù)名。
- 當(dāng)然,這也有可能是IDA本身就不會(huì)正確顯示函數(shù)名稱(chēng)。
著手研究main函數(shù)
線索1:輸出
- 即使是匯編語(yǔ)言,輸出也會(huì)是可以辨別的,我很快的在main函數(shù)里找到了很多個(gè)輸出的地方。
- 這里感覺(jué)他應(yīng)該是采用了一些變量來(lái)存儲(chǔ)這些字符串語(yǔ)句,但是具體我也不是太懂,我想看的主要是有關(guān)成績(jī)和的部分。
線索2:大量定義變量和賦值
- 在main的一開(kāi)頭,有著一處顯然在大量定義變量。
- 那可以推測(cè),在某處肯定進(jìn)行了賦值和給分。
- 我認(rèn)為顯然是一下這處。
- 我看到這里都是16進(jìn)制數(shù),我覺(jué)得可以將我的passcode轉(zhuǎn)成16進(jìn)制,再進(jìn)行比對(duì),來(lái)確認(rèn)這些是不是對(duì)應(yīng)的passcode和分?jǐn)?shù)。
- 下面這是我的轉(zhuǎn)換結(jié)果
- 額,一下就對(duì)上了,下面的分?jǐn)?shù)也是對(duì)上的。
結(jié)論:
彩蛋
2. 老師的FinalExam_Mark里面沒(méi)有任何一個(gè)同學(xué)的真實(shí)成績(jī)。
小總結(jié)
- IDA pro是一個(gè)非常強(qiáng)大的反編譯軟件,它對(duì)于電腦病毒,惡意代碼,匯編,指令集等領(lǐng)域的研究有很大幫助。
- 我這里只看了看main函數(shù),事實(shí)上函數(shù)窗口中有非常多系統(tǒng)預(yù)定義的函數(shù),如果能把這些函數(shù)吃透,我們就基本可以理解編譯運(yùn)行一個(gè)程序的時(shí)候,計(jì)算及內(nèi)部究竟發(fā)生了什么。這可以很大程度的幫助我們理解程序語(yǔ)言,編譯器,還有和計(jì)算機(jī)組成原理相關(guān)的知識(shí)。
聲明
- 以上所謂的結(jié)論的其實(shí)都是我的推測(cè),也許是錯(cuò)的也說(shuō)不定。
- 這篇博文主要是滿足大家的好奇心,僅供娛樂(lè)。如有冒犯,敬請(qǐng)?jiān)彙?/li>
- 新年快樂(lè),身體健康。
總結(jié)
以上是生活随笔為你收集整理的反编译exe软件_【娱乐向】exe逆向工程(破译《游戏开发课》老师的成绩程序)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: win8系统硬盘怎么修复工具怎么用 wi
- 下一篇: 我军的激光演习系统太落后