javascript - 如何反混淆这段 JavaScript 代码?

标签 javascript obfuscation reverse-engineering deobfuscation

Possible Duplicate:
Decode obfuscated JavaScript

问题:

我有以下 JavaScript 代码:

var _0xe91d=["\x28\x35\x28\x24\x29\x7B\x24\x2E\x32\x77\x2E

...


x5F\x63\x6F\x6E\x74\x5F\x64\x75\x72\x7C\x76\x5F\x74\x61\x62\x73\x5F\x61\x6C\x69\x67\x6E\x7C\x76\x5F\x74\x61\x62\x73\x5F\x64\x75\x72\x7C\x76\x5F\x73\x63\x72\x6F\x6C\x6C\x7C\x63\x6F\x6E\x74\x5F\x61\x6E\x69\x6D\x7C\x63\x6F\x6E\x74\x5F\x66\x78\x7C\x74\x61\x62\x5F\x66\x78\x7C\x72\x65\x70\x6C\x61\x63\x65\x7C\x62\x61\x6C\x69\x67\x6E\x7C\x61\x6C\x69\x67\x6E\x5F\x7C\x75\x6E\x6D\x6F\x75\x73\x65\x77\x68\x65\x65\x6C\x7C\x73\x77\x69\x74\x63\x68\x7C\x64\x65\x66\x61\x75\x6C\x74\x7C\x6A\x51\x75\x65\x72\x79","","\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65","\x72\x65\x70\x6C\x61\x63\x65","\x5C\x77\x2B","\x5C\x62","\x67"];eval(function (_0x173cx1,_0x173cx2,_0x173cx3,_0x173cx4,_0x173cx5,_0x173cx6){_0x173cx5=function (_0x173cx3){return (_0x173cx3<_0x173cx2?_0xe91d[4]:_0x173cx5(parseInt(_0x173cx3/_0x173cx2)))+((_0x173cx3=_0x173cx3%_0x173cx2)>35?String[_0xe91d[5]](_0x173cx3+29):_0x173cx3.toString(36));} ;if(!_0xe91d[4][_0xe91d[6]](/^/,String)){while(_0x173cx3--){_0x173cx6[_0x173cx5(_0x173cx3)]=_0x173cx4[_0x173cx3]||_0x173cx5(_0x173cx3);} ;_0x173cx4=[function (_0x173cx5){return _0x173cx6[_0x173cx5];} ];_0x173cx5=function (){return _0xe91d[7];} ;_0x173cx3=1;} ;while(_0x173cx3--){if(_0x173cx4[_0x173cx3]){_0x173cx1=_0x173cx1[_0xe91d[6]]( new RegExp(_0xe91d[8]+_0x173cx5(_0x173cx3)+_0xe91d[8],_0xe91d[9]),_0x173cx4[_0x173cx3]);} ;} ;return _0x173cx1;} (_0xe91d[0],62,284,_0xe91d[3][_0xe91d[2]](_0xe91d[1]),0,{}));

我到底如何破译它,并找出它的作用?
这种混淆背后的原理是什么?

最佳答案

它使用正则表达式对某些文本进行一些替换。 表达式是十六进制代码,您可以使用 .toString() 将其恢复为 unicode: 例如:

"\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65".toString() : fromCharCode

"\x72\x65\x70\x6C\x61\x63\x65".toString() : replace

关于javascript - 如何反混淆这段 JavaScript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9352971/

相关文章:

javascript - 如何在谷歌地理图表中隐藏工具提示标题(并在工具提示中显示其他信息)

javascript - meteor.js 使用 aldeed :tabular with RemoteCollectionDriver

Javascript 在标签上添加 css 类

php - 点击电话线路的通话时长

google-play - 如何阅读Play商店崩溃报告,Proguard混淆

css - 方向 : rtl not working on IE11

android - 在 Android 中保持 API key 和 URL 安全的最佳方法?

ios - 在 XNU 内核上查找某个函数的指针的最佳方法是什么?

hibernate - JPA/Hibernate 是逆向工程好还是正向工程好

java - 错误: throw new UnsupportedOperationException("Method not decompiled