js混淆反编译,js代码反混淆

发布时间:2022-11-24

本文目录一览:

  1. javascript反编译
  2. 易语言,post、JS、多线程、apk反编译,一年学会,什么水平?
  3. 混淆过的js代码如何还原?
  4. 混淆的class文件怎么进行反编译
  5. vue压缩后的js可以反编译出来吗
  6. JS代码混淆了,怎么反混淆回去?

javascript反编译

小弟,javascrip是脚本语言,是解释执行的,不会去编译的,你的这段可能是通过某种方法加了密的javascript代码,只能是知道他用什么软件加的密,否则解不开。

易语言,post、JS、多线程、apk反编译,一年学会,什么水平?

学会? 你指的什么学会? post的无非就发包, 也没几个命令 你本身就懂点编程的话, 研究一天就知道怎么搞。 要是没基础,看几节教程我估计都差不多了。 JS? 你应该是想把网站的JS混淆代码给还原吧? 比如一些操作加密的, 估计你想学的也是拆解一些js函数解密也不是真想学这门脚本语言, 那熟悉下语法就够了, 还是那句话, 有编程基础 爱研究 没几天就入门了, apk反编译? 我想你是想做那些apk的发包吧? 也就那几个步骤 抓包,获取数据,分析,反编译apk ,找到加密位置,还原出来,写发包代码,, 你说的学会真的很广, 因为入个门要是有一门语言作为基础 ,再学别的是挺容易的。 1年肯定够你了解那些东西, 但是精通, 我估计一年 一门语言学到精通都有点悬。。。

混淆过的js代码如何还原?

  1. 利用IE开发人员工具(IE8开始已经自带,IE7以前需要下载安装IE Developer Toolbar)进行反混淆,
  2. 代码实现 混淆后的测试代码
eval(function(p,a,c,k,e,d){e=function(c){return(ca?"":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;}('1("0-6");2 4(){1("0-5")}8 3=2(){1("0-7")};4();3()',9,9,'忧郁的匹格|alert|function|b|a|反混淆测试2|反混淆测试1|反混淆测试3|var'.split('|'),0,{}))

开始实施:

  1. 新建一个网页xxx.html
  2. 加入一个div容器 id="divTest"
  3. 最关键的一步--赋值执行:(在上面混淆的代码中,将eval()中的内容提取出来赋值(或直接打印)给document.getElementById('divTest').innerText )
document.getElementById('divTest').innerText=function(p,a,c,k,e,d){e=function(c){return(ca?"":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;}('1("0-6");2 4(){1("0-5")}8 3=2(){1("0-7")};4();3()',9,9,'忧郁的匹格|alert|function|b|a|反混淆测试2|反混淆测试1|反混淆测试3|var'.split('|'),0,{})

打开xxx.html 显示结果:(反混淆后的代码已经被压缩了,去掉了换行等字符)

alert("忧郁的匹格-反混淆测试1");
function a(){alert("忧郁的匹格-反混淆测试2")}
var b=function(){alert("忧郁的匹格-反混淆测试3")};
a();
b();

PS:使用packed这个混淆过的js都可以使用这个方法还原,找了几个项目里面混淆过的js都可以还原,只是去掉了换行符,

混淆的class文件怎么进行反编译

一般情况下Java应用的开发者为了保护代码不被别人抄袭,在生成class文件的时候都java文件进行了混淆,这种class文件用反编译工具得到的结果很难看懂,并且不能进行编译。 从研究的角度,浅析如何读懂这种反编译过来的文件。

例子一:赋值

反编译过来的代码如下:

Node node;
Node node1 = _$3.getChildNodes().item(0);
node1;
node1;
JVM INSTR swap ;
node;
getChildNodes();
0;
item();
getChildNodes();
0;
item();
getNodeValue();
String s;
s;

原始语句:

Node node;
Node node1 = currDocument.getChildNodes().item(0);
node = node1;
String s = node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue();

注解:

JVM INSTR swap ; //赋值语句

练习:

String s1;
String s8 = node.getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
s8;
s8;
JVM INSTR swap ;
s1;
10;
Integer.parseInt();
int i;
i;

例子二:不带参数创建对象

反编译过来的代码如下:

JVM INSTR new #244 ;
JVM INSTR dup ;
JVM INSTR swap ;
CrossTable();
CrossTable crosstable;
crosstable;

原始语句:

CrossTable crosstable = new CrossTable();

注解: 练习:

JVM INSTR new #246 ;
JVM INSTR dup ;
JVM INSTR swap ;
Database();
Object obj;
obj;

例子三:带参数创建对象

反编译过来的代码如下:

JVM INSTR new #262 ;
JVM INSTR dup ;
JVM INSTR swap ;
String.valueOf(s2);
StringBuffer();
s.substring(j, i);
append();
s6;
append();
toString();
s2;

原始语句:

s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString();

注解: 此语句实际上是:s2 += s.substring(j, i) + s6; 练习:

例子四:for循环

反编译过来的代码如下:

int k = 0;
goto _L4
_L8:
...
k++;
_L4:
if(k < as.length) goto _L8; else goto _L7

原始语句:

for(int k=0;k < as.length;k++)
{
    ...
}

注解:

例子五:while循环

反编译过来的代码如下:

String s1 = "";
goto _L1
_L3:
JVM INSTR new #262 ;
JVM INSTR dup ;
JVM INSTR swap ;
String.valueOf(s1);
StringBuffer();
_$2(resultset, s, l);
append();
toString();
s1;
_L1:
if(resultset.next()) goto _L3; else goto _L2

原始语句:

String s1 = "";
while(resultset.next())
{
    s1 = s1 + resultSetToString(resultset, s, l);
}

vue压缩后的js可以反编译出来吗

vue压缩后的js可以反编译出来,反编译方法为:

  1. 在桌面找到自己下载的浏览器软件,点击浏览器图标。
  2. 在浏览器中随便找个网址登入。
  3. 在网页上右键鼠标,弹出右键菜单中选择“审查元素”选项(或按F12),弹出开发工具弹框,在弹框中选择“Sources”选项。如下图所示。
  4. 在左侧网络文件列表中随便找个js文件(如:mt_show_1.8.js文件),点击该文件并查看文件内容。发现文件一行展示证明被压缩过了。
  5. 找到该文件内容左下角的“{}”标签,找到后并点击该标签。
  6. 随后左侧会生成一个格式化后的文件(如:mt_show_1.8.js:formatted文件),查看js文件内容,内容展示成正常的格式了。现在就可以读懂里面的代码了。

JS代码混淆了,怎么反混淆回去?

这不是混淆,只是使用16进制表示的ASCII码~ 单独提取出字符串,在后面加上.toString()进行调试即可看到原本字符串。 你的这句转码后如下:

window["document"]["write"]('sc')

相当于:

window.document.write('sc')

很有可能是输出一个script标签的代码段的开始。