TurboConf安全研究

大家好! 我决定与社区分享有关对一个小实用程序(带有混淆代码)的小分析的信息,这些小实用程序以1s昵称的狭窄圈子为人所知。 这是我关于哈伯的第一篇文章,我要求你不要踢太多,但值得批评。

免责声明

您在此处看到的所有内容都可能影响您的心理能力,请不要自己使用本文中描述的内容,因为这可能会伤害您。 作者对所提供信息的准确性,完整性或质量不承担任何责任。

这是什么

TurboConf是一个“共享软件”程序,它扩展了1s配置器的功能, 而不是 1s的扩展,它不需要安装。 您可以将其下载到Runet的同名网站上。 所有研究均于2019年9月27日在版本5.9.7209.21363上进行。

初步分析

下载后,我们将获得一个zip存档。 打开包装。 我们看到几个exe文件。 我们来看带有公司图标的主应用程序。 如果在简单的HEX编辑器(例如HxD)中打开它,则可以轻松地理解它是.Net Framework下的程序集,因为标准.Net库的类名是可见的:

HxD中的TurboConf
图片

接下来,我们使用DotPeek反编译器,并在其中查看该程序集。 字节码不会被混淆,因此反编译器会生成几乎原始的源:

恢复的方法代码
图片

在这里很容易理解,该实用程序的进一步工作移到了应用程序“ TurboConf.Application.exe”。 在DotPeek中打开它。 这也是带有IL代码的程序集。 但是与以前的程序集不同,这里的某些方法被混淆了,很可能使用Confuser。 通过研究代码,可以清楚地看到工作的主要逻辑在“ TurboConf.Service.dll”中-这也是.Net的程序集,并且某些方法也被混淆。 太好了,这更有趣!

国防研究

在查看程序集结构时,在名称空间“ TurboConf.Service.Utils”中,我们找到了“ Crypto”类,并且其中有一个名为“ DecryptStringAES”的方法:

DecryptStringAES方法
图片

尽管它被混淆了,但是将来从中恢复工作逻辑并不困难。 找到此方法的用法(Shift + F12):

搜索结果
图片

并立即成功! 在负责许可的类的构造函数中,此方法被调用2次!

源回收

混淆器将所有行加密,然后将它们放在一个资源文件中。 您可以使用Windows SDK(不仅限于)中包含的Microsoft ildasm.exe反编译器来获取此文件:

检索资源文​​件
图片

混淆器代替原始行,而不是代码中的以下构造:“ <Module> .c(random_arithmic_operation)”,其中算术运算的结果为某个数字,基于该数字计算资源文件的偏移量,然后从中提取加密数据并恢复原始字符串。 为了简化解密字符串的任务,我们将在Visual Studio中创建一个新项目,并稍加改进就转移类“ <Module>”和资源文件“ resource”。 因此,我们可以理解,在DotPeek窗口中,以下代码

<Module>.c(sizeof (float) - 47, sizeof (int) + 6429, (int) ((uint) k >> 16) >= 0 ? sizeof (int) + 200 : System.Type.EmptyTypes.Length - 1805516213) 

这是“用户:”行

慢慢恢复许可类的整个逻辑。 我们可以停止这样做,也就是说,对正在检查的“ TurboConf.Service.dll”文件进行简单的黑客攻击,用不等式替换许可证的等式检查,但这并不有趣。 进一步...

保护原则

要获得许可证,您需要运行该程序的设备的唯一标识符。 该硬件ID是基于处理器标识符和“ Ts”驱动器卷的序列号生成的。 为了获得试用许可证,该程序发出带有设备标识符的GET请求,该标识符用于域“ netlenka1c.ru”。 随之而来的是一个密钥,该密钥指示了试用期的结束日期,并通过数字方式进行了签名。 该程序基于带有1024位密钥的非对称RSA算法。 在这一阶段,我意识到不修改原始文件是不可能的,因为几乎不可能获得私钥(它不在实用程序文件中)。

迷你授权中心

了解了保护的工作原理后,我决定让自己成为该程序的小神,以便我自己能够生成密钥。 为此,开发了一个修补程序,该修补程序首先用生成的公钥本身替换程序集中数字签名的公钥:

修补程序
图片

然后,用于生成密钥的开发实用程序(在指定的有效期内是临时的,并且是永久的),根据所生成的私钥本身向密钥添加数字签名:

Keygen
图片

结果,我们有了一个具有完整功能的可行注册程序:

关于程序
图片

品德

混淆是混淆反向的一种很好的方法,但这只是时间问题。

聚苯乙烯

该文章在叙述上特别存在空白,以免替代该程序的作者。 没有附带源代码和工作程序,将来也不会。 尊重他人的工作,尤其是“商店”中的同事!

感谢阅读这篇文章的每个人!

Source: https://habr.com/ru/post/zh-CN480280/


All Articles