171216 逆向-.Net的保护和对抗(2)

来源:互联网 发布:海量数据下载 编辑:程序博客网 时间:2024/06/01 10:05

1625-5 王子昂 总结《2017年12月16日》 【连续第442天总结】
A. .Net的保护和对抗(2)
B.

加密壳


这种壳会通过加密元数据、Hook引擎等手段来保护源程序。
因此要熟悉.Net内核,包括JIT的编译过程,执行引擎EE的原理等

.Net程序通过Windows的loader加载后,调用.Net框架的dll,随后程序便运行在EE的监管中,Windows本身不再负责该程序的内存分配、线程管理等工作。

运行过程中遇到没有编译的方法时,框架调用JIT引擎把代码编译成asm,然后执行它,完毕后框架再收回执行流。
因此加密软件常常HookJIT引擎和框架中负责调用JIT的dll(mscorwks),来在JIT编译前将被加密的IL代码和元数据恢复正常,并在方法结束后再将元数据和IL代码销毁。

对抗方法大体还是动态调试或是Hook JIT的编译方法来dump被解密的IL代码和元数据,再重构PE文件

其他保护手段


  • 反检测
  • 反调试跟踪
  • 网络验证
  • 虚拟机(VMP)
  • 加密锁

都是Win32下也很常见的保护手段,如法炮制即可

C. 明日计划
加密与解密

原创粉丝点击