js逆向笔记

断点大法:

1.全局搜索
2.事件断点
3.xhr断点
4.FD hook断点 (debugger)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(function (){
var a = "";
Object.defineProperty(document,'cookie',{
set: function(val){
if(indexOf(val) != -1){
debugger
}
console.log(val);
a = val;
return val;
},
get: function(){
return a;
}
});
})();

不用defineProperty可以用Proxy

5.通过html的函数名定位(遇到动态加载的js 利用FD的autoresponder替换本地JS 加入debugger)

扒代码:

webpack 的数组参数是识别要点

导出的函数是对象要new后才能使用

反调:

SOJSON在线加密

遇见自带debugger:
1.直接在那行下断点 右键edit breakpoints 改为false(不好用 浏览器会卡)
2.修改掉setInterval(注意定义 置空无效会重复赋值)

遇见反格式化:
找正则相关的操作或者直接把检测的函数变成一行

遇见混淆:
取值替换十六进制就可以

遇见死代码:
一般用while(1)或循环调用实现
还有window.window 调用window就会无限调用

加密后一般格式
编码
垃圾代码
解密代码+检测
真实代码
死代码

五秒防护:

碰到503欺骗浏览器的包,用FD抓。
看前面的包的源码知道传的参如何加密

滑动验证码:

分析流程

1.比对数据包,找出要分析的加密算法
2.扒出算法
3.分析轨迹,伪造拖动轨迹算法
4.找到滑块位置:CC神经网络,solo神经网络,差异度识别算法

短信验证码平台接口:

1.查看API使用

动态IP:

熊猫代理、讯代理

邮箱验证码:

1.临时邮箱

2.搭建自己的邮箱服务器

1.购买服务器、域名(最好是cn com)
2.安装宝塔
3.安装邮件系统
4.添加DNS解析