吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7007|回复: 66
收起左侧

[求助] dnspy破解某收费.net软件注册码的探讨

  [复制链接]
理想的海洋 发表于 2022-3-28 11:41
本帖最后由 理想的海洋 于 2022-3-31 17:19 编辑

1.有一款.net的收费软件 参考一个帖子的方法没有成功 参考链接如下
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1099138&highlight=dnspy

2.这个软件和以上帖子的很相似,搜索注册找到了关键代码
1.jpg
6.jpg

3.右键选择编辑方法  试了几个代码都提示编译错误
2.jpg
代码如下 有大佬能指点一下吗   原代码如下
[Asm] 纯文本查看 复制代码
using System;
using System.ComponentModel;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using DevComponents.DotNetBar.Controls;
using DevComponents.DotNetBar.Metro;

namespace IDCardReader.setting
{
        // Token: 0x02000009 RID: 9
        public partial class Setting : MetroForm
        {
                // Token: 0x06000113 RID: 275 RVA: 0x000113F4 File Offset: 0x0000F5F4
                private void btn_active_Click(object sender, EventArgs e)
                {
                        string text = this.tbl_license.Text.Trim();
                        if (!SecurityUtil.Verify(text))
                        {
                                MessageBox.Show("注册码错误了怎么办", "错误提示");
                                return;
                        }
                        MessageBox.Show("成功激活");
                        RegisterUtil.initRegistry();
                        RegisterUtil.SetValue("license", text);
                        if (MessageBox.Show("输入注册码后,重启后生效,是否立即重启", "是否重启", MessageBoxButtons.OKCancel) == DialogResult.OK)
                        {
                                Application.Restart();
                        }
                }
        }
}



结合帖子里的大佬的回复方法,nop掉if判断   可以激活了  但是程序有验证,重启失效
11.jpg 22.jpg 44.jpg

谢谢各位大佬出谋划策  这个软件的pj方法应该是有很多种,我用了两种方法都可以实现重启验证的pj

第一种:24楼的方法 搜索注册码错误 在错误提示的上面点击 SecurityUtil.Verify跳转  然后按照他发的图片把result改成result2  具体修改的几处他都贴了图片 参照修改保存即可。
第二种:45楼的方法 在注册码错误提示上面有个if函数 直接删除掉  然后把 IDCardReader.finishTrial = true; 这一句改成IDCardReader.finishTrial =false  也可以的

还有其他大佬的多种方法由于自己初学看不懂不知道如何操作,不过最感兴趣的还是62楼大佬的方法,说是RSA加密 可以用公钥和私钥,直接模拟生成注册码  不知道是不是不用pj和分析主程序
直接能通过两个秘钥文件生成注册码,还在继续学习研究中。

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
童子晴 + 1 热心回复!
timeni + 1 + 1 用心讨论,共获提升!
shiyucj + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

gksj 发表于 2022-3-29 02:21
本帖最后由 gksj 于 2022-3-29 13:00 编辑
zhanglei1371 发表于 2022-3-28 20:27
因为代码没有加壳,所以直接编辑方法就OK了。
按byh3025的修改方案修改后,找到load部分,这样修改:
上 ...

你这样改没用的,你往上看在你之前我发的回复
[C#] 纯文本查看 复制代码
if (IDCardReader.finishTrial && formName != "setting")
                        {
                                MessageBox.Show("该版本为试用版本或者使用管理员权限运行该软件,试用期结束", "激活通知");
                                return;
                        }

在点击窗体按钮的时候检测了IDCardReader.finishTrial的值
如果是true就直接返回了
试用到期还是用不了
所以
QQ截图20220329022253.png
这样是最彻底的解决方案,加载完标题不进行注册表操作直接赋值false

所以说写代码要考虑所有的可能性,把所有相关的条件都处理好

还有经过我对整个程序的分析,发现这个软件即使注册了也还是试用版
因为把秘钥正确写入注册表之后根本就没有读取这个秘钥
所以注册完之后估计作者会发一个正式版的软件

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zhanglei1371 + 1 + 1 用心讨论,共获提升!

查看全部评分

byh3025 发表于 2022-3-28 14:44
rz66 发表于 2022-3-28 11:55
Panel 发表于 2022-3-28 11:58
这应该发错板块了吧?正确板块应该是求助区
 楼主| 理想的海洋 发表于 2022-3-28 12:02
Panel 发表于 2022-3-28 11:58
这应该发错板块了吧?正确板块应该是求助区

我看这个属于.net   就选择这个板块了  
vipcrack 发表于 2022-3-28 12:13
SecurityUtil.Verify(text) 验证在这里面
慕若曦 发表于 2022-3-28 12:13
编辑IL代码,把17行的if语句反转就行了。
jidesheng6 发表于 2022-3-28 12:32
提示编译不了的时候你可以滚动一下滚轮,会发现新天地,这种情况你只能编辑il代码了,一般都是dnspy的反编译器编译出来的语法有问题,要么自己修复要么编辑il,后者更快点
列明 发表于 2022-3-28 12:36
删掉return;应该就好了。
 楼主| 理想的海洋 发表于 2022-3-28 12:45
jidesheng6 发表于 2022-3-28 12:32
提示编译不了的时候你可以滚动一下滚轮,会发现新天地,这种情况你只能编辑il代码了,一般都是dnspy的反编 ...

为了能让编辑器没问题 特意安装了win7 的虚拟机 .net4.6   dnspy没问题其他的都可以编译 估计还是我语法有问题  
 楼主| 理想的海洋 发表于 2022-3-28 12:46
慕若曦 发表于 2022-3-28 12:13
编辑IL代码,把17行的if语句反转就行了。

反转代码我写不好 一直报错 再麻烦指导一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 05:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表