0517 libdroid MyDriver2-397 easy_go攻防世界
0x01
libdroid 攻防世界
工具
dex2jar+jd-gui
思路展開
下載下來附件,改為.zip后綴,解壓出來得apk文件,apk文件再改.zip后綴,再解壓,得到dex文件,dex2jar反編譯,jd-gui打開。
接下來的操作對安卓開發(fā)的細(xì)節(jié)要充分了解,先擱在這,日后跟進(jìn)。
32C3_this_is_build_for_flag_ship_phones
0x02
MyDriver2-397(windows驅(qū)動)
工具
IDA
思路展開
sys后綴,驅(qū)動,好吧,我是一臉懵逼。驅(qū)動已經(jīng)提上日程了,還有上面的java的安卓開發(fā)(太菜了)。
先去看卸載函數(shù)
開關(guān)內(nèi)存保護(hù),然后把正確的地址寫回去,從這出發(fā),順著線往上找,發(fā)現(xiàn)程序是用inline hook(如何看出inline hook)下圖ff25,jmp e9/ff25
跳轉(zhuǎn)的硬編碼
進(jìn)入sub_114D0
統(tǒng)計(jì)文件中字符次數(shù),若大于8次,先執(zhí)行sub_115dc,再執(zhí)行sub_112b4寫入byte_16390。進(jìn)入sub_112B4
看byte_16390怎么來的,找到解密函數(shù):
逆向算法解密,v1、v2通過sub_11DF0函數(shù)算出,兩個(gè)參數(shù)1546720197和42。
the flag is A_simple_Inline_hook_Drv
邏輯:inline hook ntcreatefile 然后 統(tǒng)計(jì) P_giveMe_flag_233.txt 打開的次數(shù),如果是第九次 那么 就會把flag 寫入到txt 里面,由于inlinehook所以不會往里寫flag。
另一個(gè)思路:
此題從正向出發(fā),先找DriverEntry,看邏輯,也可找到sub_113C8(),分析算法可得(有好幾個(gè)函數(shù),sub_113C8函數(shù)最像計(jì)算flag的函數(shù),自己太菜,現(xiàn)在靠猜了,唉)
0x03
easy_go
工具
ida逆向去符號表腳本+gdb
思路展開
ida沒符號表(符號表:平常打開ida都有函數(shù)名稱指示,那個(gè)是main函數(shù),那個(gè)是打印函數(shù),本題打開發(fā)現(xiàn)沒有這些指示,所有函數(shù)都是sub開頭的通用表示,所以用腳本還原這些函數(shù)名)
IDA 7.0 如何使用 IDAGolangHelper插件
配置好后,執(zhí)行腳本還原函數(shù)名稱,找到main函數(shù)。
有個(gè)紅色區(qū)域,猜測軟件保護(hù)技術(shù),所以采用動調(diào),ida動調(diào)失敗(有ida反調(diào)試,但ida改不了跳轉(zhuǎn),無奈放棄),所以采用gdb調(diào)試,在0x495318下斷點(diǎn)調(diào)試,提示輸入時(shí),隨便輸入,flag就出來了。
flag{92094daf-33c9-431e-a85a-8bfbd5df98ad}
總結(jié)
以上是生活随笔為你收集整理的0517 libdroid MyDriver2-397 easy_go攻防世界的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ts视频下载
- 下一篇: IEC61850学习手册