第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。 Wшw. Tтkā n. c○

隨後,將這個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。

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

江寒不禁若有所悟。

第402章 讀書之樂,臨行之前第80章 碰碰船和真人CS第24章 投稿AMC第324章 如果是江寒哥哥的話……第263章 一切都在算計中第281章 當場搶人第70章 水上公園第348章 只會下蛋,不會生寶寶第75章 金少樓的警告第109章 不擅長的事情第316章 順藤摸瓜第225章 papa別鬧!第323章 麻雀還是蚊子?第285章 “彈性碰撞”第313章 “僱傭兵”與“香餌”第79章 李東的Show time第415章 滿分入選國家隊第217章 超級粉絲第172章 誰是誰的小糖人?第405章 身手很好,飯來張口第354章 迷你3D打印機第380章 買豬頭不要肉第429章 阿法狗的三板斧第161章 論腦補,只服你第96章 暫時保管?第417章 江寒的圍棋水平第24章 投稿AMC第133章 過去的自己,以及自己的過去第244章 屋裡陪他小電影?第373章 肉體永生,還是機械飛昇?第83章 髮卡第145章 陳萱的邀請第295章 全世界沒人教得了第235章 有所不爲、有所必爲第125章 我有一個同桌第160章 只能看到文章本身第329章 拋棄框架,從零開始造輪子第106章 查戶口第340章 實力還是運氣?第382章 電動車和機械臂第307章 沒有證據可不行第38章 賣歌第42章 P站阿婆主第23章 震驚商城,開啓!第311章 系統安全特聘測試員第296章 攪動風雲第60章 費曼學習法第115章 無線電發射器第312章 阱中有坑,坑裡有釘第203章 誰支持、誰反對?第182章 罪證都沒銷燬乾淨第421章 身世大白第21章 《琵琶行》公開第423章 超算和MPP架構第330章 小孔成像和PNP問題第147章 有點深奧啊第180章 想謙虛都沒地方謙虛第227章 智能安防報警系統第94章 水論文的正確姿勢第217章 超級粉絲第157章 找個清靜的地方第271章 破壞永遠比建設更容易第381章 以理服人,大江科技第48章 《如果時間能倒退》第299章 膽大妄爲,實力恐怖第136章 打造算術邏輯單元第409章 晨曦III巨型計算機第406章 不可思議的學習效率第114章 收音機,以及1:10?第343章 差之毫釐,謬以千里第300章 沒有硝煙的戰鬥第98章 全能UP主第429章 阿法狗的三板斧第318章 飛機點餐攻略第268章 最終版本第126章 八樓的直升飛機第159章 想怎麼看,就怎麼看?第196章 背黑鍋我來第178章 “概率圖”上的天窗第56章 花錢容易賺錢難第368章 能幹的小秘書?第39章 這可能是個誤會第52章 “感知機”的初次實戰第338章 脫胎換骨,戰神軍團第114章 收音機,以及1:10?第86章 蘇婉瑩的預測第78章 土豆和男朋友第21章 《琵琶行》公開第314章 旗鼓相當?大獲全勝!第352章 有了一個小助手第281章 當場搶人第403章 家產億萬,平平無奇第358章 27個學術點第77章 多少次回眸第395章 柳東斌和秦易第150章 全+1!第258章 學霸的畫風,都是這麼清奇的嗎?第346章 密室第49章 高老師的難題第99章 老江很忙