简单破解.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.0 IL_0001: /* 6F | (0A)000011 */ callvirt instance int32 [mscorlib/*23000001*/]System.String/*01000013*/::get_Length() /* 0A000011 */ IL_0006: /* 16 | */ ldc.i4.0 IL_0007: /* 31 | 02 */ ble.s IL_000b .line 22,22 : 17,29 '' //000021: { //000022: return true; IL_0009: /* 17 | */ ldc.i4.1 IL_000a: /* 2A | */ ret .line 26,26 : 17,30 '' //000023: } //000024: else //000025: { //000026: return false; IL_000b: /* 16 | */ ldc.i4.0 IL_000c: /* 2A | */ ret } // end of method Program::test .method /*06000003*/ public hidebysig specialname rtspecialname instance void .ctor() cil managed // SIG: 20 00 01 { // Method begins at RVA 0x2069 // Code size 7 (0x7) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 28 | (0A)000012 */ call instance void [mscorlib/*23000001*/]System.Object/*01000001*/::.ctor() /* 0A000012 */ IL_0006: /* 2A | */ ret } // end of method Program::.ctor
所以要将函数开头位置修改成红色字体代码这样就ok 了
.maxstack 6 .locals /*1100000B*/ init (class MarkdownPad2.Properties.Settings/*02000072*/ V_0, class MarkdownPad2.Core.StartupHelper/*02000006*/ V_1, valuetype MarkdownPad2.Core.StartupResult/*02000007*/ V_2, string V_3, string V_4, string V_5, valuetype [PresentationFramework/*23000002*/]System.Windows.MessageBoxResult/*01000091*/ 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/*02000006*/::.ctor() /* 06000011 */ IL_000b: /* 0B | */ stloc.1
直接修改了函数入口,进去就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
这样程序就编译成功了。
这样就解禁了很多功能。不过开始启动很慢,点击注册什么的还提示错误!
签名档:
从事网络安全和编程的我,很希望能找到志同道合的朋友交流。
欢迎cn博客的好友拍砖,留言。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· ShadowSql之.net sql拼写神器
· Excel百万数据如何快速导入?
· 无需WebView,Vue也能开发跨平台桌面应用