Autoplay Media Studio 8.5.3.0水壶如何破裂的故事

图片

不难猜测,茶壶就是我。

前几天,我想研究一个实用程序的来源,该实用程序显然是使用AMS工具(.exe旁边的.cdd文件和几个lua * .dll)制成的。 几年前,我详细分析了一个通过类似方式制作的程序,并且可以打包.cdd的想法,后者是带有密码的常规zip存档。 好吧, 毫不犹豫地推了AMSUnpacker,并收到了拆包错误。 好吧,从这一刻开始,乐趣就开始了...

我首先想到的是文件中装有UPX以外的其他文件(我自然将其解压缩)。 好吧,我只是没有检查它(DIE,Exeinfo PE,Nauz File Detector),每个人都说服我,不,它没有包装。 好吧,我想我将使用Total Commander将普通的.exe与以前解压缩的程序以及这个程序进行比较,结果发现.exe非常不同(我以前在AMS上比较了其他程序,实际上只是单个字节,而实际上是纯文本密码)。 .exe本身以及资源部分)。 显然,这是对AMS的某种修改,而只是一个新版本。 我很困难地相信了后者,知道了(嗯,起初我以为我知道)开发人员已经击败了该程序很长时间了,但是并没有开始检查它是​​否是这样,并且几乎不会给出任何东西。

我开始以某种方式在x64dbg中研究更多细节,我在“ You”上用它在旧版本的程序中找到了“读取”密码的位置。 在“新”版本中使用相同的x64dbg进行搜索后,事实证明它们并没有太大的不同,但是其中的功能要比旧版本多。 我在一个类似的地方找到了mov <something>和对某些其他函数的多次调用,而不是令人垂涎的push <存储密码的地址> ,并且代码下方的几行类似于旧版本中的代码。

图片
(左侧是旧版本,右侧是新版本)

在这里,我很伤心,因为我的调试器知识显然不足以理解所有这一切。
有一种想法-找到其他类似的不可解压缩程序并比较它们的.exe。 此类程序是由与我尝试解压缩的程序相同的作者找到的。 和文件比较给出了结果。 除了细微的差异外,还发现了完整的各种数据块:

图片

很高兴我发现了那个唯一包含密码的地方,并且失望的是它显然不是密码,其形式与以前的版本相同。

除了了解调试器之外别无选择。 整个“麻烦”在于,我在几个命令的级别上了解汇编器,非常肤浅地表示它们在做什么,而调试器本身在youtube上观看了几个视频,并且对使用它的经验很少,主要是通过“戳方法”。

在运行了一个小时的调试器并进行了无数次重新启动之后,我以某种方式找到了读取令人垂涎的字节的地方,不久之后,我发现了一段对这些字节进行一些处理的代码:

图片

花了很多时间来了解那里正在做什么。

我不知何故发现这是某种密码板,其中有两个表,一个是加密密码,其中相应的字符仅表示第二个记事本中的位置。

图片

通常,将下表的值替换为上表中的相应值,我们得到一个字节数组: 7B 10 DD 5A 4D 26 72 EE B2 2A 04 2B 6E F7 14 E2 F9 14 F8 9E 8A 99 28 AE B8 4B C0 D7 42 DA AD

对于需要解密的密码之前和之后的字节的其他唯一数组,我听不懂,但是我并没有做太多。 我怀疑有一些校验和...

然后由您决定将其转换为字符串,然后使用此密码解压缩珍贵的.cdd存档。 一个小问题是无法通过Ctrl + C-> Ctrl-V将结果行插入存档器,因为 剪贴板中的字符“中断”(尤其是没有深入研究本质)。 仅可以以编程方式打开包装。 幸运的是,您掌握了一些C#知识(其水平通常与调试器的知识水平相差无几),并且对研究上述AMSUnpacker的操作原理(也用C#编写)的经验很少,因此不难发现它的用途和方式。

几乎在膝盖上,他堆积了一个实用程序来检查先前研究的算​​法的可操作性,瞧,它起作用了。

您可以在此处下载。

图片

该程序类似于前面提到的AMSUnpacker,在.exe旁边创建带有.cdd存档内容的extracted_cdd文件夹。

成功解压缩令人垂涎的.cdd文件后,我了解到这是AMS 8.5.3.0的“新”版本(自2018年底起)。 在网站上,他们阅读了有关新版本的信息: 功能:增强了商业版本数据文件的安全性。 。 好吧,显然效果不是很好...

对于那些知道这种密码的算法,我有一个疑问。它是否是某些标准加密算法的一部分(我是说它现在可以在程序中使用,而从历史上讲不是),或者这仅仅是开发人员最有意的目标?

PS我知道,最容易通过修补的lua * .dll获取lua程序(使用AMS)的源代码,该lua * .dll在同一个lua * .dll中浏览Internet和/或lua_load()函数的外部挂钩。 这就是我曾经做过的一切。 在这种情况下,弄清楚如何获取.cdd密码是纯粹的体育兴趣。 而且我也很清楚,任何人不太可能会需要它并且不具有任何实际价值。

关于“茶壶”,我可能会夸大其词,因为 在编程和反向编程方面经验很少,但这只是“对我自己”的小爱好,没有太多时间或渴望深入研究它。

PPS这是我关于哈布雷的第一篇文章,大概是这类文章的第一篇。

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


All Articles