-1.目录

0.参考

1.页面表现

2. 慢镜头观察:低速网络请求

3. 从头到尾调试:Fiddler 拦截 index.html 并添加 debugger;

4. 快速定位 js 代码

5. 还原被混淆压缩的 js

0.参考

https://developers.google.com/web/tools/chrome-devtools/javascript/step-code 如何单步调试代码

https://bindog.github.io/blog/2017/02/02/battle-with-front-end-engineer/ 与前端工程师的较量——Chrome调试工具进阶技巧

1.页面表现

1.1 定位目标元素

1.2 查看源代码

1.3 全局搜索 port 或 .port 或 GEA

无果,所以才有下文。。。

2. 慢镜头观察:低速网络请求

2.1 Network 面板将 Online 切换到 Slow 3G

2.2 硬性刷新,观察到慢速下载和加载 js 代码

2.3 等待所有 js 文件下载并加载完毕,端口信息发生了变化

另外,也可以使用录制功能观察吧

3. 从头到尾调试:Fiddler 拦截 index.html 并添加 debugger;

3.1 Fiddler 添加规则

3.2 刷新网页,修改拦截的 index.html 响应

3.2.1 在 <html> 标签之后立马添加 <script>debugger;</script>

3.2.2 将上一步设置的 rule 修改为默认值 Disabled

3.2.3 点击下图的绿底按钮 Run to Completion,恢复正常下载状态

3.3 浏览器自动进入调试暂停状态,根据需要步进观察 js 加载顺序

4. 快速定位 js 代码

4.1 手动修改 html 目标元素文本

4.2 (可选)找到目标元素的父节点,右键添加断点:在子节点发生变化时中断

Sources 面板可以看到启用的 DOM 断点

4.3 手动再一次执行 js 代码

4.3.1 Sources > Network > 竖三点菜单 > 取消勾选 分组显示, 找到加载的所有 js 文件

4.3.2 依次点击浏览 js 文件,ctrl+a 全选代码,右键选择执行代码

4.4 运气好的话找到目标 js 文件导致浏览器进入调试暂停状态(之前如果没有在父节点添加断点,则直接观察 html 目标元素文本是否发生变化)

4.5 运气不好的话,只能在 html 代码中搜索 js 脚本,逐段复制到 console 执行

5. 还原被混淆压缩的 js

5.1 通过在线工具还原

http://jsbeautifier.org/

5.2 通过 console 还原

5.2.0 参考

JS混淆openlaw反爬破解实践 https://zhuanlan.zhihu.com/p/32344678    将eval改为console.log,新建snippet拷贝这一段内容,运行该脚本,在Chrome的console中输出js代码输出结果。

jspacker压缩及解压缩研究(js eval) http://www.cnblogs.com/cc11001100/p/8468508.html    将原文提到的小工具放在了 https://kaisla.top/eval/

5.2.1 使用 Pretty print 重排单行代码

5.2.2 将全部代码复制粘贴至 console,并将开头的 eval 修改为 console.log,回车执行

5.2.3 console 输出开头依旧是 eval,重复上一步直到输出开头不是 eval

5.2.4 取得 console 最终输出代码段,新建代码片段,粘贴并重排,还原第一行的变量定义 _$

5.2.5 根据上一步 console 输出还原 js 代码段,适当添加 console.log 观察中间变量输出,运行代码段

5.3 python 模拟 js 代码还原端口信息

In [1]: letter = 'GEGEA'

In [2]: port = ''.join([str('ABCDEFGHIZ'.index(s)) for s in letter])

In [3]: int(port) >> 3
Out[3]: 8080

js分析 快速定位 js 代码, 还原被混淆压缩的 js 代码的更多相关文章

  1. 还原网站上压缩的js代码

    还原网站上压缩的js代码 我们经常可以看到一些网站,把所需的javascript代码压缩成一行,就像下图这样 这种代码浏览器能读懂,但正常人是没法阅读的. 既然浏览器能读,浏览器当然也能还原这段代码. ...

  2. 还原网站上被压缩的JS代码方便阅读

    我们经常可以看到一些网站,把所需的javascript代码压缩成一行,就像下图这样: 这种代码浏览器能读懂,但正常人是没法阅读的. 既然浏览器能读,浏览器当然也能还原这段代码. 其实很简单.这里我使用 ...

  3. PC逆向之代码还原技术,第五讲汇编中乘法的代码还原

    目录 PC逆向之代码还原技术,第五讲汇编中乘法的代码还原 一丶简介乘法指令 1.乘法指令 2.代码还原注意问题 二丶乘法的汇编代码产生的格式 1.高级代码观看 2.乘法的汇编代码还原. 三丶乘法总结 ...

  4. PC逆向之代码还原技术,第四讲汇编中减法的代码还原

    目录 PC逆向之代码还原技术,第四讲汇编中减法的代码还原 一丶汇编简介 二丶高级代码对应汇编观看. 1.代码还原解析: 三丶根据高级代码IDA反汇编的完整代码 四丶知识总结 PC逆向之代码还原技术,第 ...

  5. PC逆向之代码还原技术,第三讲汇编中加法的代码还原

    目录 PC逆向之代码还原技术,第三讲汇编中加法的代码还原 一丶汇编简介 二丶高级代码对应汇编观看. 1.代码还原解析: 总结 PC逆向之代码还原技术,第三讲汇编中加法的代码还原 一丶汇编简介 在讲解加 ...

  6. 在控制台快速定位js函数

    最近在搞教务处的模拟登录,教务处用js加密密码和账号,为了构造能用的post数据,需要快速的找到对应的js代码.但是,那么多js代码,手动找会找到死的. 恰好学习了两个快速定位的方法:console ...

  7. KRPano资源分析工具使用说明(KRPano XML/JS解密 切片图批量下载 球面图还原 加密混淆JS还原美化)

    软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...

  8. js混淆代码还原-js反混淆:利用js进行赋值实现

    js混淆代码还原-js反混淆:利用js进行赋值实现   [不想用工具的直接看方法二] 本文地址:http://www.cnblogs.com/vnii/archive/2011/12/14/22875 ...

  9. 压缩和还原压缩的JS代码

    压缩JS代码:packer – 最好用的 javascript 压缩工具地址: http://dean.edwards.name/packer/ http://kan.willin.org/?page ...

随机推荐

  1. 返回通知 对方法返回的结果可以进行加工 例如请求接口后 返回的json参数可以加工成对象返回给调用者

  2. jsp篇 之 jsp中的注释

    Jsp中的注释: 第一种: <!-- html/xml中的注释方式 --> 特点: 1.用户在浏览器中右键查看源代码 [能] 看到这个注释. 2.在服务器端,这个jsp页面被翻译成的jav ...

  3. 六、Java多人博客系统-2.0版本-代码实现

    1.前后端分离,后端使用spring boot,只负责提供数据,对外暴露Restful API.前端使用vue,只负责展示数据和向后台提交数据. 2.数据库使用mariadb,存储所有数据. 3.前端 ...

  4. EventBus 线程切换原理

    主要问题其实只有两个,其一:如何判断当前发送事件的线程是否是主线程:其二:如何在接收事件时指定线程并执行: 一个一个来看. 1.如何判断是否在主线程发送 EventBus在初始化的时候会初始化一个Ma ...

  5. Codeforces1100F Ivan and Burgers 【整体二分】【线性基】

    题目分析: 一道近似的题目曾经出现在SCOI中,那题可以利用RMQ或者线段树做,这题如果用那种做法时间复杂度会是$log$三次方的. 采用一种类似于整体二分的方法可以解决这道题. 将序列的线段树模型建 ...

  6. Codeforces878 A. Short Program

    题目类型:位运算 传送门:>Here< 题意:给出\(N\)个位运算操作,要求简化操作数量,使之结果不受影响(数据在1023之内) 解题思路 我们发现数字的每一位是独立的.也就是说,每一个 ...

  7. shell 基础(二)变量

    1. shell变量的定义 1)Shell 支持以下三种定义变量的方式: variable=value variable='value' variable="value" 特点 1 ...

  8. django系列 2 :启动应用,目录结构解读

    来源:https://docs.djangoproject.com/en/2.1/intro/tutorial01/ 该教程是创建一个用于投票的网页. 1.使用命令创建site 进入要创建site的目 ...

  9. MySQL 导入导出数据库、表

    使用 GUI 软件很好操作,下面介绍命令行操作. 导出 cmd 命令 # 1.1 导出整个数据库 mysqldump -hlocalhost -uroot -p student_db > C:\ ...

  10. 金融量化分析【day110】:NumPy通用函数

    一.通用函数 能同时对数组中所有元素进行运算的函数 1.一元函数 1.sqrt 2.ceil 3.modf 4.isnan 5.abs 2.二元函数 1.maxinum 二.数学和统计方法 1.sum ...