吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2798|回复: 4
收起左侧

[Web逆向] 《JavaScript AST其实很简单》三、Step2-对象调用还原

  [复制链接]
漁滒 发表于 2020-12-25 23:08

对象调用还原

上一章讲到,我们已经将

'VlwGE': _0x166e('0x305')

还原为

'VlwGE': 'return (function() '

然后继续观察一下源代码
在这里插入图片描述
这里可以看到,其定义了很多形如_0x1468d1和_0x118a14的对象,并在不断调用对象的方法来执行,那么首先要将这些对象选出来。
复制任意一个对象,例如_0x118a14做语法分析
在这里插入图片描述
可以看到,这是一个VariableDeclaration节点,这是它的第一个特点,然后继续往里面看
在这里插入图片描述
可以看到,对象的所有键都是字符串,也就是类型是Literal,它的value总为5位。那么这是它的第二个特点。综合上面两点,按照上一章递归的方法,先找到所有VariableDeclarator的节点,再找到ObjectExpression里面必须所有的鍵都是字符串,且为5位数,就可以找到所有需要调用还原的对象了。

找到需要调用的对象以后,接下来就是要怎么调用后还原了,随便复制一个进行无法分析,例如

_0x118a14['jyyYA'](_0x541294, _0x5bcf0e, _0x53be6c)

在这里插入图片描述
可以看到它是一个CallExpression节点,并且它子节点callee的类型是一个MemberExpression,那么接下来就可以遍历所以符合这个条件的节点了,但是还漏了一点,还要判断其调用的object的名称是否是之前找到的,否则不应该进行还原。

那么其还原的类型就比较多了,我这里的话只列举一下
1.返回字符串(类型:Literal)
在这里插入图片描述

2.返回对象调用(类型:MemberExpression)
在这里插入图片描述

3.返回二元表达式(类型:BinaryExpression)
在这里插入图片描述
4.返回逻辑计算(类型:LogicalExpression)
因为这个文件没有,我就从其他地方截图
在这里插入图片描述
5.返回函数调用(类型:CallExpression)
在这里插入图片描述

对于1和2,比较简单,调用什么就直接将节点替换为调用的内容即可。对于3和4是类似的,都是由中间的符号和左右的标识组成,只要将调用时的第一个参数替换到符号的左边,第二个参数替换到符号的右边,然后将整个节点替换掉就可以。对于5,需要判断一下函数调用的参数个数和返回函数的参数个数,如下图
在这里插入图片描述
此时就需要将调用函数的第一个参数变成返回函数的函数名,剩下的参数按顺序替换。如果调用函数和返回函数的参数数量是一样的,那么只需要按顺序替换参数即可,函数名不用变。最后将替换好的节点替换原来节点即可

当所有对象都调用替换完成后,那么这些对象就已经没有用了,也可以说已经是废代码。那么还是按照前面的方法,遍历找到这些定义的对象,全部删掉。这个和一开始查找对象的操作是一样的,只不过前面是查找到就记录下载,现在是查找到就删除。

再经过一系列的调用还原后,输出js代码,并将其格式化如下图
在这里插入图片描述
可以看到很多地方都变得清晰可读了,例如上图中,已经将

if (_0x1468d1['KYTBP']('OWFLT', _0x1468d1['imVvW']))

替换为

if ('OWFLT' !== 'OWFLT')

这就是第二步反混淆的最终结果。
备注:源文件见最下方附件内的ob_step2.txt

免费评分

参与人数 6吾爱币 +7 热心值 +6 收起 理由
ofo + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
melean + 1 + 1 大佬您好,你的BYYG软件1217版,51的提示程序失效了。
dg5988143 + 1 + 1 我很赞同!
walk + 1 + 1 热心回复!
zhnefe + 1 + 1 大佬您好,你的BYYG软件1217版,51的提示程序失效了。
ycf0616 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ycf0616 发表于 2020-12-25 23:23
老哥这么晚还在写学习笔记,JavaScript没学过,向你看齐,顶你一手
dg5988143 发表于 2020-12-26 10:24
ycf0616 发表于 2020-12-28 10:43
漁滒,你的那个各大网站批量下载的帖子没了?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 05:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表