抓包调试工具、常规加密分析、常用解混淆代码手段、解决Eval打包

2020-11-17 16:51:31

参考地址 抓包调试工具、常规加密分析、常用解混淆代码手段、解决Eval打包

目录


抓包调试工具

Watch  # 添加监听的变量
Call Stack  # 倒序展示调用的方法次序
Scope  # 断点所在作用域的内容
Breakpoints.  # 断点列表
XHR/fetch Breakpoints  # 请求断点列表,可以添加要断点的url
DOM Breakpoints.  # Dom断点列表。可以添加html改变的事件。比如hover事件
Event Listener Breakpoints. # 可断点的事件监听列表。比如添加鼠标点击事件

常规加密分析流程

1、查看关键字-分析哪些参数是加密的
2、搜索参数名
2.1、查看网络面板的initiator(js发起者)
2.2、xhr断点调试
2.3、脚本hook加密逻辑
3、分析加密
4、补全加密逻辑

常用解混淆代码手段

如果尾巴是括号的情况:1、复制加密混淆的代码2、新开窗口粘贴到js执行3、如果有报错,点击vm,代码解密成功4、如果没有报错,删除最后的括号5、4不行的情况,删除最后的括号添加.toString()

如果尾巴不是括号:1、复制加密混淆的代码2、格式化,找到右半边括号中的内容,复制3、粘贴到js面板中执行,解密成功

解决Eval打包

如果开头是eval方法,可以将eval换成console.log(),或者alert


  • 2020-11-12 14:01:46

    使用postMessage来实现父子通信跨域

    1.子向父,子postMessage,父监听message; 2.父向子,父postMessage,子监听message; 3.测试发现,子向父postMessage的时候,源可以写为‘*’,父向子postMessage的时候,源需要写成子的源,(也就是子页面的协议+主机号+端口) 测试代码部分:

  • 2020-11-12 14:24:39

    Object.entries()

    Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)