.NET 程序反编译破解

前两天遇到一个.NET写的一个程序,激活软件需要激活码,还绑定机器。

于是准备尝试破解

首先进行查壳,看一下软件是否加壳

可以看到,软件采用C#开发,没有进行加壳

首先想到的破解工具就是OD(Ollydbg)

将该程序拖入OD中进行调试,在中文搜索引擎中找不到“注册失败”字样

这就很无语,于是就在网上找.NET程序破解相关资料,通过不断的尝试,最终找到了一款合适的神器(dnSpy)

将程序拖入dnSpy中

软件直接把程序里面的函数给显示出来了

在register中,找到了关于注册成功与失败的相关代码

当然可以通过修改这里的代码来实现随便输入序列号就达到注册成功的效果,但是,我想要打开不用输入直接使用软件

既然这个窗口是以提示框的形式出现的,那么肯定在父窗口中有调用这个register窗口的。

程序入口代码:

using System;
using System.Windows.Forms;

namespace xxxx
{
    // Token: 0x02000005 RID: 5
    internal static class Program
    {
        // Token: 0x06000025 RID: 37 RVA: 0x000054ED File Offset: 0x000036ED
        [STAThread]
        private static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());//这里创建了窗口form1,于是可以在form1的启动函数那里找相关代码
        }
}

再往下面找form1的初始化函数

于是可以右键修改函数

修改后的代码如下:

然后最后一步导出程序即可

打开破解后的软件,窗口中的按钮也没有被禁止,也没有出现需要注册的弹窗。

破解完成!

本文章仅为学习交流使用,切勿使用本文章进行非法用途!!

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注