破解.net程序 编译和反编译方法
有好多.net程序有加密狗或者有验证,如果exe或dll没有做过特殊处理,破解.net程序其实很简单,不过你要有足够的耐心!
我只做个简单的小例子,给大家一个思路,吼吼~~~~
1使用工具
Reflector.exe 用来查看.net代码 这个就不用多说了它是学.net必备神器
Ildasm.exe:用来将dll,exe编译为IL文件
ilasm.exe:用来将IL文件编译回来dll或exe
EmEditor文本处理工具这个大家如果没有我这有下载里面有注册码EmEditor.rar
2Ildasm和ilasm基本知识:
ilasm.exe与ildasm.exe的使用
首先打开cmd命令。cd 到 C:Program FilesMicrosoft Visual Studio 8SDKv2.0Bin
然后把要查看的 dll文件或者exe文件拉进来这里面(因为我们是要用命令,你直接打开ildasm.exe也可以找到各目录打开)
比如 text.dll (里面有console.writeline("hello word"))
ildasm text.dll 打开dll 找到方法可以查看
ildasm text.dll /output:text.il 按回车就编译好一个il文件(可用记事本打开并且编辑hello word保存)
然后用ilasm工具反汇编成 dll或者exe 文件
ilasm text 按回车自动查找text4.il 文件并且编译成 text4.exe
或 ildasm text /dll 可以编译成 text.dll 文件(记得先删除原来的text4.dll)
3 开始工作吧
现有我有一个有加密码狗的程序进不去
开始破解吧
用reflector打开我们的程序,开始分析哪里有验证
这一步要有足够的耐心
找到了一个方法是没有加密狗就退出的程序方法
现在用Ildasm.exe打开我们的程序,把程序倒出成IL文件
就转成utf-8格式
会生成4个文件
最主要的就是那个il文件
用EmEditor打开
找到我们要修改的方法SetDoLock()
这我这个例子里我把它们删除直接改成
.method public hidebysig instance void
void SetDoLock() cil managed
{
// 代码大小 103 (0x67)
.maxstack 5
IL_0000: ret
} // end of method Login::SetTextBox
保存
现在就用到 ilasm.exe 出场了 用来将IL文件编译回来dll或exe
上边已经有用它的方法了我也就不多说了
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727>ilasm.exe C:ILaa.il
好了看一下生成的exe 吧
把生成的exe放回到原来的程序里去运行一下
好了破解成功!!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Angular父子Component之间的事件通知机制
- dotnet OpenXML 解析 PPT 文本字体获取详解
- R练习50题 - 第一期
- [889]python处理HTML转义字符
- python 利用jinja2模板生成html代码实例
- vue项目使用 富文本 封装
- typescript基础篇(5):类
- .Net微服务实战之Kubernetes的搭建与使用
- 使用Prometheus监控Golang服务-基于YoyoGo框架
- 使用jedis面临的非线程安全问题
- 基于UVM的UART验证环境
- 潘石屹用Python解决100个问题 | 打印菱形
- Android:源码解析 Dialog的窗口机制
- Java|获取图片rgb值
- (数据科学学习手札93)利用geopandas与PostGIS进行交互