0517 libdroid MyDriver2-397 easy_go攻防世界

0x01
libdroid 攻防世界

工具

dex2jar+jd-gui

思路展開

下載下來附件,改爲.zip後綴,解壓出來得apk文件,apk文件再改.zip後綴,再解壓,得到dex文件,dex2jar反編譯,jd-gui打開。
接下來的操作對安卓開發的細節要充分了解,先擱在這,日後跟進。
32C3_this_is_build_for_flag_ship_phones

0x02
MyDriver2-397(windows驅動)

工具

IDA

思路展開

sys後綴,驅動,好吧,我是一臉懵逼。驅動已經提上日程了,還有上面的java的安卓開發(太菜了)。
先去看卸載函數
1
開關內存保護,然後把正確的地址寫回去,從這出發,順着線往上找,發現程序是用inline hook(如何看出inline hook)下圖ff25,jmp e9/ff25
2
跳轉的硬編碼
3
進入sub_114D0
4
統計文件中字符次數,若大於8次,先執行sub_115dc,再執行sub_112b4寫入byte_16390。進入sub_112B4
5
看byte_16390怎麼來的,找到解密函數:
6
逆向算法解密,v1、v2通過sub_11DF0函數算出,兩個參數1546720197和42。
the flag is A_simple_Inline_hook_Drv
邏輯:inline hook ntcreatefile 然後 統計 P_giveMe_flag_233.txt 打開的次數,如果是第九次 那麼 就會把flag 寫入到txt 裏面,由於inlinehook所以不會往裏寫flag。
另一個思路:
此題從正向出發,先找DriverEntry,看邏輯,也可找到sub_113C8(),分析算法可得(有好幾個函數,sub_113C8函數最像計算flag的函數,自己太菜,現在靠猜了,唉)

0x03
easy_go

工具

ida逆向去符號表腳本+gdb

思路展開

ida沒符號表(符號表:平常打開ida都有函數名稱指示,那個是main函數,那個是打印函數,本題打開發現沒有這些指示,所有函數都是sub開頭的通用表示,所以用腳本還原這些函數名)
IDA 7.0 如何使用 IDAGolangHelper插件
配置好後,執行腳本還原函數名稱,找到main函數。
1
有個紅色區域,猜測軟件保護技術,所以採用動調,ida動調失敗(有ida反調試,但ida改不了跳轉,無奈放棄),所以採用gdb調試,在0x495318下斷點調試,提示輸入時,隨便輸入,flag就出來了。2
flag{92094daf-33c9-431e-a85a-8bfbd5df98ad}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章