通过ILSpy反编译工具和ilasm修改.NET程序
文章来源:https://blog.peos.cn/2016/12/26/ilspy-ilasm-ildasm-net.html
金庸群侠传X中,田青文、木婉清、王语嫣的点穴游戏忒难过了,所以上网摸索了一下修改点穴游戏难度的办法。(本人已经测试适用于PC版1.1.0.2和iOS版的1.1.0.2,低版本的应该都适用)
(由于无法上传图片,只能文字描述了,大家有问题可以留言)
我在IPAD上玩的,版本是1.1.0.2,将进度拷贝到同版本的PC版之后可以正常运行,于是我在PC版上修改,要修改的文件:金庸群侠传X_Data\Managed\Assembly-CSharp.dll(修改之前记得备份)
1:反编译工具ILSpy.exe:是个很不错的反编译软件,而且是免费了;
2:微软的工具ildasm.exe:这个是把DLL生成IL文件的一个软件,下载一个吧,我在C盘没找到;
3:电脑的工具ilasm.exe:这个是把IL文件重新生成DLL的功能,可以在C:\Windows\Microsoft.NET\Framework\v4.0.30319找到该软件;
步骤一:使用ILSpy.exe打开Assembly-CSharp.dll文件;查看其源代码的情况:

(在该文件下的第二个大括号下,找到TouchPoint,点开后找到onclick():void,选中后在右边的视图中可以找到蓝色的perfect、good、bad字样,其中perfect每次可以得到3分,good得到1分,bad得0分,我们就是要修改这3个数字)

(在该文件下的第二个大括号下,找到TouchUI,点开后找到startNewRound():void,选中后在右边的视图中可以找到float item = (float)Tools.GetRandom(0.3, 0.5),括号中这两个数字改大之后每个穴位之间的间隔时间变长,圈圈变小时间变长,就很容易点击了。)

步骤二:接下来就是要使用ildasm.exe把DLL这个文件转化成IL文件
利用ildasm.exe打开DLL文件后,选中Assembly-CSharp.dll文件,在文件菜单中选择转储,将Assembly-CSharp.il文件存到某个指定文件夹里,得到Assembly-CSharp.il和Assembly-CSharp.res两个文件,有时也会有Assembly-CSharp.resource文件。


步骤三:我们可以打开Assembly-CSharp.il文件,里面有DLL生成的IL内容;
.il文件可以用记事本打开,但是打开后很多人就蒙圈了,汪洋大海啊,如何找到我们需要修改的代码所在的位置呢?
通过在ilspy软件中切换C和IL模式进行对比,会找到三行代码: IL_005c: ldc.i4.3、IL_00c4: ldc.i4.1、IL_00db: ldc.i4.0。
耐心点,我们就在il文件中找到这三个代码,修改为: IL_005c: ldc.i4.6、IL_00c4: ldc.i4.6、IL_00db: ldc.i4.6,(这样你每次点击,无论是perfect、good、bad,都可以得到6分。我试了改成90和9,结果后面会提示错误,我觉得改成6已经足够好了)

步骤四:同样的方法,在IL文件中找到IL_0089: ldc.r8 0.299999999、IL_0092: ldc.r8 0.5这两个代码,修改为IL_0089: ldc.r8 2、IL_0092: ldc.r8 4
步骤五:当修改完IL文件后要把它转化成DLL文件,打开DOS命令行进入到保存Assembly-CSharp.il的文件夹,然后输入命令(文件名一样的话,就拷贝下面的命令过去):c:\windows\microsoft.net\framework\v4.0.30319\ilasm.exe /dll/resource=Assembly-CSharp.res Assembly-CSharp.il
(其中"/dll/"这个前面要有一个空格, .res文件要在.il文件前面,中间要有个空格)
ilasm用法:
ilasm text 按回车自动查找text4.il 文件并且编译成 text4.exe
或 ilasm text /dll 可以编译成 text.dll 文件(记得先删除原来的text4.dll)
步骤六:回车运行上面的命令,成功后后会生成一个新DLL文件(可以用ilspy重新打开这个修改完的dll文件,检查刚才修改的是否已经没问题),然后把它复制到:金庸群侠传X_Data\Managed文件夹下,覆盖原有的Assembly-CSharp.dll文件。再次运行游戏,去看看吧,点穴游戏简单多了,哈哈哈哈。
金庸群侠传X中,田青文、木婉清、王语嫣的点穴游戏忒难过了,所以上网摸索了一下修改点穴游戏难度的办法。(本人已经测试适用于PC版1.1.0.2和iOS版的1.1.0.2,低版本的应该都适用)
(由于无法上传图片,只能文字描述了,大家有问题可以留言)
我在IPAD上玩的,版本是1.1.0.2,将进度拷贝到同版本的PC版之后可以正常运行,于是我在PC版上修改,要修改的文件:金庸群侠传X_Data\Managed\Assembly-CSharp.dll(修改之前记得备份)
1:反编译工具ILSpy.exe:是个很不错的反编译软件,而且是免费了;
2:微软的工具ildasm.exe:这个是把DLL生成IL文件的一个软件,下载一个吧,我在C盘没找到;
3:电脑的工具ilasm.exe:这个是把IL文件重新生成DLL的功能,可以在C:\Windows\Microsoft.NET\Framework\v4.0.30319找到该软件;
步骤一:使用ILSpy.exe打开Assembly-CSharp.dll文件;查看其源代码的情况:

(在该文件下的第二个大括号下,找到TouchPoint,点开后找到onclick():void,选中后在右边的视图中可以找到蓝色的perfect、good、bad字样,其中perfect每次可以得到3分,good得到1分,bad得0分,我们就是要修改这3个数字)

(在该文件下的第二个大括号下,找到TouchUI,点开后找到startNewRound():void,选中后在右边的视图中可以找到float item = (float)Tools.GetRandom(0.3, 0.5),括号中这两个数字改大之后每个穴位之间的间隔时间变长,圈圈变小时间变长,就很容易点击了。)

步骤二:接下来就是要使用ildasm.exe把DLL这个文件转化成IL文件
利用ildasm.exe打开DLL文件后,选中Assembly-CSharp.dll文件,在文件菜单中选择转储,将Assembly-CSharp.il文件存到某个指定文件夹里,得到Assembly-CSharp.il和Assembly-CSharp.res两个文件,有时也会有Assembly-CSharp.resource文件。


步骤三:我们可以打开Assembly-CSharp.il文件,里面有DLL生成的IL内容;
.il文件可以用记事本打开,但是打开后很多人就蒙圈了,汪洋大海啊,如何找到我们需要修改的代码所在的位置呢?
通过在ilspy软件中切换C和IL模式进行对比,会找到三行代码: IL_005c: ldc.i4.3、IL_00c4: ldc.i4.1、IL_00db: ldc.i4.0。
耐心点,我们就在il文件中找到这三个代码,修改为: IL_005c: ldc.i4.6、IL_00c4: ldc.i4.6、IL_00db: ldc.i4.6,(这样你每次点击,无论是perfect、good、bad,都可以得到6分。我试了改成90和9,结果后面会提示错误,我觉得改成6已经足够好了)

步骤四:同样的方法,在IL文件中找到IL_0089: ldc.r8 0.299999999、IL_0092: ldc.r8 0.5这两个代码,修改为IL_0089: ldc.r8 2、IL_0092: ldc.r8 4
步骤五:当修改完IL文件后要把它转化成DLL文件,打开DOS命令行进入到保存Assembly-CSharp.il的文件夹,然后输入命令(文件名一样的话,就拷贝下面的命令过去):c:\windows\microsoft.net\framework\v4.0.30319\ilasm.exe /dll/resource=Assembly-CSharp.res Assembly-CSharp.il
(其中"/dll/"这个前面要有一个空格, .res文件要在.il文件前面,中间要有个空格)
ilasm用法:
ilasm text 按回车自动查找text4.il 文件并且编译成 text4.exe
或 ilasm text /dll 可以编译成 text.dll 文件(记得先删除原来的text4.dll)
步骤六:回车运行上面的命令,成功后后会生成一个新DLL文件(可以用ilspy重新打开这个修改完的dll文件,检查刚才修改的是否已经没问题),然后把它复制到:金庸群侠传X_Data\Managed文件夹下,覆盖原有的Assembly-CSharp.dll文件。再次运行游戏,去看看吧,点穴游戏简单多了,哈哈哈哈。
通过ILSpy反编译工具和ilasm修改.NET程序的更多相关文章
- ILSpy反编译工具的使用
以前一直使用reflector来查看.net类库的一些信息,不过,自2011年2月份开始,reflector就开始转向收费软件了,所以爱好免费软件的开发者们转而开发自己的反编译软件.于是ILspy就因 ...
- ILSpy反编译工具之C#反汇编
1.下载ILspy工具 https://github.com/icsharpcode/ILSpy#ilspy------- 注意: ILspy需要在电脑上安装.NET Framework 4.0. ...
- ILspy反编译工具
简介 ILspy是一个开源的.net反编译软件,使用十分方便. 开发原因 之所以开发ILspy是因为Red Gate宣布免费版的.NET Reflector(同样是反编译软件)将会在2011年2月停止 ...
- ILSPY反编译工具下载代替收费的Reflector工具
原文发布时间为:2011-10-10 -- 来源于本人的百度文章 [由搬家工具导入] ILSPY反编译工具下载 http://build.sharpdevelop.net/BuildArtefacts ...
- C#反编译工具ILSpy 反汇编
ILSpy反编译工具之C#反汇编 1.下载ILspy工具 https://github.com/icsharpcode/ILSpy#ilspy------- 注意: ILspy需要在电脑上安装.N ...
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...
- 反编译工具Reflector ILSpy
最近很长一段时间在为自己技术方便该如何做才会有新的长进而发愁,偶然,顿悟,决定通过反编译工具了解底层代码来进一步提升自己的能力. 于是有了周末宅在家里一天研究反编译工具. 不能浪费了一天的成果,至此, ...
- ILSpy,DLL反编译工具,学习与了解原理的好帮手
你是否一直苦于找到了好的dll却只知道怎么使用而不知道其原理. 你是否在使用一个dll的时候发现它在一些参数时报错了却没法解决. 你是否想成为一个优秀的.net开发,成为一个优秀的系统制造者. 那你需 ...
- .net程序反编译工具(ILSpy)
ILSpy是SharpDevelop小组的反编译工具,ILSPY这个开源工具的目的就是代替reflector的,它可以反编译出比reflector更好的C#代码. PC官方版 C#反编译工具ilspy ...
随机推荐
- 猪齿鱼 Choerodon 的数据初始化设计解析
数智化效能平台猪齿鱼Choerodon 作为一个微服务框架,需要解决微服务数据初始化本身具有的问题和复杂性,同时也需要满足框架本身特有的数据初始化需求,下面为大家介绍一下这方面的设计思想和实现. 微服 ...
- VAE变分自编码器
我在学习VAE的时候遇到了很多问题,很多博客写的不太好理解,因此将很多内容重新进行了整合. 我自己的学习路线是先学EM算法再看的变分推断,最后学VAE,自我感觉这个线路比较好理解. 一.首先我们来宏观 ...
- Spring Boot 3.0.0 发布第一个里程碑版本M1,你的 Java 升到17 了吗?
2022年1月20日,Spring官方发布了Spring Boot 3.0.0的第一个里程碑版本M1. 下面一起来来看看Spring Boot 3.0.0 M1版本都有哪些重大变化: Java基线从 ...
- k8s 基于RBAC的认证、授权介绍和实践
在K8S中,当我们试图通过API与集群资源交互时,必定经过集群资源管理对象入口kube-apiserver.显然不是随随便便来一个请求它都欢迎的,每个请求都需要经过合规检查,包括Authenticat ...
- DNS主从同步部署
DNS 主从同步原理 主从同步:主每次修改配置文件需要修改一下序列号,主从同步主要 根据序列号的变化. 从DNS:从可以单独修改,主从不会报错.但从修改后,主端同步给从后 从端修改数据会丢失 主从原理 ...
- Ubuntu SVN 搭建
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion ...
- glibc-2.18升级
1.下载文件下载地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/glibc/glibc-2.18.tar.gz 2.安装部署解压tar -zxvf glibc- ...
- Understanding C++ Modules In C++20 (1)
Compiling evironment: linux (ubuntu 16.04)+ gcc-10.2. The Post will clarify and discuss what modules ...
- 【C++】【源码解读】std::is_same函数源码解读
std::is_same使用很简单 重点在于对源码的解读 参考下面一句静态断言: static_assert(!std::is_same<bool, T>::value, "ve ...
- Redis为什么是单线程,高并发快的3大原因详解
出处知乎:https://zhuanlan.zhihu.com/p/58038188 Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快: 2.redis是单线程的,省去了 ...