使用x64dbg反混淆非託管殼

SystemDomain::ExecuteMainMethod處下斷點,是一個很是折中的方案,不會過於深刻clr內部,也不會隨隨便便被hook住
運行到這裏的時候主程序集已經被這些非託管殼還原到對應位置
爲何這說,請看下圖安全

這是主線程的調用堆棧(我在主線程裏運行了消息泵,因此暫停住了)
能夠看到底端是不知名的地址,應該是TMD之類的殼生成的
再向上看,有個clr._CorExeMain和clr._CorExeMainInternal,clr._CorExeMain是導出函數函數

有被hook的風險,因此在這裏下斷點不適合,clr._CorExeMainInternal其實也能夠,可是感受不太好(沒測試過)
而後是
······
clr.RunMain
clr.Assembly::ExecuteMainMethod
clr.SystemDomain::ExecuteMainMethod
clr.ExecuteEXE
······
這4個應該均可以,都是比較安全的,幾乎不可能被hook住,直接dump下這時的主模塊就沒啥問題了
不過只測試了clr.SystemDomain::ExecuteMainMethod,測試了3個殼(2個強殼,1個打包器),都是能夠的測試

相關文章
相關標籤/搜索