吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 59780|回复: 138
收起左侧

[.NET逆向] xx财务记账软件正式版 -- 追码/注册机

    [复制链接]
爱飞的猫 发表于 2015-9-18 00:12
本帖最后由 小生我怕怕 于 2019-6-7 00:16 编辑

之前做了个网络版的追码/加密狗的破解(http://www.52pojie.cn/thread-411667-1-1.html),这次来搞单机版的注册验证。

保护强度其实很弱,建议先自行破解试试。另外该系列的个人家用版的算法一样,只是两个值不同;密码管理器则与网络版的类似,除了没有加密狗验证。

零、免责声明
本文仅供学习交流只用,商业用途请使用正版。

本人不对使用破解版造成的坏账负责,真的。

(另外使用正版造成的坏账请联系开发商)

一、准备工作
和以前一样,直接用 de4dot 反混淆然后喂给 Reflector 就行了,这里不多说了。

二、进入程序内部
右键模块,选择「Go to Entry Point」,来到程序入口,可以看到程序首先载入登录窗口「dlgLogin」,然后载入程序主窗口「Main」。
entry.png

点进去主窗口,在左边的对象找到注册按钮:
reg-btn.png

接着点进去,可以看到又是调用「dlgReg」窗口:
[C#] 纯文本查看 复制代码
private void method_57()
{
    new dlgReg().ShowDialog();
}


再点 dlgReg 进入窗口看看怎么储存注册信息的,如果算法在这里的话就更好了:
[C#] 纯文本查看 复制代码
private void buttonReg_Click(object sender, EventArgs e)
{
    if (!DevFunc.TextEditMsgEmpty(this.textBoxName, "请输入您的注册用户名!") && !DevFunc.TextEditMsgEmpty(this.textBoxSN, "请输入您的注册吗!"))
    {
        RegServer.ThisObj.SaveReg(this.textBoxName.Text.Trim(), this.textBoxSN.Text.Trim());
        PublicFunc.MsgSuccess("注册信息已保存,请重新启动软件系统进行验证!");
        base.DialogResult = DialogResult.OK;
        DataMgr.Instance.CloseDb();
        PublicFunc.ExecFile(Application.ExecutablePath, false, new string[] { Process.GetCurrentProcess().Id.ToString() });
    }
}


看样子并没有在这里验证序列号的有效性,内容是通过 RegServer 这个类里面的内容储存的,那么读取是不是也在这里面?

点进去,果然有一个验证是否注册的函数「IsReg」:
isreg.png

简单说下这段代码的作用:
1. 用户名、序列号不为空。
2. 通过序列号取得的用户名需要与用户名相同。

由此可见,算法就在「GetNameBySN」这个方法里面了。

三、追算法
点进去一看,结果就一行代码(…):
[C#] 纯文本查看 复制代码
public string GetNameBySN(string strSN)
{
    return SLEncrypt.smethod_1(strSN);
}


SLEncrypt 类的原型如下:
[Asm] 纯文本查看 复制代码
public class SLEncrypt
{
    // Fields
    public static string EncryptKey;
    public static string EncryptVect;

    // Methods
    static SLEncrypt();
    public SLEncrypt();
    public static string smethod_0(string encryptStr);
    public static string smethod_1(string encryptedValue);
    public static string smethod_2(string encryptStr, string key, string IV);
    public static string smethod_3(string encryptedValue, string key, string IV);
}


然后就是搞懂每个函数的作用了。
smethod_0:加密字符串,使用预设的密钥。
smethod_1:解密字符串,使用预设的密钥。
smethod_2:加密字符串,使用参数传递的密钥。
smethod_3:解密字符串,使用参数传递的密钥。

这么看的话,只要我们调用「SLEncrypt.smethod_0」就能取得正确的注册码了。


四、写辅助程序
引入反混淆后的主程序,然后一句话生成注册码:
[C#] 纯文本查看 复制代码
Console.WriteLine(CashFlowManager.SysManage.SLEncrypt.smethod_0("Jixun // LCG"));


生成后给程序一看,咦,怎么还是显示未注册?

其实,程序在「RegServer」这个类初始化的时候悄悄的把密钥给改掉了(…)。具体可以通过分析类成员看到:
analyze-member.png

[C#] 纯文本查看 复制代码
    SLEncrypt.EncryptKey = "2008-10-10";
    SLEncrypt.EncryptVect = "xysoft2008";


然后改掉我们的算号代码,再喂给程序试试,果然可以了:
[C#] 纯文本查看 复制代码
Console.WriteLine(CashFlowManager.SysManage.SLEncrypt.smethod_2("Jixun // LCG", "2008-10-10", "xysoft2008"));


xyabout.png

五、用户名单验证
这个软件有客户验证,因此单纯的算号并没有什么卵用。

虽然不知道为什么测试的时候并没有触发暗桩 (内置的是黑名单?),但是保险起见还是干掉这个验证 (CashFlowManager.SysManage.CrackHandler 内的 Check、CheckFile 以及 GetDll,顺便干掉联网下载链接库):
patch_content.png

然后保存即可:
save-edit.png
用户名:Jixun // LCG
序列号:mXxbzXoMMPXZ6GSOvbx3RHTj0Mw9YA==
星宇财务单机版注册机.rar (4.2 KB, 下载次数: 2073)

去除验证后的文件:http://pan.baidu.com/s/1eQk6SQA#9999
提取码:9999

免费评分

参与人数 32威望 +2 吾爱币 +6 热心值 +32 收起 理由
s1053747295 + 1 + 1 我很赞同!
泺颜 + 1 + 1 用心讨论,共获提升!
skyzxf2010 + 1 + 1 现在才发现明细里有小半个月的数据被吞了
taiyangpj + 1 + 1 用心讨论,共获提升!
blackSheep + 1 + 1 谢谢@Thanks!
yywyf0001 + 1 + 1 谢谢@Thanks!
shidaxiang + 1 热心回复!
ZF0806 + 1 热心回复!
honghuli77520 + 1 已答复!
jlbboy + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
bet365china + 1 谢谢@Thanks!
g321 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
my1229 + 1 支持楼主的NET破解详细教程,学习了。
qiaomang + 1 楼主乃神牛丫
slk + 1 楼主是隐藏很久的大牛
vigers + 1 已答复!
xaiwant + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
catboy + 1 求易芝注册机,哈哈
浪淘沙 + 1 热心回复!
haoren + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
酒醒黄昏 + 1 谢谢分享
125733578 + 1 我很赞同!
yag2007 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
tzxinqing + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
TMTT + 1 很不错,留名备用 。
skingnemo + 1 这个提取码真心不错!!!
dapang + 1 谢谢@Thanks!
sgh2zlx + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
逍遥枷锁 + 1 谢谢@Thanks!
kalsc45 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
Sound + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
nrtzz + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| 爱飞的猫 发表于 2015-10-28 16:45
准女婿 发表于 2015-10-23 18:34
想问一下,“四、写辅助程序
引入反混淆后的主程序,然后一句话生成注册码:”这步是怎么操作的?

http://www.52pojie.cn/thread-411667-1-1.html

搜索關鍵字「附、引入应用程序作为模块调用」,然後粘貼代碼就可以了。

也可以直接把這個類的代碼拷貝過去,就不需要添加引用了。
sgh2zlx 发表于 2016-2-1 09:31
jixun66 发表于 2016-1-22 21:37
.. 请使用正版软件,我去把免责声明加上。

我发现出现这个情况不是软件的问题,是明细查询时没选择“全部”,系统默认只查询进30天的,改为“全部”就行了,我也在用,没问题的。还有请大牛能不能录个视频什么的,我等菜鸟实在弄不太懂教程后半部分的操作。
Shock 发表于 2015-9-18 03:54
     分析的 不错 支持楼猪 NET玩的炉火纯青啊
soulovess 发表于 2015-9-18 05:58
支持楼主发帖,楼主讲的很详细,还是喜欢楼主发的“加密狗”帖子。。
wolf191 发表于 2015-9-18 06:31
支持楼主发帖,楼主讲的很详细
88酷行天下 发表于 2015-9-18 06:59
谢谢分享。。。。。。。。。。。。
东苑 发表于 2015-9-18 07:24
这个很多能用得着。
蚯蚓翔龙 发表于 2015-9-18 07:28
估计又是火钳了
爱自由 发表于 2015-9-18 08:14
支持一下了,感谢分享
sgh2zlx 发表于 2015-9-18 08:28
这么牛!只有往死里顶了
a5680497 发表于 2015-9-18 08:33

感谢分享这个先收藏,暂时用不到
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-17 03:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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