第284章 江寒的操作

“CrackMe”是很多逆向論壇裡十分流行的玩法。

一些人爲了測試自己的軟件保護技術,就會製作一些CrackMe程序,讓別人來嘗試破解。

網上也經常會有一些CM(CrackMe)競賽。

根據設計者的意圖和加密技術水平,不同的CrackMe,破解難度天差地遠。

江寒點擊了一下下載鏈接,題目給出的CrackMe,很快就下載了下來。

然後,先將其運行了起來,觀察一下程序的外在表現。

這是個Windows PE文件,界面十分樸素,只提供了兩個輸入框。

一個用來輸入UserName(用戶名),另一個用來輸入SN(serial number,序列號),下面還有個【Login】按鈕,用來檢測UserName和SN是否匹配。

看完了這些內容,對程序的結構心裡有數之後,江寒就將窗口關掉了。

隨後,他就打開了著名的調試工具OllyICE,並在調試器中加載了這個CrackMe。

開始調試之前,先設置個斷點。

斷點是調試器的一種功能,可以讓程序中斷在需要的地方,以方便分析。

常用的斷點有INT3斷點、硬件斷點、內存斷點、消息斷點、條件斷點等。

例如LBUTTON_UP,就是很常用的消息斷點,功能是當鼠標左鍵擡起時,中斷程序運行。

又如GetDlgItemText斷點,當程序試圖調用Windows的對應API,獲取輸入框裡的文本內容時,就會被攔下。

江寒先試着設置了GetDlgItemText和GetDlgItemTextA斷點,然後按了下F9,讓程序跑了起來。

CrackMe的窗口出現後,先隨便輸入一組UserName和SN,然後用鼠標點擊了一下【Login】按鈕。

結果……

程序直接彈出了一個MsgBOX(消息框),提示【用戶名和序列號不匹配】。

很遺憾,在這次嘗試中,斷點並沒有發揮作用。

這說明在這個CrackMe裡,並沒有使用GetDlgItemText或者GetDlgItemTextA來讀取字符串。

否則的話,就會被調試器攔截下來,而不會執行關鍵Call了。

所謂關鍵Call,是指程序中用來計算用戶名和序列號的函數,通常執行完關鍵Call,很快就能找到一個條件跳轉語句。

如果序列號與用戶名匹配,就會繼續往下執行,否則就彈出出錯提示……

接下來,江寒又試了一下LBUTTON_UP斷點。

這次終於成功斷了下來。

接下來就很簡單了,交替使用F7(步入)、F8(步過)兩個快捷鍵,單步跟蹤即可。

這個程序是那種很老實的程序。

意思就是沒有什麼亂七八糟迷惑人的東西,也沒有刻意增加難度,爲難挑戰者。

以江寒的調試功力,跟蹤這麼老實的程序,自然是易如反掌。

他只花了3分鐘,就找到了關鍵Call。

隨後,將這個Call語句,設爲斷點,然後Ctrl+F2,重新運行。

再次填寫序列號、用戶名,點【Login】……

很快,程序中斷在了關鍵Call上。

江寒按了一下F7,進入了函數體內部,這樣就看到了一段以Ret結尾的反彙編代碼。

這段代碼的功能,就是根據UserName計算SN(序列號)。

到了這裡,就比較考驗基本功了,必須讀懂反彙編指令。

當然,這對於訓練有素的人來說,也是So easy的一件事。

江寒花了十分鐘,將算法分析了出來。

看得出來,設計者的確沒有故意難爲人,算法設計得十分簡明。

首先,把UserName進行BASE64變換,然後對新串中的字符,做ASCII碼值累加操作,再經過一番算不上十分複雜的數學運算後,就得到了一個新的字符串。

此字符串就是與UserName對應的SN,其允許包含大小寫字母和數字,以及一些特殊字符,算法保證其與UserName對應的唯一性……

這道題可以說是白給,只要稍微懂點逆向調試,基本功別太差,一般都能輕鬆搞定。

江寒估計,官方第一關弄得這麼簡單,可能只是打算過濾一下參賽者,將那些沒事兒來湊熱鬧的人排除掉。

接下來是第二題。

仍然是CrackMe,但和第一題比起來,難度就突然提高了十倍不止。

什麼花指令、虛擬機、靜態反彙編、動態反調試……

凡是當前流行的保護手段,幾乎一應俱全。

而其核心算法,更是動用了SHA1和Md5。

也就是主辦方還算有點良心,沒用出RSA2048這種大殺器,否則大家比的就不是逆向水平,而是計算機的性能了……

江寒足足用了二十分鐘,才計算出了正確的SN,通過了這一關。

隨後,他就一道題、一道題,連續挑戰了下去。

越往後,題目的難度越高,花費的時間自然也會稍微長一些。

不光只有CrackMe,還有一些別的玩法,比如破解個虛擬賬號系統的密碼之類的。

最有趣的是第5題。

目標數據在內存中構成了一個虛擬魔方,並根據UserName隨機打亂。

要求構建一個字符串,用此字符串的二進制序列,作爲操作指令,讓這個魔方復原。

令人髮指的是,這個魔方不但高達11階,還有隨機生成的“塊壞”!

壞塊的意思是,你看不到它的“顏色”,但如果不能放在正確的位置,就不能通過最後的檢測……

江寒還得額外寫個魔方通解程序,將這個虛擬魔方轉放進去,用窮舉法求解出復原過程,然後才能根據要求,構造出對應的字符串……

就這樣,直到下午3點,江寒才終於解決掉了前6道題,來到了最終關門前。

獎金也順利地到手了1.5萬美元。

爲什麼是1.5萬?

第四題做完之後,江寒才發現,原來那道題的獎金,只有前1000位破解者,才能認領……

好在後面的題目越來越難,過關的人也越來越少,纔沒被其他人把獎金全都搶走。

最終關。

江寒滿懷期待地點了進去。

題目是一個單片機ROM,要求破解其加密機制,去掉防複製模塊,並提交Dump出來的無加密ROM。

江寒按照要求,下載了目標ROM。

然後祭出調試工具,加載進來一看……

江寒頓時就傻眼了。

我了個去,這不就是自己的壞蘋果嗎?

KAGGLE也算世界知名平臺了,居然用壞蘋果作爲壓軸。

怪不得獎金那麼高呢,主辦方沒準根本就沒打算掏這筆錢。

不過,千不該、萬不該,你們不該一聲不吭地,就用了咱的壞蘋果。

更不應該的,居然還邀請了我這個“發明人”,參加了這次的錦標賽!

江寒偷笑了兩聲,然後果斷從硬盤中,翻出了一個文件,上傳到了答題區。

不是別的,正是壞蘋果的原始ROM文件!

這是他能想到的,最簡單的拿到500萬的方法。

想到KAGGLE裡負責這個比賽的人,看到了這個文件之後,種種可能的精彩表情……

江寒忍不住嘿嘿一笑。

接下來,就要看KAGGLE官方,到底舍不捨得那500萬了……

感覺已經有點餓了,江寒他就關掉了電腦。

打算先去做個飯,解決一下溫飽問題,然後,又飽又暖的時候……

然而,江寒剛走到廚房門口,就忽然頓住了身形。

有點不對!

今天又是在“HackMe”裡闖關,又是玩CrackMe,大腦持續高強度運轉了整整一天。

可是,居然一點疲倦的感覺都沒有?!

按照以往的經驗,像是這種用腦強度,不吃個十條、八條冰島紅極參,只怕很長時間都緩不過來。

然而,今天的狀態卻好得有點出奇。

這到底是怎麼回事?

難道……小媳婦不但能幫咱充靈感,還能給咱的大腦充能?

這有點不太科學吧?

類似那種喜聞樂見的活動,不增加能量消耗就不錯了……

江寒思索了一下,忽然心中一動,連忙打開了系統UI。

看着龍飛鳳舞的【學者】二字,以及緊隨其後的一串小星星,如同呼吸燈一般,一閃一閃……

江寒不禁若有所悟。

第187章 牀下的小畫冊第279章 一舉成名天下知第414章 蚊子再小也是肉第108章 情趣第78章 土豆和男朋友第359章 大佬,怪蜀黍?第160章 只能看到文章本身第323章 麻雀還是蚊子?第176章 現學現賣第395章 柳東斌和秦易第217章 超級粉絲第9章 實名震驚第323章 麻雀還是蚊子?第215章 儀表堂堂,器宇軒昂第334章 比鬧鐘更早第233章 誤差反向傳播算法第166章 意外的變化第14章 別帶壞了江寒第256章 擴展歐幾里得算法,以及增強線段樹第73章 臭屁不過金少樓第407章 科幻片,恐怖片?第390章 兩份DNA檢測報告單第276章 丟1分和拿滿分,哪個更難?第48章 《如果時間能倒退》第120章 《數字混淆加密(簡易版)》第129章 兩道試題第83章 髮卡第74章 88年的草莓第266章 篩選模型,以及最後的優勝者第21章 《琵琶行》公開第251章 特效藥第136章 打造算術邏輯單元第50章 可能整大發了第203章 誰支持、誰反對?第184章 眼神這麼好使的嗎?第418章 阿法狗不出,誰與爭鋒?第9章 實名震驚第323章 麻雀還是蚊子?第32章 借MacBook一用第332章 大功告成,樂不思蜀第156章 你高興的太早了第277章 學之力,9段!第396章 線性CCD掃描相機第222章 《Adaline網絡》和《最小均方濾波器(LMS)》第38章 賣歌第297章 Py大法威力無窮第81章 不是好人第317章 爲什麼偏偏是那串數字?第311章 系統安全特聘測試員第50章 可能整大發了第199章 大功告成第100章 談判第230章 萬物皆可“壞蘋果”第138章 避蚊胺,登山第368章 能幹的小秘書?第335章 不走尋常路第173章 磨刀不誤砍柴工第43章 寫字機器人第209章 校服就是最正式的裝扮第348章 只會下蛋,不會生寶寶第306章 就剩這麼幾個了第371章 莫非換了個女朋友?第101章 偷換概念第167章 提醒還是邀請?第81章 不是好人第299章 膽大妄爲,實力恐怖第212章 他和夏總到底什麼關係?第213章 橫生枝節第42章 P站阿婆主第408章 初入燕園第190章 現在的高中生啊……第238章 競爭對手?第164章 不會被下藥吧?第30章 立人設第387章 打印機和繪圖儀第122章 騙過多少女孩子?第8章 裝〇也要講基本法第359章 大佬,怪蜀黍?第75章 金少樓的警告第152章 你的承諾呢?第179章 馬爾可夫隨機場第158章 查崗?第26章 週一凡的震驚第331章 揹着媽媽偷吃第20章 寫論文第390章 兩份DNA檢測報告單第266章 篩選模型,以及最後的優勝者第349章 說錯了什麼?第250章 幸虧有雙保險第375章 沒有操作系統怎麼辦?第185章 是不是太敏感了?第209章 校服就是最正式的裝扮第427章 詭異的附加關卡第41章 要是不帥不酷呢?第373章 肉體永生,還是機械飛昇?第427章 詭異的附加關卡第26章 週一凡的震驚第79章 李東的Show time第105章 寶藏男孩
第187章 牀下的小畫冊第279章 一舉成名天下知第414章 蚊子再小也是肉第108章 情趣第78章 土豆和男朋友第359章 大佬,怪蜀黍?第160章 只能看到文章本身第323章 麻雀還是蚊子?第176章 現學現賣第395章 柳東斌和秦易第217章 超級粉絲第9章 實名震驚第323章 麻雀還是蚊子?第215章 儀表堂堂,器宇軒昂第334章 比鬧鐘更早第233章 誤差反向傳播算法第166章 意外的變化第14章 別帶壞了江寒第256章 擴展歐幾里得算法,以及增強線段樹第73章 臭屁不過金少樓第407章 科幻片,恐怖片?第390章 兩份DNA檢測報告單第276章 丟1分和拿滿分,哪個更難?第48章 《如果時間能倒退》第120章 《數字混淆加密(簡易版)》第129章 兩道試題第83章 髮卡第74章 88年的草莓第266章 篩選模型,以及最後的優勝者第21章 《琵琶行》公開第251章 特效藥第136章 打造算術邏輯單元第50章 可能整大發了第203章 誰支持、誰反對?第184章 眼神這麼好使的嗎?第418章 阿法狗不出,誰與爭鋒?第9章 實名震驚第323章 麻雀還是蚊子?第32章 借MacBook一用第332章 大功告成,樂不思蜀第156章 你高興的太早了第277章 學之力,9段!第396章 線性CCD掃描相機第222章 《Adaline網絡》和《最小均方濾波器(LMS)》第38章 賣歌第297章 Py大法威力無窮第81章 不是好人第317章 爲什麼偏偏是那串數字?第311章 系統安全特聘測試員第50章 可能整大發了第199章 大功告成第100章 談判第230章 萬物皆可“壞蘋果”第138章 避蚊胺,登山第368章 能幹的小秘書?第335章 不走尋常路第173章 磨刀不誤砍柴工第43章 寫字機器人第209章 校服就是最正式的裝扮第348章 只會下蛋,不會生寶寶第306章 就剩這麼幾個了第371章 莫非換了個女朋友?第101章 偷換概念第167章 提醒還是邀請?第81章 不是好人第299章 膽大妄爲,實力恐怖第212章 他和夏總到底什麼關係?第213章 橫生枝節第42章 P站阿婆主第408章 初入燕園第190章 現在的高中生啊……第238章 競爭對手?第164章 不會被下藥吧?第30章 立人設第387章 打印機和繪圖儀第122章 騙過多少女孩子?第8章 裝〇也要講基本法第359章 大佬,怪蜀黍?第75章 金少樓的警告第152章 你的承諾呢?第179章 馬爾可夫隨機場第158章 查崗?第26章 週一凡的震驚第331章 揹着媽媽偷吃第20章 寫論文第390章 兩份DNA檢測報告單第266章 篩選模型,以及最後的優勝者第349章 說錯了什麼?第250章 幸虧有雙保險第375章 沒有操作系統怎麼辦?第185章 是不是太敏感了?第209章 校服就是最正式的裝扮第427章 詭異的附加關卡第41章 要是不帥不酷呢?第373章 肉體永生,還是機械飛昇?第427章 詭異的附加關卡第26章 週一凡的震驚第79章 李東的Show time第105章 寶藏男孩