3

例如,我怎么能混淆这个示例代码:

/*
The code below will write
to a heading and to a paragraph,
and will represent the start of
my homepage:
*/
document.getElementById("myH1").innerHTML="Welcome to my Homepage";
document.getElementById("myP").innerHTML="This is my first paragraph.";

进入表格:

var _0xcc34=["\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x6D\x79\x48\x31","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x57\x65\x6C\x63\x6F\x6D\x65\x20\x74\x6F\x20\x6D\x79\x20\x48\x6F\x6D\x65\x70\x61\x67\x65","\x6D\x79\x50","\x54\x68\x69\x73\x20\x69\x73\x20\x6D\x79\x20\x66\x69\x72\x73\x74\x20\x70\x61\x72\x61\x67\x72\x61\x70\x68\x2E"];document[_0xcc34[2]](_0xcc34[1])[_0xcc34[0]]=_0xcc34[3];document[_0xcc34[2]](_0xcc34[4])[_0xcc34[0]]=_0xcc34[5];

使用 PHP?

我知道我可以使用http://javascriptobfuscator.com/执行此操作,但我需要在我的 PHP 文件中执行此操作,因为它会动态更改。

4

1 回答 1

1

好的。关于如何混淆的理论。

  • 您需要了解该语言,因为您需要一个解析器才能获得良好的结果。
  • 当你知道什么是什么时,你就可以开始更换东西了。

对于一个非常愚蠢的例子,替换所有实例

document.getElementById('string');ab(cd('fgevat');喜欢_

function cd(s) { /* ROT13 implemented here*/ } function ab(s) { return document.getElementById(s); } ab(cd('fgevat');
  • 您可以使用 eval 来避免解包为明文。然后你就可以走了

像这样

function h(s) { /*implement hexdecode in an ugly way, and run eval() on the resulting string */} h('2020202066756e6374696f6e206364287329207b202f2a20524f54313320696d706c656d656e74656420686572652a2f207d2066756e6374696f6e206162287329207b2072657475726e20646f63756d656e742e676574456c656d656e74427949642873293b207d206162286364282766676576617427293b'); // which is the above code.

这都是 r=1 的东西。并且可以通过对语言的更深入理解来做得更好,而且这些也绝对是微不足道的

于 2013-08-28T23:23:11.317 回答