网马解密参考手册
代码等级问题:
我们知道
cpu 指令系统是分等级的,R0、R1、R2、R3,其实网页里也有类似的等级特征,我将 它们分为:HTML
标签、脚本代码、数据,其中数据是不能被执行的,也就是说,数据是没有权限的;脚本可以被浏览器解释执行,
但是需要一些标签的辅助,所以,脚本的级别比 HTML 标签要低一些;HTML 标签不需要其他的辅助,直接可以被
浏览器解释执行,所以,它是最高级别的。
凡是加密的网马(不包括 shellcode、alpha2 等类别的) ,最终解密后都是普通的数据而已,也就是我们平常所说的
字符串,它们是不会被执行的。有人也许会问:“既然网马解密后,不会被执行,那么木马怎么能进入系统呢?”
网马解密后一般需要调用几个具有将字符串转换为脚本代码(例如:eval)或是HTML 代码(例如 document.write)
功能的函数。这就是网马加密的软肋。加密算法再完美,最终解密了还是字符串,不调用这些具有执行功能的函数
还是白费,还是执行不了。
这里再提一下:eval 函数和document.write 函数之间的区别。
eval 函数将字符串转换为脚本代码,然后就可以执行了,但是,如果字符串里面还有 HTML 标签的话,它就不
能执行了。
document.write 函数刚好相反,它将字符串转换为 HTML 代码,里面必须有 HTML 的脚本标签,脚本才可以执
行,否则,将会被当作字符串输出在网页上。
知道了这些我们就可以对网马进行解密了。只要我们改掉 js 中的 eval、document.write/document.writeln 以及 vbs
中的execute 等函数基本就可以得到明文了。
进制转换类加密:
一般就二进制、八进制、十进制和十六进制四种,这类加密方式在几年前比较流行,由于加密方式的特征明显且解
密方法简单,逐步被淘汰掉了。。。之前保存的一些资料也丢失了。。。没找到几个好的例子。。。先说说这几种加密方
式的特征:
首先这类加密都包含一个数组或字符串,里面储存着一大段数字(十六进制包含字母A 到F) ,一般由相同的
分隔符分隔开。
二进制加密:数字仅含0 和1 两个数字。每小段数字一般有六七位。
八进制:数字含0 到7 八个数字。每小段数字一般有二到三位。
十进制:我们日常计算最常用的,包含0 到9 十个数字。每小段数字一般有二到三位。
十六进制:包含数字0 到9 以及字母A 到F,共计十六个数字,其中 A 相当于十进制中的10,以此类推。每
小段数字有两位。
点击下载