【发布时间】:2016-03-18 15:12:44
【问题描述】:
我正在尝试运行一些已被混淆的 Java 脚本,但由于某种原因没有发生任何事情...我的文件名为 test2.js,其中包含以下代码:
eval(function(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))};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('L 6;6=\'p\';r c A(){1.2("3").0=""q(6<B){1.2("h").0+="C. s I o n k? I u l m 5 p <4>"}y q(6>w){1.2("h").0+="x D!. s I o n k? I u l m 5 6 <4>"}1.2("3").0+="<a 9=\'#\' 7=\'g();\'>e i, j d 5 f</a><4>"1.2("3").0+="<a 9=\'#\' 7=\'g();\'>e i, j d 5 f</a><4>"8 b}c g(){1.2("3").0=""1.2("h").0+="e i, j d 5 f<4>";1.2("3").0+="<a 9=\'#\' 7=\'v();\'>z H</a><4>"8 b}c v(){1.2("3").0=""1.2("3").0+="<a 9=\'#\' 7=\'t();\'>E M K J, F G?</a><4>"8 b}c t(){1.2("3").0=""8 b}',49,49,'innerHTML|document|getElementById|NPCResponseWindow|br|is|GetCharHP|onclick|return|href||false|function|name|Hi|Player|nicetomeetyou|NPCTalkWindow|NPC|my|today|your|HP|you|help|399|if||Can|END|see|Beginnings2|450|Go|else|Same|Beginnings|400|Hello|away|Lets|shall|we|here||again|this|var|do'.split('|')))
我的 HTML 文件有这个:
<script src="test2.js"></script>
<HTML>
<BODY>
<table>
<tr>
<td><div id="NPCTalkWindow"></div></td></tr>
<tr>
<td> <div id="NPCResponseWindow"> <a href='#' onclick='Beginnings();'>Begin Conversation</a></div>
</td>
</tr>
</table>
</body>
</html>
但是除了开始对话之外什么都没有出现。有什么帮助吗?我做错了什么?
【问题讨论】:
-
只是猜测:将脚本标签移动到文件末尾。可能代码使用的元素在执行时并不存在
-
真的是混淆了代码吗?你在混淆它之前调试过它吗?
-
混淆脚本容易出错——检查浏览器的控制台日志。如果您只想最小化文件大小,只需将其丑化并启用 gzip 压缩即可。混淆很少能证明最初的意图是正确的——如果您想保密任何事情,不要将其发送给客户端。
-
我不是想隐藏它,只是让新手更难找到代码。此时,客户端执行对我不起作用。我确实在混淆之前尝试了代码,它就像一个魅力。我还将脚本移到了最后。还是一无所有。感谢到目前为止的建议/cmets。
-
“我不是想隐藏它,只是让新手更难找到代码”——这毫无意义。
标签: javascript html obfuscation deobfuscation