使用x64dbg反混淆非托管壳
Posted 麒麟网络
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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个打包器),都是可以的
以上是关于使用x64dbg反混淆非托管壳的主要内容,如果未能解决你的问题,请参考以下文章