ast还原ob4-对象调用还原

4. 对象调用还原

目标:
请添加图片描述
4.1 先拿到对象的定义请添加图片描述
请添加图片描述
从代码中可以看出来,拿到了遍历的对象的名字,对象的绑定以及对象里存放的(key,value)数组。

4.2 遍历对象中的数组请添加图片描述

代码:
请添加图片描述
4.3 如果value是函数定义
请添加图片描述
代码:
请添加图片描述
已经拿到了调用对象的属性名和值(key和value)以及调用的参数,接下来就是函数调用的还原

而函数的调用又分成了三种情况:

  • 二元运算
  • 函数调用
  • 逻辑运算请添加图片描述
4.4 如果value是字符串

字符串就不再赘述了,里面的一些具体操作需要自己在ast解析网站中去具体分析才行
请添加图片描述

4.5 收尾

如何判断遍历的定义对象是否应该被删除?

只有绑定对象的引用数组的个数已经进行处理过的次数相等,只有符合条件才能将定义数组的对象位置删除,代码如下:
请添加图片描述
到此,对象调用还原结束!!

4.6 验证测试

参考: https://jia666666.blog.csdn.net/article/details/120287559v

//测试代码: 参考上面的网站
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"
};
//由于后面kk函数体传参数使用该字典对象,参数未知,保留该字典对象

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

function dd() {
  var dd = "eee45475";
}

var ddf = "eee"; //局部变量与全局变量同名验证

function dd() {
  //全局变量在函数体是否可用验证
  var dd = "eee";
}

function kk(a) {
  //传值验证
  var ss = _0xb28de8[a];
}

请添加图片描述
验证成功!!

AST混淆还原是指通过对JavaScript代码的抽象语法树(AST)进行还原,来反混淆经过混淆处理的代码。AST混淆还原入门可以通过以下几个步骤实现: 1. 了解抽象语法树(AST):抽象语法树是用于表示代码结构的一种数据结构。它将代码转换为树状结构,每个节点代表代码的不同部分。了解AST的基本概念和节点类型对于进行混淆还原非常重要。 2. 学习JavaScript语法:要进行AST混淆还原,需要对JavaScript的语法有一定的了解。熟悉JavaScript的语法规则和常见的代码结构将有助于理解和还原混淆代码。 3. 使用AST还原工具:在进行AST混淆还原时,可以使用一些开源的AST还原工具,如丁仔大佬的AST还原工具。这些工具可以将混淆后的代码转换为AST,然后通过对AST进行分析和还原,最终得到可读性较高的代码。 4. 学习AST还原技术:了解AST还原的原理和技术对于深入理解和应用AST还原工具非常重要。可以学习一些AST还原的基本技术,如遍历AST、修改AST节点等,以及一些高级的AST还原技术,如模式匹配、符号执行等。 5. 实践与练习:通过实践与练习,逐渐提升对AST混淆还原的理解和技巧。可以选择一些混淆代码进行还原,尝试使用AST还原工具进行还原,并对还原结果进行分析和验证。 需要注意的是,AST混淆还原是一个复杂的过程,对于不同的混淆代码可能会有不同的还原策略和技术。因此,除了入门的基础知识外,还需要不断学习和积累经验,才能在实际应用中取得更好的效果。<span class="em">1</span> #### 引用[.reference_title] - *1* [AST反混淆js还原工具2.2(20230203)](https://download.csdn.net/download/jia666666/87413335)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值