我也不知道成功没有的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放在外面真的是一件危险的事情啊……没错这篇文章要说的就这个
接下来的楼放几个文件的文本内容,看看我抢不抢得到自己的二楼?
这个东西能不能用只有天才知道,反正我是不用的
顺带一提
这个软件使用了ZipLib的库,把关键程序和dll都放到了资源里,运行时调用。
另一个比较暴力的方法
先把解压以后的资源导出来,然后修改后,用这个库内置的压缩函数压回去,然后做替换。
上一张修改了版权,并没有Crack的图
本帖最后由 艾莉希雅 于 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>能不能用天才知道 感谢楼主详细分析 厉害了,大佬 你们怎么这么牛 学习下,看不明白呢 学习学习验证,谢谢分析 记账软件用过几个,最后还是没管住自己乱花钱的毛病 大神,看不懂的,谢谢分享