查看单个帖子
旧 2009-04-20, 11:06 AM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】dotnet加密

dotnet加密
www.dimcax.com
dotnet加密
本文主要介绍一些dotnet加密保护工具的原理以及就其脱壳进行简单探讨。 remotesoft protector、maxtocode、.net reactor、cliprotector 、themida .net、xenocode native compiler、dnguard。 remotesoft protector 应该是一款比较老的。net加密保护工具了,看其官方网站似乎还是06年更新过。该软件没有提供试用版下载,相关资料比较少。去年接触过一个该软件保护的.net程序。加密后的程序发布时需要附带native 的 dll。 这款壳可以算是jit层的壳,是jit wrap 模式,通过hook getjit函数,拦截 jit 请求。在每次发生jit请求时其运行库会将加密的程序集完全“原地” 解密还原。 特点:整体解密 脱壳:拦截地层jit请求,然后中断。这时程序集已经完全解密,直接pe dump就行了。 maxtocode 这个大家应该比较熟悉了,和 remotesoft protector 应该时前后脚起步的关系吧。其1.x,2.x,3.1x和3.2内核有很大差别。 特点:单方法体解密 maxtocode 1.x 版本没有用过,不过dst组的菩提曾经写过 maxtocode 1.x 的脱壳机。 maxtocdoe 2.x 其内核是ee层,单方法体“原地”解密。编译之后再擦除解密的代码。 脱壳:因为是“原地”解密,所以方法体代码逃不过profile的。可以在profile里面记录每个方法体,然后填充到文件中。 方法二:nop 调 其内核 的擦除代码。这个不用修改其内核文件,只要还原 mscorwks。dll 中其hook的第二处地方即可。这样方法体解密后就在内存中了。所有方法invoke一面,直接pe dump即可。 maxtocode 3.1x,这个版本接触得比较多,我接触的第一个maxtocode版本就是3.10。这一版其内核相对2.x变动比较大。方法体已经不是原地 解密的了,也就是说profile已经不能监视到其il代码了,这算是一个巨大的进步吧。3.1x的内核基本上是一样的,只是后续的版本针对反射做了一些小动作。 脱壳:直接反射、修复后反射。 方法二:直接调用其内核的解密函数进行脱壳,简单快速。 maxtocode
(45.47 kb)
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)