简单破解.net(C#)程序
一直在用makedown2(free版),每当打开多个页面,就会提示升级为pro,还要注册码激活什么的。就有了破解的想法。以前也弄过一个小程序的破解,所以还算有些经验。
1. ildasm 用来将makedown2.exe转存为 il文件和res资源


2.修改il代码。通过分析得知新建文件、到处pdf和 自动保存都调用了 ValidateLicense 函数(返回值bool) 开来有重大嫌疑,试试直接返回true;
return true : 在il文件中如何表示呢!我用c# 写了个函数,用来提取return true代码
//000017:
//000018: static bool test(string str)
//000019: {
//000020: if (str.Length > 0)
IL_0000: /* 02 | */ ldarg.
IL_0001: /* 6F | (0A)000011 */ callvirt instance int32 [mscorlib/**/]System.String/**/::get_Length() /* 0A000011 */
IL_0006: /* 16 | */ ldc.i4.
IL_0007: /* 31 | 02 */ ble.s IL_000b .line , : , ''
//000021: {
//000022: return true;
IL_0009: /* 17 | */ ldc.i4.1
IL_000a: /* 2A | */ ret .line , : , ''
//000023: }
//000024: else
//000025: {
//000026: return false;
IL_000b: /* 16 | */ ldc.i4.
IL_000c: /* 2A | */ ret
} // end of method Program::test .method /**/ public hidebysig specialname rtspecialname
instance void .ctor() cil managed
// SIG: 20 00 01
{
// Method begins at RVA 0x2069
// Code size 7 (0x7)
.maxstack
IL_0000: /* 02 | */ ldarg.
IL_0001: /* 28 | (0A)000012 */ call instance void [mscorlib/**/]System.Object/**/::.ctor() /* 0A000012 */
IL_0006: /* 2A | */ ret
} // end of method Program::.ctor
所以要将函数开头位置修改成红色字体代码这样就ok 了
.maxstack
.locals /*1100000B*/ init (class MarkdownPad2.Properties.Settings/**/ V_0,
class MarkdownPad2.Core.StartupHelper/**/ V_1,
valuetype MarkdownPad2.Core.StartupResult/**/ V_2,
string V_3,
string V_4,
string V_5,
valuetype [PresentationFramework/**/]System.Windows.MessageBoxResult/**/ V_6,
class MarkdownPad2.Licensing.UpgradeProWindow/*0200006A*/ V_7,
class MarkdownPad2.Licensing.UpgradeProWindow/*0200006A*/ V_8,
string[] V_9)
IL_0000: /* 17 | */ ldc.i4.1
IL_0001: /* 2A | */ ret
IL_0006: /* 73 | (06)000011 */ newobj instance void MarkdownPad2.Core.StartupHelper/**/::.ctor() /* 06000011 */
IL_000b: /* 0B | */ stloc.
直接修改了函数入口,进去就return true 了
保存好文件
3.利用ilasm.exe 将il文件重新编译为exe
使用资源管理器搜索ilasm.exe 一般在.net 框架目录下。在ilasm所在目录下打开cmd,输入以下代码。(自己根据自己的情况修改下)
ilasm /RESOURCE=C:\Users\xxx\Documents\makedown2.res C:\Users\xxx\Documents\makedown2.il
这样程序就编译成功了。
这样就解禁了很多功能。不过开始启动很慢,点击注册什么的还提示错误!
简单破解.net(C#)程序的更多相关文章
- 利用OD破解一个简单的C语言程序
最近在学习汇编(看的是王爽老师的<汇编语言(第三版)>),然后想尝试使用OD(Ollydbg)软件破解一个简单的C语言程序练练手. 环境: C语言编译环境:VC++6.0 系统:在Wind ...
- CrackMe的简单破解
[CrackMe的简单破解] 对于以下这样的输入账号和密码的窗口,我们可以猜测该程序使用最简单的机制实现,即用strmp来比较用户输入的密码和原始密码匹配.所以为了破解该程序,可以通过bp strmp ...
- 一个简单的P2P传输程序
写了一个简单的P2P传输程序,在P2P的圈子中传输文件,不过为了简便,这个程序没有真正的传输文件,只是简单的判断一下文件的位置在哪里.这个程序可以处理当有一个peer闪退的情况,在这种情况下,剩下的p ...
- 循序渐进做项目系列(2):最简单的C/S程序——消息异步调用与消息同步调用
上篇博客 循序渐进做项目系列(1):最简单的C/S程序——让服务器来做加法 实现了一个最简单的C/S程序,即让服务器来做加法.当时为了通俗易懂采用了消息异步调用的方式.今天我们要采用消息同步调用的方式 ...
- IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序
前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门文章的学习过程总结,难度不大,因为是入门.主要是入门UIImagePickerController这个控制器,那 ...
- iOS开发UI篇—简单的浏览器查看程序
iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: // // YYcar ...
- C#--简单的串口通信程序
前几天做毕业设计,其中要用到串口和下位机进行通信,于是自己捣鼓了一个简单的串口通信程序. 在做通信之前要先弄一个SerialPort组件出来,当然也可以通过程序来创建.本次设计中采用的是拖的winfo ...
- 分析Android程序之破解第一个程序
破解Android程序通常的方法是将apk文件利用ApkTool反编译,生成Smali格式的反汇编代码,然后阅读Smali文件的代码来理解程序的运行机制,找到程序的突破口进行修改,最后使用ApkToo ...
- 一个简单的MDI示范程序(Delphi)
http://www.cnblogs.com/pchmonster/archive/2012/01/07/2316012.html 最为一个巩固之前有关窗体和对象的有关知识,下面就建立一个简单的MDI ...
随机推荐
- java线程的简单实现及方法
java线程: 线程是一个程序内部的顺序控制流. cpu实际上在一个时间点上,只执行一个.只不过我们把cpu分成了多个时间片,由于速度很快,我们看起来像是多个线程.. 就像你的时间分成几片,这样 整体 ...
- hdu1251 字典树or map
一道字典树的题,不过看起来用map更为简单 传送门 题意: 给出一堆字符串构成一个字典,求字典里以某字符串为前缀的字符串有几个 思路: 输入字符串时把字符串的前缀全部存进map并标记次数 查询时直接输 ...
- [CareerCup] 17.9 Word Frequency in a Book 书中单词频率
17.9 Design a method to find the frequency of occurrences of any given word in a book. 这道题让我们找书中单词出现 ...
- thinkphp 关于iframe一次提交完成所有操作
一.上传操作html界面,upload.html <import type='css' file="admin.css.common" /> <import ty ...
- JS判断客户端系统 让ipad iphone 等手持设备自动跳到手机版
if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) { location.replace("http:// ...
- 【转】Eclipse 常用快捷键 (动画讲解)
Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率. 小坦克我花了一整天时间, 精选了一些常用的快捷键操作,并且精心录制了动画, 让你一看就会. ...
- maketrans translate
1. makestrans()用法 语法: str.maketrans(intab, outtab]); Python maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的 ...
- H5页面性能优化
对于一个产品,性能在用户体验中是必不可缺的一环.性能优化是个长远的事情,联想到导航项目,列出以下性能优化的方案: 一. 基本的代码层面优化: 1:合理使用css 1)正确使用Display属性 Dis ...
- .NET Framework (代码库、通用类型系统CTS、CLR) 简介
编译C#————>程序集(.exe..dll[MSIL]).元信息[数据信息].可选资源[图片.声音]) | | | ...
- Advanced REST client
好用的测试工具,老是忘记名字chrome插件 Advanced REST client