专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
今天看啥  ›  专栏  ›  看雪学苑

dotNET 动态脱壳技术要点

看雪学苑  · 公众号  · 互联网安全  · 2025-03-27 18:00
    

文章预览

加壳脱壳要点 dotNET 程序文件内主要存储的是 IL 字节码,一般加壳之后,其 IL 字节码会隐藏或屏蔽,而脱壳的关键在于恢复 IL 字节码,进而近似获取程序源代码。 JIT主要作用 dotNET 程序一般在 JIT 的时候会将 IL 全部或部分解析出来,一般来说不对 token 加密的话,此时JIT的时候,会出现完整的IL。 JIT主要流程 dotNET JIT 流程大致是: clr!ThePreStub clr!PreStubWorker clr!MethodDesc::DoPrestub clr!MethodDesc::MakeJitWorker clr!UnsafeJitFunction clr!CallCompileMethodWithSEHWrapper clr!invokeCompileMethod clr!invokeCompileMethodHelper clrjit!CILJit::compileMethod dotNET 程序在运行的时候,具体到方法执行时,CLR 会为每个方法生成一个 stub,然后调用一堆JIT 函数,生成机器码。这里面关键 JIT 有两个,一个是 DoPrestub 函数,一个是 compileMethod 函数。相对来说,compileMethod  更偏底层。 通过JIT获取IL的关键要点: IL ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览