NET程序集反编译/破解

NET程序集反编译/破解

 

作者: Tomex Ou

 

.NET程序在执行时,会先编译成中介语言IL,再转成Native执行,因此中间IL阶段就很容易被反编译,甚至修改后达到程序破解目的。您可以参考文献#1文章比较原始码与IL的不同,当然,我们有更好的软件工具来达到那样的IL修改。不过是利用工具或反编译,多少得看懂一点IL码的区段起迄为宜,您可以使用VS内建的ildasm.exe来查看.NET Assembly的IL内容。VS2008预设安装会放在: C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ildasm.exe

 

ILDASM.exe可以调整Menu下的View选项,让IL码显示更多的讯息,提供判断之用。

[image|ILDASM|{UP}Program%2fNetReflector%2fIldasm.gif]

 

常见的IL特殊码如下(跟破解有关),其他的请查google。稍微看得懂IL码其实也蛮重要的,它可以藉由探知IL而改进上层C#/VB.NET程序代码语法,避免不必要的执行呼叫或浪费。刚开始看会觉得IL码很不人性,看久就会宽心啦!

(((

* ret = return

* ldc.i4.1 = true

* ldc.i4.0 = false

)))

 

接下来,你可以使用文献#2的软件「Reflector for .NET]去打开欲探究的.NET Assembly

另外它有个plug-in工具Reflexil(文献#3)能让你直接修改IL为另存新档(免去文献#1文章的麻烦步骤)

[image||{UP}Program%2fNetReflector%2fReflector.gif]

 

Reflexil的使用教学可以参考文献#4,重点在于若你不知该怎么改IL起迄值,可以右键单击「Replaceall with code」直接在该method中改程序代码,再按「Preview IL」键即可帮你产生并替换掉该method内的所有IL值,这贴心功能在破解注册或验证函式中,相当好用。

[image||{UP}Program%2fNetReflector%2fReflexil.gif]

 

最重要的是,利用Reflexil改好IL值了,怎么产生新的Patched Assembly呢? 找了好久,才发现原来要在Reflector左边树状节点中,在该Assembly.exe或dll的根节点单击,Reflexil窗格才会显现Save As/Reload的按键。

 

以上是简易教学,应该足够让你心惊胆跳,原来.NET反编译/破解竟如此简单,令人得赶快寻求混淆(obfuscator)或加密软件来保护自己辛苦的劳动成果。这种破解别人/防护自己的矛盾心态很可议,在此纯粹介绍反编译软件,精神层面就不多说了。

 

(((

参考文献:

#[http://www.cnblogs.com/montaque/archive/2005/01/10/89464.html|使用 Ildasm,ILasm, Peverify 来 Crack 别人写的应用程序]

#[http://www.aisto.com/roeder/dotnet/|Reflector for .NET]

#[http://sourceforge.net/projects/reflexil/|Reflector Plug-in: Reflexil]

#[http://www.codeproject.com/KB/msil/reflexil.aspx|Assembly Manipulation andC#/VB.NET Code Injection]

)))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值