日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AST还原功能说明文档

發布時間:2023/12/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AST还原功能说明文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 還原工具各功能說明文檔
      • 1.字符還原
      • 2. 成員表達式連接符變更
      • 3. 標識符重復賦值
      • 4. 未修改常量替換
      • 5. 標識符簡化
      • 6. 序列表達式
      • 7. 對象合并
      • 8. 數組簡化
      • 9. 成員表達式字符合并
      • 10. 對象屬性字符合并
      • 11. Return函數簡化
      • 12. 自執行實參替換形參
      • 13. 自執行空實參替換順序語句
      • 14.花指令處理
      • 15.反控制流平坦化
      • 16.常量計算
      • 17.死代碼刪減
      • 19.大數組解密
      • 20.禁用console輸出功能刪減
      • 21.debugger保護及定時器刪減


還原工具各功能說明文檔


1.字符還原

樣例Demo: https://jia666666.blog.csdn.net/article/details/120202376

還原前:

var a='\x73\x70\x6c' + '\x69\x74'; var b=0x10; var c='\u4EBA\u751F\u82E6\u77ED\uFF0C\u4F55\u5FC5python\uFF1F';

還原后:

var a = "spl" + "it"; var b = 16; var c = "人生苦短,何必python?";

2. 成員表達式連接符變更

樣例Demo: https://jia666666.blog.csdn.net/article/details/120269625

還原前:

console.log('12'); window.s=1; console.log(new Date().format('yyyy-MM-dd'));

還原后:

console["log"]('12'); window["s"] = 1; console["log"](new Date()["format"]('yyyy-MM-dd'));

3. 標識符重復賦值

樣例Demo: https://jia666666.blog.csdn.net/article/details/120352005

還原前:

let a=3; let b=a; let c=b; let d=c;function hi() {var _0x4a763f = _0x33ba;console[_0x4a763f(0x121)](_0x4a763f(0x11f)); }

還原后:

let a = 3; let d = a;function hi() {console[_0x33ba(0x121)](_0x33ba(0x11f)); }

4. 未修改常量替換

樣例Demo: https://jia666666.blog.csdn.net/article/details/120323615

還原前:

var aa =4878 ; const bb = -5+5; let cc = global; let ff=aa+2; let jj="hello,AST!" var f = cc.console.log(jj); //默認對沒有引用的常量的常量進行刪除 var ss=0; //對數組與字典不做處理,因為數組與字典經常增刪元素 let dd=[1,2]; let ee={'k':'1'}; //對修改的常量,不會進行替換 let hh=5; hh=6;function gg(){var s=dd[1];var t=ee['k'];return aa + bb + f+ff +hh; }

還原后:

//對未修改的常量進行替換 //默認對沒有引用的常量的常量進行刪除 //對數組與字典不做處理,因為數組與字典經常增刪元素 let dd = [1, 2]; let ee = {'k': '1' }; //對修改的常量,不會進行替換let hh = 5; hh = 6;function gg() {var s = dd[1];var t = ee['k'];return 4878 + -5 + 5 + global.console.log("hello,AST!") + 4878 + 2 + hh; }

5. 標識符簡化

樣例Demo: https://jia666666.blog.csdn.net/article/details/120283040

還原前:

let a=1; let b=2; let c=a+b; //a,b被使用,保留,c定義后,沒有被使用,刪除let dd,e,f; //定義后,未使用,刪除function ffd(){console.log('dad'); } ffd(); //函數ffd被使用,保留function f1() {console.log('ello') } //f1未被使用,將會刪除function f2(){let a={'l':1,'p':2}let b={'l2':1,'p2':2}//這里b沒有被使用,將刪除let c=a['p'];//c沒有被使用,刪除 } f2(); //函數f2被使用,保留

還原后:

let a = 1; let b = 2;function ffd() {console.log('dad'); }ffd(); function f2() {let a = {'l': 1,'p': 2}; }f2();

6. 序列表達式

樣例Demo: https://jia666666.blog.csdn.net/article/details/120367680

還原前:

(function () {}(), console['log']('Hello\x20World!'));

還原后:

(function () {}()); console['log']('Hello\x20World!');

7. 對象合并

樣例Demo: https://jia666666.blog.csdn.net/article/details/120203074

還原前:

function test0() {let a = {};a['sp;ldi'] = 1;a['a1'] = 'sd';a['jia']=function (a,b){return a+b;}a.b='dsd'+'ds'; }let a={}; a.s=5;

還原后:

function test0() {let a = {"sp;ldi": 1,"a1": 'sd',"jia": function (a, b) {return a + b;},"b": 'dsd' + 'ds'}; }let a = {"s": 5 };

8. 數組簡化

樣例Demo: https://jia666666.blog.csdn.net/article/details/120269134

還原前:

var a = ['test', {'l': 'fa'}, 12, 15, 'sta']; let c=a[4]; function bb() {var a = [1,2,3,4,5,6,7,8,9];let b = a[1] + a[2] + a[3];let c = a[4];let d = a[5];let e=a[6]; }

還原后:

let c = 'sta';function bb() {let b = 2 + 3 + 4;let c = 5;let d = 6;let e = 7; }

9. 成員表達式字符合并

這一項必須配合【7】對象合并

樣例Demo: https://jia666666.blog.csdn.net/article/details/120202854

還原前:

function test0() {let a = {};a['s' + 'p;ldi'] = 1;a['a' + 1] = 'sd'; }var b={}; b['sd'+'45']='asd';

還原后:

function test0() {let a = {};a["sp;ldi"] = 1;a['a' + 1] = 'sd'; }var b = {}; b["sd45"] = 'asd';

10. 對象屬性字符合并

這一項必須配合【7】對象合并

樣例Demo: https://jia666666.blog.csdn.net/article/details/120367419

還原前:

let aa={'bb':'ds'+'das','cc':'ds'+'das'+'ds','dd':'ds'+'das'+'ds'+12, }

還原后:

let aa = {'bb': "dsdas",'cc': "dsdasds",'dd': "dsdasds12", };

11. Return函數簡化

樣例Demo: https://jia666666.blog.csdn.net/article/details/120267409

還原前:

function bD2(cu, cv) {return cu||cv; } b=bD2(1,2);

還原后:

b=1||2;

12. 自執行實參替換形參

樣例Demo: https://jia666666.blog.csdn.net/article/details/120301341

還原前:

(function(_0xb28de8) {_0xb28de8.bbb = ccc; }(window))

還原后:

(function() {window.bbb = ccc; }())

13. 自執行空實參替換順序語句

這一項經常搭配【12】自執行實參替換形參。慎用!可能涉及到作用域的問題。

樣例Demo: https://jia666666.blog.csdn.net/article/details/120303435

還原前:

(function() {b = 123;c = 456; }())

還原后:

b = 123; c = 456;

14.花指令處理

樣例Demo: https://jia666666.blog.csdn.net/article/details/120287559

還原前:

var _0xb28de8 = {"abcd": function (_0x22293f, _0x5a165e) {return _0x22293f == _0x5a165e;},"dbca": function (_0xfbac1e, _0x23462f, _0x556555) {return _0xfbac1e(_0x23462f, _0x556555);},"aaa": function (_0x57e640) {return _0x57e640();},"bbb": "eee" }; var aa = _0xb28de8["abcd"](123, 456); var bb = _0xb28de8["dbca"](bcd, 11, 22); var cc = _0xb28de8["aaa"](dcb);

還原后:

var aa = 123 == 456; var bb = bcd(11, 22); var cc = dcb();

15.反控制流平坦化

樣例Demo: https://jia666666.blog.csdn.net/article/details/120283982

還原前:

var _0xb28de8 = "3|1|2".spilt("|"),_0x8de8b2 = 0; while(true) {switch(_0xb28de8[_0x8de8b2++]) {case '1':var a = 1;continue;case '2':var b = 3;continue;case '3':var c = 0;continue;}break; }

還原后:

var aa = 123 == 456; var bb = bcd(11, 22); var cc = dcb();

16.常量計算

樣例Demo: https://jia666666.blog.csdn.net/article/details/120268075

還原前:

var a = !![];var b = "abc" == "bcd";var c = 1 << 3 | 2;var d = parseInt("5" + "0")

還原后:

var a = true;var b = false;var c = 10;var d = 50;

17.死代碼刪減

這一項經常搭配【16】常量計算

https://jia666666.blog.csdn.net/article/details/120268417

還原前:

var _0x355406 = function () {let m;if (false) {m = 1;} else {m = 2;}return m; };

還原后:

var _0x355406 = function () {let m;m = 2;return m; };

19.大數組解密

詳見樣例 https://jia666666.blog.csdn.net/article/details/120304802

20.禁用console輸出功能刪減

詳見樣例 https://jia666666.blog.csdn.net/article/details/120354257

21.debugger保護及定時器刪減

詳見樣例 https://jia666666.blog.csdn.net/article/details/120368087

總結

以上是生活随笔為你收集整理的AST还原功能说明文档的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。