本次題目跟第七屆HWS線下的re2有類似的地方,均有後門函式。
二進位制後門可以理解為:我們只需要修改某個位元組或某個函式,就可以將加密的過程變成解密的過程,大大節省逆向成本。
本題先對內建的dll進行解密,然後呼叫其加密函式對我們的txt進行加密,如果我們將加密的函式nop為解密函式,就可以直接解密,類比與RC4動態解密技術。
1、初次分析
0地址異常反除錯
本題的一大亮點就是有訪問0地址的異常反除錯,小夥伴們在做的時候有沒有發現除錯異常艱難呢
故意訪問0地址
然後走作者自定義的處理函式,如果我們在IDA動調的時候不經過處理函式,程式就會卡在哪裡不能繼續執行。
做法很簡單:將訪問0地址的程式碼和異常處理函式完全給nop掉
(說白了:就是將所有跟異常有關的彙編都給nop掉就完事)
處理函式也是完整nop
返回處也nop,跟開頭相對應
main函式
分析main函式,發現反編譯爆紅
很正常,檢視彙編程式碼,發現了異常反除錯和異常花指令干擾分析
【----幫助網安學習,以下所有學習資料免費領!加vx:dctintin,備註 “部落格園” 獲取!】
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
做法很簡單:直接nop即可
具體做法參考:上面一小節,0地址異常反除錯
nop
成功生成函式
TLS回撥函式
嘗試執行,發現直接退出,發現了TLS反除錯函式
nop即可
生成函式
將exit函式nop掉即可,不用管反除錯的事情了
2、內建DLL資源解密
使用工具開啟file_encrypt
發現內建 pe程式,猜測key為0x33,解密
這是程式使用0x33解密
發現了很多加密函式和解密函式(Crypt開頭),因此本題程式使用本dll進行加密和解密操作
在後面的分析中,也發現了函式載入了我們的dll
3、關鍵函式分析
sub_401320
使用IDA動調發現了很多bug,莫名其妙斷下,改用x64dbg
sub_402000
路徑和磁碟機代號有關,比如我在C盤
C:......\document\1.txt
找到1.txt
sub_4017E0
載入dll
sub_4013E0
4、解密
既然使用了encrypto,那麼我們改為decrypto就可以啦
I added the missing CryptDecrypt call to the binary's import table and patched the executable to decrypt the files. The decryption call takes one parameter less than the encryption one, so I NOP'ed one push to the
stack as well:
更多網安技能的線上實操練習,請點選這裡>>