图灵脚本解密开始

作者:ycosxhack
来源:余弦函数

文章首发在创宇-灰剑论坛的解密经验交流版块,哈哈,无聊而写,实在不知道写什么。过些天要写的估计会多起来。本文沾了图灵的光。因为我一直对人工智能挺感兴趣的:

确实有点科普。其实我以前写了好些脚本解密原理的文章。只要认真看下来,能解决N多问题。方法古老而经典。我不想浪费时间重新写文章。来点创新的。YY的。什么是图灵,图灵测试,大家自己百度百科一下了。本文简直是杀鸡用了牛刀,都搬来了图灵测试……我们的最终目的是寻找一条脚本解密捷径。其实大家可以直接看第三点:解密捷径。前面两点实在很科普。

一、图灵矛盾
图灵这个人一直在坚持强调:“机器将会有思维!”而且有可能出现《i robort》里的情况。人类怎么办?是我们创造的机器!(那有什么怎么办?正常,呵呵)。回到我们的解密上来,脚本乱码有效地执行了,js or vbscript以浏览器为运行环境,被浏览器解释执行,现在你要思考的问题是:浏览器为什么识别了这段乱码?(这是目前人类比机器优秀的地方,学会思考,哈哈)。

以下拿最最流行的js说,其它脚本原理一样,细节自然不一样。

浏览器被设计成可以读js,并提供强大的DOM树形结构,方便js操作浏览器页面(js可以直接操作DOM节点,vbscript必须先创建一个 DOM解析器对象)。那么在客户端的浏览器能读C#/PYTHON吗?当然不能,C#/PYTHON有自己的编译或解释运行环境。你能读日语吗?不能,因为你没生活在日本(不考虑小概率事件,即我不考虑现在正在看此文的人很会日语,这个概率太小了,呵呵)。

那么机器能读懂js吗?当然,要内部翻译一下,在浏览器的背后还有操作系统,底下有驱动,然后继续翻译成机器可以直接识别的二进制码。我们有必要直接读这个二进制码?然后逆向出js明码?我们不用的。翻译成二进制是机器的逻辑,我们的逻辑是什么?机器是一个整体,他不仅仅是硬件,他还包括板级支持包(嵌入式的话),驱动,系统软件,应用软件等。这就像人类,不仅仅包括麻木的肉体,还包括感应器官,神经中枢,思维。这就是我们的逻辑。我们要选择最有利的途径去读js乱码。

回到开始的问题上:浏览器为什么识别了这段乱码?

根据狭义人工智能选择原理(注:我自创),因为这段乱码要在浏览器上有效地执行,所以浏览器必须可以识别。否则这些乱码怎么有效执行?哈哈,说了等于没说。其实是这样的,我们确实应该寻找最有利的途径去读js乱码。如果你的思维足够奇怪,能模拟浏览器那样直接将乱码还原成明码,然后读,这就像某些天才,那么小的时候就会看懂N个国家的语言!!!那么这篇文章就不适合你读了。你太强了!

二、图灵悖论
著名且流行的例子:CAPTCHA(即全自动区分计算机和人类的图灵测试的简称)。CAPTCHA的目的是区分机器和人类的一种程序算法,这种程序必须能生成并评价人类能很容易通过但机器却通不过的测试。这个要求本身就是悖论,因为这意味着一个CAPTCHA必须能生成一个它自己不能通过的测试。

乱码其实不乱,乱码有自己的内部逻辑,这样的逻辑对于浏览器来说实在太容易理解了,但是对于我们来说很难。乱码在通过浏览器表现出来的这一过程时,必须自我还原成让浏览器高兴的明码,此时的明码也会让我们高兴,因为我们可以识别了!谁能写出一段解不开的乱码并且这个乱码还是有效的?不能,因为这个本身就有矛盾,就和上面那个CAPTCHA悖论一样。所以我们可以肯定一点的是:浏览器都能读懂的乱码,那我们肯定也能!悖论这个东西有趣。你不会愿意与浏览器来个图灵测试吧?哈哈,你比它聪明多了,它远远不满足人工智能的要求。

三、解密捷径
我们要找最有利的途径去解密js乱码,创造一个解密盒子,将乱码扔进去,我们要保证乱码可以从头到尾执行一通(包括各种条件判断流程),乱码执行一遍之后,这个盒子会抛出一份明码文件。呵呵,这份明码文件正是我们需要的。其实这个解密盒子正在做浏览器做的事,只是浏览器不会扔一份明码文件给我们。可行性?那是当然!呵呵,比如跟踪劫持某函数,那么乱码执行完了,我们要跟踪出的明码也出来了。这个在我这篇文章中有利用到:http://hi.baidu.com/ycosxhack/blog/item/f27786fd6898611208244dcb.html

这个解密盒子是建立在这个肯定正确的两个“原理”上:1、浏览器都能读懂的脚本乱码,那我们肯定也能!2、浏览器肯定可以读有效的脚本乱码!SO, JUST DO IT。

相关日志

发表评论