為了能更深刻的了解計算機,并且為能更輕松的學習作業系統,我開始了學習匯編語言,當然在學習之中也聽聞了反匯編,對語言的執行流程也有了一些認識,首先高級語言撰寫的程式通過編譯器進行編譯,匯編,鏈接,會生成一個可執行檔案,c/c++中被稱為.exe檔案,我們可以通過對.exe進行反匯編得到它的匯編指令,從而對程式進行分析,最終破解,
接下來,我們來看一看如何對下面這個超級簡單的程式進行破解的吧!

這個小程式是輸入密碼,然后輸入正確的數,就會輸出correct!反則就會輸出wrong!
目前我們只有exe檔案,沒有代碼,無法得知正確的密碼所以我們對該程式進行反匯編


我發現在箭頭指的地方有一處比較指令cmp,而且比較的數是一個16進制數,而且上面還有cin,可以猜測這個16進制數可能就是密碼,然后我們對這個16進制數進行轉換為10進制數

發現轉化成的十進制數是12345789,我們對程式試一試這個密碼

發現這個密碼是對的,那么這個小程式就被成功破解了!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259233.html
標籤:其他
上一篇:C++題目分享之級數求和
