100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > NET程序集反编译/破解

NET程序集反编译/破解

时间:2024-05-18 08:27:41

相关推荐

NET程序集反编译/破解

NET程序集反编译/破解

作者: Tomex Ou

.NET程序在执行时,会先编译成中介语言IL,再转成Native执行,因此中间IL阶段就很容易被反编译,甚至修改后达到程序破解目的。您可以参考文献#1文章比较原始码与IL的不同,当然,我们有更好的软件工具来达到那样的IL修改。不过是利用工具或反编译,多少得看懂一点IL码的区段起迄为宜,您可以使用VS内建的ildasm.exe来查看.NET Assembly的IL内容。VS预设安装会放在: 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#/程序代码语法,避免不必要的执行呼叫或浪费。刚开始看会觉得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)或加密软件来保护自己辛苦的劳动成果。这种破解别人/防护自己的矛盾心态很可议,在此纯粹介绍反编译软件,精神层面就不多说了。

(((

参考文献:

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

#[/roeder/dotnet/|Reflector for .NET]

#[/projects/reflexil/|Reflector Plug-in: Reflexil]

#[/KB/msil/reflexil.aspx|Assembly Manipulation andC#/ Code Injection]

)))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。