吾愛破解 - LCG - LSG |安卓破解|病毒分析|huihengkj.com

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

搜索
查看: 3711|回復: 54

[CTF] 記一次MIPS題目的逆向分析

  [復制鏈接]
樓主
Li1y 發表于 2020-9-17 13:59 回帖獎勵
本帖最后由 Li1y 于 2020-9-20 21:48 編輯

初步分析

題目鏈接

2020HWS選拔賽的IOT逆向題目,內有3個文件

500彩票邀请码其中readme.txt內容如下:

題目運行命令如下:

sudo qemu-system-mipsel -M malta -hda openwrt-malta-le-root.ext4 -kernel openwrt-malta-le-vmlinux.elf -nographic -append "root=/dev/sda console=tty50"

需要分析的程序為 ./bin/maze

500彩票邀请码.ext4格式文件能直接解壓縮,復制出/bin/maze,用file看一下文件格式

發現是小端mips,根據readme.txt的內容能直接模擬整個openwrt系統來運行,而且可以使用gdb調試,但是調試過程中遇到了很多問題,比如莫名其妙突然不能顯示輸入輸出的字符等

500彩票邀请码因此考慮使用靜態分析方式,那么有以下幾個工具可以選擇

  1. Ghidra

  2. IDA7.5

  3. JEB-MIPS

首先推薦IDA7.5,氪金才能變強,如果想白嫖最好還是選擇JEB-MIPS

500彩票邀请码根據個人經驗,JEB-MIPS的偽代碼效果要優于Ghidra,在一些異或處理上Ghidra顯示的偽代碼會和匯編有歧義,使用者容易被誤導

個人使用的JEB版本可在如下鏈接獲取

500彩票邀请码[Android Tools] JEB 3.17.1 Anti-Covid19 Edition by DimitarSerg

http://huihengkj.com/thread-1162477-1-1.html

靜態分析

根據題目maze也可以知道,這是一個CTF逆向題中典型的迷宮題

500彩票邀请码sub_400B44為主函數

首先限制了輸入長度為32

500彩票邀请码其次在sub_4006F0()通過預置的字符串"AMz1nG~#--Ma7e~"得出迷宮布局,即.bss段中的maze數組

根據字符串的長度和循環次數可以判斷出迷宮大小為8*15

500彩票邀请码我們可以根據偽代碼還原出迷宮生成函數,從而打印出迷宮

500彩票邀请码剩下的就是判斷,上下左右分別用UDLR代替,下圖中以ASCII碼顯示

根據v1=1,v2=0可以判斷起始點是(1,0),而要走32步,則只有如下圖路徑


結果為

DDRDDLDDRRRRRDRDDDDDLLDDLLLUUULU

動態分析

500彩票邀请码那么如果迷宮生成步驟再復雜一點,很難從偽代碼分析還原出迷宮,就需要動態調試了。

而根據前文所述,無法使用openwrt自帶的gdb調試,那么通過外接gdb是否可以呢

已知使用qemu可以直接模擬執行靜態編譯的程序,但是如何對題中這種動態編譯,需要外部依賴的程序進行模擬執行呢?

經過查閱資料(

qemu-mipsel -L ./ ./bin/maze

注意,根據博主大佬的過程,需要參照lib文件夾中的兩個1kb文件內容,修改對應的so文件,不然會出現解析錯誤

500彩票邀请码解釋的可能不是很清楚,直接舉例吧,比如ld-musl-mipsel-sf.so.1其實并不是一個ELF格式的程序,用txt打開之后里面只有libc.so,因此刪除舊的ld-musl-mipsel-sf.so.1并將libc.so命名為新的ld-musl-mipsel-sf.so.1

500彩票邀请码對libatomic.so.1的處理過程也一樣,處理之后就可以愉快的動態調試了

500彩票邀请码因為要使用gdb調試,所以使用-g參數設置端口

qemu-mipsel -g 1234 -L ./ ./bin/maze

之后安裝apt-get install gdb-multiarch,再使用如下命令啟動gdb

gdb-multiarch -q ./bin/maze

設置架構和大小端序(默認小端)

set architecture mips

set endian little(本題為小端,可以不使用此命令)

500彩票邀请码最后遠程連接調試端口,如在本地127.0.0.1可以省略不寫

target remote :1234

本以為這樣就結束了,可以愉快下斷點了,但是下完斷點執行gdb就崩了,換用pwngdb也是如此,過程如下圖

500彩票邀请码問題暫時無解,希望知道原因的師傅能告訴我

因此選擇使用IDA調試,雖然7.5以下的IDA不支持顯示mips的偽代碼,但是遠程調試還是妥妥的,依舊是使用qemu-mipsel -g 1234 -L ./ ./bin/maze啟動遠程調試,ifconfig看一下虛擬機500彩票邀请码的ip,使用IDA打開maze文件,下斷點后選擇Remote GDB debugger運行


填寫虛擬機ip和端口,其它參數默認點OK即可

500彩票邀请码如果斷點下在了初始化迷宮布局結束之后,例如sub_400904處,運行至此處后找到.bss段的maze變量轉化為數組即可看到迷宮全貌


此處還有一個坑點,使用IDA7.0的時候同樣的流程看不到.bss段初始化后的結果,全是?

500彩票邀请码而換用7.2就可以了,淚目,果然氪金才能變強

不過論壇有7.2的版本,下載一個就OK

500彩票邀请码剩下的見靜態調試分析

最后,求知道為什么gdb調試會崩掉的師傅解惑




【更新,換了Ubuntu就不會崩掉了,玄學。。。】

免費評分

參與人數 26威望 +2 吾愛幣 +124 熱心值 +22 收起 理由
老板來包辣條 + 1 + 1 用心討論,共獲提升!
as494 + 1 + 1 熱心回復!
onething + 1 + 1 熱心回復!
dingting + 1 + 1 熱心回復!
迷魂 + 1 + 1 謝謝@Thanks!
InsafeMacro + 1 + 1 用心討論,共獲提升!
N0exp + 1 + 1 我很贊同!
ycuvuuui1L + 1 + 1 用心討論,共獲提升!
不諳世事的騷年 + 1 + 1 熱心回復!
volcanocan + 1 + 1 謝謝@Thanks!
獨行風云 + 1 + 1 歡迎分析討論交流,吾愛破解論壇有你更精彩!
22222 + 1 熱心回復!
gaosld + 1 + 1 熱心回復!
poisonbcat + 1 + 1 謝謝@Thanks!
quandu + 1 + 1 支持樓主,支持MIPS,支持loongarch--
linrunqing521 + 1 謝謝@Thanks!
victos + 1 + 1 熱心回復!
yixi + 1 + 1 謝謝@Thanks!
Hmily + 2 + 100 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
wuliwuli + 1 熱心回復!
fengbolee + 1 + 1 用心討論,共獲提升!
lihaiyangya + 1 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
楠寶 + 1 熱心回復!
小哥9527 + 1 熱心回復!
笙若 + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
cui_boran + 1 + 1 熱心回復!

查看全部評分

本帖被以下淘專輯推薦:

發帖前要善用論壇搜索功能,那里可能會有你要找的答案或者已經有人發布過相同內容了,請勿重復發帖。

推薦
 樓主| Li1y 發表于 2020-9-18 13:39 |樓主
BXb 發表于 2020-9-18 10:15
lz,是不是還要安裝qeum什么的啊。能指導一下嘛。

是,得裝qemu,我的版本是最新版
apt-get install qemu
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹      
正在讀取狀態信息... 完成      
qemu 已經是最新版 (1:4.2-6)。
推薦
CHILAS_LEE 發表于 2020-10-21 22:40
MIPS逆向調試工具一直都有點麻煩,感謝樓主分享。IDA7.0我遇到過branch指令單步跟全都不會跳轉,無論條件是否滿足,并且這個時候查看不了棧這些信息,重啟IDA才能恢復正常。
沙發
xmhwws 發表于 2020-9-17 14:58
3#
 樓主| Li1y 發表于 2020-9-17 15:09 |樓主

窮啊,哪里買得起,用的是泄露的7.2
4#
mth123 發表于 2020-9-17 19:38
高手如云啊
5#
Serenade 發表于 2020-9-17 20:47
支持大佬
6#
hzqmwne 發表于 2020-9-17 23:05
過程很詳細,學習了
7#
無名哥哥126 發表于 2020-9-18 00:29
詳細的教程,支持!
8#
zhutou123 發表于 2020-9-18 01:05
學習一下
9#
qq40078009 發表于 2020-9-18 08:22
過程很詳細,學習了
10#
BXb 發表于 2020-9-18 10:15
本帖最后由 BXb 于 2020-9-24 20:27 編輯

學習學習。
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則 警告:本版塊禁止灌水或回復與主題無關內容,違者重罰!

快速回復 收藏帖子 返回列表 搜索

RSS訂閱|小黑屋|處罰記錄|聯系我們|吾愛破解 - LCG - LSG ( )

GMT+8, 2020-10-24 19:19

Powered by Discuz!

500彩票邀请码Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表

500彩票邀請碼-彩經網