码迷,mamicode.com
首页 > 数据库 > 详细

使用x64dbg反混淆非托管壳

时间:2018-08-01 11:42:22      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:还原   tee   method   比较   主程   int   ima   调用   测试   

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个打包器),都是可以的

使用x64dbg反混淆非托管壳

标签:还原   tee   method   比较   主程   int   ima   调用   测试   

原文地址:https://www.cnblogs.com/ugvnui/p/9399247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!