艾莉希雅 发表于 2018-11-21 16:54

我也不知道成功没有的XX家庭理财软件破解笔记

本帖最后由 艾莉希雅 于 2019-6-23 22:15 编辑

今天在肝ff14……@青春丿易逝 貌似捡到了一个软柿子,我也捏一下玩玩这篇文章没有营养
主要就是看见把pubkey放在外面很新奇而已这东西半小时捏爆,及其舒适。但是因为过于诡异怀疑有可能有暗桩什么的,一句话就是作者不至于这么诡异吧?
首先打开软件

直接搜索关键文本,“稍后注册”

可以很快的定位到软柿子的要害部位
// Mayu.Tally.WinUI.Admin.FrmReg
// Token: 0x06000D85 RID: 3461 RVA: 0x0011C748 File Offset: 0x0011A948
private void btnReg_Click(object sender, EventArgs e)
{
      string text = this.txtRegFile.Text.Trim();
      if (!File.Exists(text))
      {
                MessageBoxMy.WinMsg(this, "注册文件不存在,请重新选择", MessageBoxIcon.Hand);
                this.btnFile.PerformClick();
                return;
      }
      if (!WinUIComm.ValidRegFile(text))
      {
                MessageBoxMy.WinMsg(this, "不是注册文件,请重新选择", MessageBoxIcon.Hand);
                this.btnFile.PerformClick();
                return;
      }
      File.Copy(text, WinUIComm.fnPath, true);
      WinUIConfig.MainForm.Chk();
      MessageBoxMy.WinMsg(this, "注册成功!\r\n \r\n如果注册用户以前使用了其他姓名记账,可以在‘管理/设置’-‘人员/机构’中,合并到注册用户。", MessageBoxIcon.Asterisk);
      base.Close();
}
可以看出这个框框还真的是放个文件而不是填写注册码的……(废话)
WinUIComm.ValidRegFile可以看出是校验文件是否合法的玩意
// Token: 0x060007E6 RID: 2022 RVA: 0x0009E90C File Offset: 0x0009CB0C
                public static bool ValidRegFile(string path)
                {
                        bool result;
                        try
                        {
                              string[] array = File.ReadAllLines(path);
                              string a = Encryption.StringDecryptRij(array, "探针水滴'家庭财务8-0");//解密
                              if (a == "tryUser" || a == "freeUser")//对比字符串
                              {
                                        result = true;
                              }
                              else
                              {
                                        string text = File.ReadAllText(Application.StartupPath + "\\data\\fn.mdw");//获取pubkey
                                        if (Encryption.StringVerifySignaRSA(text, array, array))//签名校验
                                        {
                                                result = true;
                                        }
                                        else
                                        {
                                                result = false;
                                        }
                              }
                        }
                        catch
                        {
                              result = false;
                        }
                        return result;
                }
在这里我们可以得出如果解密字符串结果是tryUser或者是freeUser就不用经过下面的签名校验
当然因为普及版用户有限制所以我们不考虑使用普及版



3ETnFdP3HyidREOFN2PC+w==
这里比较灵性的一点就是那句string text = File.ReadAllText(Application.StartupPath + "\\data\\fn.mdw");
它获取公钥居然是读某一个文件……这个操作让RSA安全性荡然无存啊
看完这一段,大致的破解思路就有了,先把某段字符串加密成密文构造key的第一段,然后再对第一段签名构成第二段……
那么怎么加密怎么签名呢?善良的作者给我们准备好了一切……

我能说什么呢……直接拿来用就好了鸭XD

拿来主义就是好对不对……
这里要说一下的就是公钥的替换,密钥生成这段网上一抓一大把就不用说了。
接下来就是构造key的愉快时间
替换掉fn.mdw的公钥
对原文(ID&任意)加密一下RRvW+R/ctA3Cw1LCCV1wWA==
然后再签个名5e/RBlm2+irZyyHNfTzFnQZW0qCU8+8RU9nfb/vFMn60JSkHaK1gV2/pKYXnuD44qlSFeTa9cNGLV718OQUWX+7LbdrTHEsCgwTLu79fvWrafwe+55f18pqS89HSma652oXNSZ/ezAgLml2IMHaMF1hYM9+HmYtnYVBI9nojwMg=
接下来就……

不过把pubkey放在外面真的是一件危险的事情啊……没错这篇文章要说的就这个
接下来的楼放几个文件的文本内容,看看我抢不抢得到自己的二楼?
这个东西能不能用只有天才知道,反正我是不用的

云在天 发表于 2018-11-21 17:46

顺带一提

这个软件使用了ZipLib的库,把关键程序和dll都放到了资源里,运行时调用。

另一个比较暴力的方法

先把解压以后的资源导出来,然后修改后,用这个库内置的压缩函数压回去,然后做替换。

上一张修改了版权,并没有Crack的图

艾莉希雅 发表于 2018-11-21 16:55

本帖最后由 艾莉希雅 于 2018-11-21 17:57 编辑

备用二楼
注册文件.fnk
RRvW+R/ctA3Cw1LCCV1wWA==
5e/RBlm2+irZyyHNfTzFnQZW0qCU8+8RU9nfb/vFMn60JSkHaK1gV2/pKYXnuD44qlSFeTa9cNGLV718OQUWX+7LbdrTHEsCgwTLu79fvWrafwe+55f18pqS89HSma652oXNSZ/ezAgLml2IMHaMF1hYM9+HmYtnYVBI9nojwMg=

替换的fn.mdw
<RSAKeyValue><Modulus>79txlllfrJPUQzIRQfYw5IkCudJkckNpXAsEa0m3wXsuB2/E/8CxP04jx16+mKy5ePVbFD82g761U5mZ3yUXtzqK4dhh/v8mc17AvN4XSUx6lASKuRIL4QpjcAUYwEkWICbMk4xweO7tMNXUPhdsiP0lYdWG6qJUh56c18wrOAk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>能不能用天才知道

正中间 发表于 2018-11-21 17:15

感谢楼主详细分析

内裤超人 发表于 2018-11-21 17:52

厉害了,大佬

guohaijian 发表于 2018-11-21 18:29

你们怎么这么牛

jlmeor 发表于 2018-11-21 19:12

学习下,看不明白呢

liangfer 发表于 2018-11-21 22:09

学习学习验证,谢谢分析

tydzjing 发表于 2018-11-21 23:17

记账软件用过几个,最后还是没管住自己乱花钱的毛病

sht9067155 发表于 2018-11-22 00:48

大神,看不懂的,谢谢分享
页: [1] 2 3 4
查看完整版本: 我也不知道成功没有的XX家庭理财软件破解笔记