最近逛论坛的时候,无意发现一款编程语言转换软件,该软件可以将现有C#语言转换成C++。同时该网站还包含其他语言转换工具,如果没有许可证,每个文件的转换输出限制为100行。正好最近有空,分析学习看看该软件的注册方式,顺便可以提高一下自己的算法分析能力,接下来让我们一起来看看。
2、查壳
1.png (27.62 KB, 下载次数: 0)
下载附件
2022-3-10 11:05 上传
.Net拖进dnspy查看
2.png (8.28 KB, 下载次数: 0)
下载附件
2022-3-10 11:08 上传
发现是.NET64,类名已经被混淆,简单看了下方法,还能看,直接动态调试。
3、调试
拖入dnspy,直接运行,窗口名称显示Free Edition,搜索
3.png (5.74 KB, 下载次数: 0)
下载附件
2022-3-10 11:16 上传
关键值为
App._g0
,查找变量分析
4.png (6.12 KB, 下载次数: 0)
下载附件
2022-3-10 11:20 上传
只需要让App._g0返回false即可,查找方法调用_g102(),需让该方法返回true
5.png (17.55 KB, 下载次数: 0)
下载附件
2022-3-10 11:27 上传
分析需要将App._g118返回false
6.png (9.46 KB, 下载次数: 0)
下载附件
2022-3-10 11:31 上传
观察分析该方法是判断软件授权时间是否过期,需要找上个方法看赋值的地方
7.png (10.08 KB, 下载次数: 0)
下载附件
2022-3-10 13:28 上传
8.png (12.73 KB, 下载次数: 0)
下载附件
2022-3-10 13:28 上传
赋值字符串首先读取加密字符串,然后去除头尾3个字符,间隔获取字符后再反序生成
9.png (12.91 KB, 下载次数: 0)
下载附件
2022-3-10 13:38 上传
两个赋值地方都是从文件反序列化读取的键值,配置文件默认保存到C盘
C:\Users\***\AppData\Roaming\***\C# to C++ Converter\C# to C++ Converter.usr
打开文件参考其他节点增加两组节点{"Key":"Order Number","Value":"12345"},{"Key":"Standard Reg Code","Value":"12345"},重新运行
10.png (13.74 KB, 下载次数: 0)
下载附件
2022-3-10 13:50 上传
该方法会联网请求注册信息
11.png (15.67 KB, 下载次数: 0)
下载附件
2022-3-10 13:56 上传
12.png (13.72 KB, 下载次数: 0)
下载附件
2022-3-10 13:58 上传
接着判断输入值长度是否大于7,是否包含‘-’、‘*’等字符,接着判断_g4082._g4107(_p0);
13.png (12.41 KB, 下载次数: 0)
下载附件
2022-3-10 14:02 上传
分析该方法,输入的第二组"Standard Reg Code"值需满足以下条件
长度=15 (0 1 2 3 4)字符必须是数字 (3 4)组成的十进制数必须是质数 (5 6)不是特殊字符,字母即可 (7 8 9)都为数字 9必须是2的整数倍 (10 11 12)是字母即可
(13 14)必须是数字,并且13需小于14 (0 14)组成的十进制必须是质数。根据规则,构造相应注册码98717AB178AAA47,保存文件重新运行
14.png (7.6 KB, 下载次数: 0)
下载附件
2022-3-10 14:15 上传
判断是否为质数
15.png (5.55 KB, 下载次数: 0)
下载附件
2022-3-10 14:16 上传
中间字符判断
16.png (11.59 KB, 下载次数: 0)
下载附件
2022-3-10 14:21 上传
_g52 g53 g54分别从文件获取键值(Ticks at Reg Code Entry,Extension Ticks,Promotional Subscription),参考上方构造3组值,前两组是long型数据,第三个是bool,通过后面逻辑分析可知
第一组值是注册时间,第二个是可用时间,第三个是是否订阅标志,时间类型是DateTime.Now.Ticks,用C#调用编写代码获取一组值637765920010000000,31241376010000000
17.png (6.53 KB, 下载次数: 0)
下载附件
2022-3-10 14:28 上传
最终构造5组数据,完成软件注册,效果如下图
18.png (12.59 KB, 下载次数: 0)
下载附件
2022-3-10 15:01 上传
其他语言转换工具判断逻辑一样。
4、附录
附上官方网址https://www.tangiblesoftwaresolutions.com