我需要编写一个脚本,该脚本将从客户端文件中提取所有数据,而无需启动在其中创建它们的应用程序。该应用程序将所有数据保存到 XML 文件中,在压缩文件之前仅加密所述文件的内容,并且最后更改压缩文件的扩展名,使其“更难”识别。
该应用程序有一个文本查看器,它将显示客户端文件中的部分数据,但不是全部,这使得我和我的同事必须将复制该文本并在我们需要的所有其他区域中的字段中进行切换从中提取数据。尝试使用应用程序本身很慢而且几乎没有用,因为它存在可怕的内存问题,导致它不断崩溃。
无论如何 - 我能够弄清楚一些基础知识,因为加密似乎相当弱,或者至少很容易看到它使用的模式。我将要使用的每台机器上的每个客户的每个客户端文件对于相同的字符都将具有相同的输出。所有文件之间的加密都是相同的。
它更改三个字符的块(在每个三个字符块的开头添加一个字符),从第四个重新开始。=
似乎是一个空字符。例如:A
成为QQ==
、AA
是QUE=
、AAA
是QUFB
、AAAA
是QUFBQQ==
我已经找到了基础知识,它只是所有已更改的 Unicode 字符的列表,例如QQ==
将是A
、Qg==
是B
、Qc==
是C
,我们移动到RA==
for D
、RQ==
for E
,然后循环遍历字符表。
当我们在字符串中引入第二个和/或第三个字符时,它开始变得有趣,就像它现在有ITA=
for一样!0
,并且向前移动四个字母数字字符,如下所示:ITE=
for !1
,ITY=
for!6
和回滚到ITc=
for !7
,直到IT8=
for!>
再移动到第二个位置的下一个字符并像这样重新IUA=
开始!?
。等等。
无论如何,我会喜欢一些关于这里的一些事情的指示。我如何获取我所知道的并找到算法?从那里,我如何使用它来解密其余数据?