ida & gdb 調試


 

布布轉PC端逆向啦。加油加油!!!

今天在看滴水三期的x86匯編課程和吾愛ximo的脫殼教程。現在是邊學變做題。。有着arm的基礎。x86的匯編很容易接受,懂了點基礎指令。開始嘗試解題。今天做的題碰到的也是upx的殼。打開kali直接upx -d 就脫掉了。沒啥意思,期待后面吧。

第一次用ida遠程調試Linux 系統下的文件,剛開始遇到了坑,最后還是解決了。留個記號吧。

第一次學用gdb來調試程序。基本上對着教程來操作的。總之也留個記號吧。

相關教程:https://blog.csdn.net/horotororensu/article/details/82256832

 

熱愛可抵歲月漫長

 

使用ida & gdb 調試 程序。

案例:攻防世界- RE - 新手入門  no-strings-attached

 

 

ida & gdb 調試

  1. 打開查殼軟件Exeinfo

    發現沒有加殼。同時為ELF格式文件且為32位。

    image.png

    打開32位的ida將文件拖進去F5查看主函數

    image.png都是函數。分析可知,在authenticate()中出現了我們想要的flag痕跡。

    跟進去查看偽代碼.

    image.png

    發現有個加密函數decrypt(看名字看出來的)

    估計是對傳進來的函數進行了加密操作然后賦值給s2.

    而下面就是對有關s2和輸入對比的if判斷。所以,s2就是我們想要得到的flag。而我們如何獲得呢?我們可以進行動態調試獲得。

    ida調試
  2. 開啟在Linux開啟ida的調試服務。

    將ida目錄下dbgsrv文件夾里面的image.png移入Linux的目錄中。打開一個來啟動調試服務。

    image.png

    打開idaimage.png

    選擇image.pngimage.png

    出現如圖所示

    image.png然后

    Application 選擇linux系統中,你所要調試的文件的路徑,

    Directory 現在linux系統中,你所要調試的文件所在的目錄路徑

    parameters 不用填,留空

    Hostname 選擇你linux的IP(下文給出怎么找到ip地址)

    password 你linux的密碼。

     

    獲取IP:打開linux終端。輸入 ifconfig -a 

    image.png

    填好上方后,如圖。

    image.png點擊OK

    成功進入。

    image.png

    另外打開一個IDA直接加載該文件。來查看authenticate函數的位置。

    image.png

    重新切換回我們的動態調試的ida。按G 搜索0x08048708並跳轉。設下斷點。開始運行。image.png

    一直F8調試到08048725

    image.png一定要經過decrypt這個加密函數。然后起字符串都保存在了eax這個寄存器中。我們在HEX 中查看eax保存過的值。

    image.png

    這里就可能有人說上面不是還有一個1嗎?應該是從1開始的,我們直接進eax跳轉的地址看。image.png

    發現是從9開始。故。我們的flag為

    9447{you_are_an_international_mystery}

    成功用ida動態調試的方法解出。

     

     

gdb動態調試

我們現在來講講用gdb來動態調試。

打開kali,用gdb加載程序。

image.png

既然是動態調試,gdb也跟ida一樣,也要下一個斷點來進行調試。從上文IDA靜態分析可知,經過decrypt加密后即為我們要的flag。故我們在decrypt這函數下斷點  b為下斷點

image.png

輸入 r 開始運行程序,會運行到我們下斷點的地方

image.png

然后n為單步步過,p為單步步入。

此處我們需要n。直接步過該函數,讓函數直接執行完。

image.png

我們直接看保存在eax中的值。使用x命令(格式如下)

image.png

輸入 x/200xw $eax    (200是要查看的內存單元個數為200個,x是輸出整數的格式為十六進制。w是4字節輸出。)

image.png

在C語言中。0x00000000 為字符串結束符‘\0’。那么前面即為我們需要的flag的十六進制了。扣出來,寫個腳本跑一下,或者直接復制到十六進制轉文本的在線轉換網頁轉換即可得到flag。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM