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

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. 明日计划
加密与解密

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值