先在api接口里看回来的数据有咩有混淆(启动器里看)
是一个类对象的方法 直接搜索decrypt(
设置-------代码折叠
curl_cffi: 支持原生模拟浏览器 TLS/JA3 指纹的 Python 库_Resphalios的博客-CSDN博客
测试浏览器相等
(function () {}).constructor === Function 返回tucu的话就可以直接过dug
Function.prototype.constructor =function(){}
1,禁用所有的断点-----》开启所有断点不启用
2,禁用一处断点----》找到关键位置然后设置永不再此断
3,条件断点-------》也是在关键点找到后加一个条件 可以直接加fales让他不执行着
4,中间人工具替换特征字符串 feddler去写js替换
5,reres 替换本地修改过的文件
6,重写关键函数 -----》先把断点打在bug函数的下面,等断点出现后在控制台重写bug函数,让他置空
JavaScript 压缩
混淆 + 加密
1. 接口加密技术:
针对某些接口进行加密 -> url 参数 校验 编号 编码 (token sign 签名算法加密)
2. JavaScript压缩 混淆 加密技术:
JavaScript特点:
1. 客户端 ->必须要在用户浏览器加载并运行的
2. 公开透明的 浏览器获取JavaScript源代码
2.1 代码压缩:
2.2 代码混淆
2.3 代码加密 eval
3. 接口加密:
3.1 完全开放接口
3.2 接口参数加密:
接口校验方式 -> base64 Hex编码 MD5 AES DES RSA 等等 加密技术
sign -> 服务器和客户端校验 -> url path MD5加密 URL参数 base64编码 sign(aabbccvv)
-> request url 某个参数 请求头某个参数
服务器 -> 对比 客户端sign 服务器生成 sign 是否一致
www.baidu.com?word='xxxbbdbdd'(加密?)
提交?
4. JS混淆中混淆手段:
变量混淆:
字符串混淆
属性加密
僵尸代码
控制流平坦化(for 和 switch语句 )
多态变异
反格式化
特殊编码
静态图片 -> 假的 详情页 图片地址 https://www.img.com?abbcv假的sfhjasgfah
首页的图片里面 小图 图片地址 (xxxxxx/dasgasga/asfasfgas/sagfas.png)
JavaScript-obfuscator 对代码实现的混淆
https://obfuscator.io/ ES8 免费
npm init 初始化工作区域
npm install --save-dev javascript-obfuscator 下载混淆包
5. JavaScript 加密:
Emscripten:
asm.js
文本
WebAssembly:
二进制字节码
const code = `
let hello = '1' + 1
console.log('hello', hello)
`
const options = {
compact: false, // 是否压缩
// mangled 变量名替换成普通的 简写字符
// hexadecimal 替换为16进制字符串
// identifierNamesGenerator: 'hexadecimal'
// 代码体积变小
// 拼接了前缀
// identifiersPrefix: 'germey'
// 指定是否混淆全局变量 或者函数名称
renameGlobals: true
}
const obfuscator = require('javascript-obfuscator')
function obfuter(code, options){
return obfuscator.obfuscate(code, options).getObfuscatedCode()
}
console.log(obfuter(code, options))
eval:加密可以直接把这一串丢到控制台打印出结果也可以去掉eval再打印得到原来的代码
Emscripten :WebAssembly都是c或者c++重写
UglifyJS: https://github.com/mishoo/UglifyjS2
terser: https://github.com/terser/terser
javascript-obfuscator: https://github.com/javascript-obfuscator/javascript-obfuscator
jsfuck: https://github.com/aemkei/jsfuck
AAEncode: https://github.com/bprayudha/jquery.aaencode
JJEncode : https://github.com/ay86/jEncrypt
可以用请求里的一些字符打xhr断点,去堆站找最底下一条,找到混淆的代码,到控制台输出,若果有错就可以直接到里面去,如过没报错就先删除最后一个符号,让他报错,或者删除最后一个在.tostring
先全局搜索
1,decode
2,decry
3.JSON.pares
4,写油猴脚本去hook JSON
应对措施:
(1)下载woff文件,转为tff文件
(2)用百度字体编辑器打开tff文件,确定其unicode与实际值的映射关系
(3) 将下载的HTML内容按照映射关系替换
(4)解析HTML并获取正确的数据
注意tff文件的动态生成
2.背景
3.伪类
4利用元素定位
5.利用字符切割