为避免引起责任问题,已对文中所有非逻辑相关的程序部分打码处理。
以下是文中用到的工具下载链接,皆来自互联网:
将待破解程序拖入Reflector。
如果使用的是其他软件,如dotpeek,特征可能为:
- 方法名大多为乱码
- 方法的内容为// ISSUE: unable to decompile the method.
这种情况下可以初步判断程序有加壳处理。
使用 de4dot -d xxx.exe
对目标程序进行检测。
使用 de4dot xxx.exe
对目标程序脱壳,脱壳后会生成xxx-cleaned.exe。
将cleaned后的文件拖入Reflector即可查看大多数的方法。
仔细阅读代码根据特征找到待破解的关键部分。
这里是根据待破解的软件报错提示找到的。
只要将报错提示的条件绕过即可。
对.net程序进行修改需要使用Reflector的Reflexil插件,按图示可进行插件的安装。
安装成功后tools页面会出现如上图的Reflexil选项,点击即可。
如上图代码只需要绕过if中对 PublicConfig.AnimeDownload
的值判断即可。
在MSIL指令中表现为以下两行:
先将 PublicConfig.AnimeDownload 的值推入栈中,再由brtrue.s对值进行判断并跳转。
在brtrue.s条目上右键选择edit,将true改为false即可。
修改后在左侧列表中选择指定的程序右键->Reflexil->save as即可。
保存后会在当前目录生成一个xxx-cleaned.Patched.exe,即为破解后的可执行程序。
至于为什么这样修改不会影响到对其他内容的判断,猜测是后面的this.CR.get_Type()做了限制。
此软件还存在着另一个BatchDownload 需要修改,如果读者能够知道本文所破解的软件并能找到相关代码部分,如上文一样进行修改即可。
某.net软件下载限制破解思路:等您坐沙发呢!