/CrackJs

记录一下js逆向的网站

Primary LanguageJavaScript

CrackJs

记录一下js逆向的网站

先写到这里吧~~~~ 下次再会(2020.08.25)

如果多人关注的话,会继续更新,且更新更频繁,你给的星星star就是我的动力,越多,更新越快!

综合类:

爬虫练习类:

验证码类:

Tips:
  • 建议可以学习一下这个某盾的分析过程,在本验证码源码里面,我提供了很多份js文件,里面大部分关键点都已经被我上注释了;
  • 建议直接使用Chrome浏览器自带的Overrides,个人感觉比 Reres 还好用,强烈推荐

其他练习等脚本类:

了解前端知识:


下面是前面提到的部分网站的分析步骤(下面的顺序是:倒序,将最新的进展放在前面)

部分步骤:

0x09、 - 某易易盾 - 2020.08.25 指纹fp、随机鼠标轨迹一条龙服务 指纹:☆☆ 滑块轨迹分析:☆☆☆☆ (分析的过程难,但最后随机生成的鼠标轨迹方法不难)

说明:

已经分析了下面这些参数:

1.cb参数

2.fp参数

3.根据验证码缺口位置,随机生成鼠标轨迹

4.滑块轨迹加密

最后测试情况,很理想:998/1000,通过率约等于100%

对于我们这种不想花钱、又不想弄机器学习来识别验证码的人来说,简直就是爽爆了,简单粗暴的使用方式

最新前线消息:开源代码真的好景不长啊

  • 2020.12.10 有开发者向我反映,当前这份代码识别缺口,准确率有所降低了,估计被制裁了(图片混淆比之前严重了),GG,但是JS加密部分还是可以用的,如需使用,可能你得换识别缺口的部分
  • 之前还说不想用机器学习,现在知道错了嘛,啪啪啪打脸

说明:

1.最主要就是 w 参数


0x07、微bo登录 ☆☆☆

说明:

1.最主要就是 sp 参数


0x06、零du代理 ☆☆ (网站好像已经挂了)

详细步骤说明

本次js解密过程,首先观察网页数据,查看加密情况,发现是将返回的数据进行解码的

  • 1、那么肯定网页标签是有 id 可以定位的,于是去查看 ip 地址标签,发现一个 ip-list 这个 id
  • 2、那肯定搜就完事了,反正也不知道是不是,那就先试试水嘛
  • 3、然后发现好几处都是有,然后一个一个观察上下文,随便附近打断点
  • 4、进行调试,慢慢调试,即可发现了一个 decode_str 和 encode_str ,长得这样的顾名思义的,可能是解密的方法,进去看就完事了
  • 5、发现一调试就是对的
  • 6、接下来就是扣函数,扣 decode_str 函数,将加密字符串传递过去,本地运行
  • 7、缺啥找啥,发现Base64"\x64\x65\x63\x6f\x64\x65"; 其中 \x64\x65\x63\x6f\x64\x65 就是 decode 的意思,说明这个就是 base64 解码 那么转换过来 nodejs 就是 Buffer.from(scHZjLUh1, 'base64').toString()
  • 8、下面继续调试发现缺少 windows 对象,发现是调用 windows 对象 String.fromCharCode() 方法, 那么这就是直接能够够用 String.fromCharCode((scHZjLUh1"charCodeAt") 来替换原来的 window["String"]["fromCharCode"](scHZjLUh1"charCodeAt"
  • 9,继续调试,然后也是将 base64 解密转换为 nodejs的base64 解密,最后得出答案,恭喜,又破解一个网站!!! 完毕!!

0x05、犀niu数据 ☆☆

说明:

1.调试后,你会发现 请求前后都是进行了对应的加密、解密的操作

2.这里是加密函数,是将指定参数进行加密之后,进行post请求,然后再对返回来的response参数进行解密


强烈建议练习一下这个例子的扣 js 的过程

说明:

1.坑:atob在nodejs里面就是使用Buffer.from(要解密的字符串, 'base64').toString());

2.遇到window对象的话,看看是否是使用了指定的方法进行解密,比如eval、ato、

3.这种是window对象的String、fromCharCode、parseInt,

4.如:_0xcbc80b['String']['fromCharCode'](_0xcbc80b['parseInt'](_0x1c0cdf[_0x33c80e], 0x2))可以写成String.fromCharCode(parseInt(_0x1c0cdf[_0x33c80e], 0x2))

  1. _0xcbc80b['eval']('\x28' + _0x1c0cdf + '\x29')可以直接写成 eval('\x28' + _0x1c0cdf + '\x29')

  2. Buffer.from(_0x1c0cdf, 'base64').toString()等于Buffer(_0x1c0cdf, 'base64').toString(),这两种写法是一样的

  3. _0xcbc80b'atob'可以写成 Buffer.from(_0x1c0cdf, 'base64')

  4. 以上的总结中,_0xcbc80b就是window对象

9.强烈建议练习一下这个例子的扣 js 的过程,主要是学习如何使定位 js 代码

10.总的来说,这里面的思路就是,将前端页面的一串字符串,经过指定的解码,得到的正确答案


0x04、梦幻xi游 ☆☆
0x03、刺猬mao小说 ☆☆

说明:

1.调试后,你会发现其实网站对小说的文本内容进行加密再返回本地,然后本地通过js解密再渲染到前端

2.加密方式:不详,网站使用自己的封装的函数

3.同阿li文学加解密思路一样

4.建议练习一下扣 js 的过程,主要是学习如何使定位 js 代码


说明:

1.调试后,你会发现其实网站对小说的文本内容进行加密再返回本地,然后本地通过js解密再渲染到前端

2.加密方式:不详,网站使用自己的封装的函数

3.同刺猬mao小说加解密思路一样


说明:

1.调试后,你会发现其实就是网站的url进行加密了,但是,这里的加密分发很简单.

2.加密方式:使用两串字符进行加密,解密 js 已经抠出来


0x00、百du指数

说明:

1.调试后,你会发现其实就是一个 decrypt 解密函数,直接将对应的 key 和 加密内容传递进去即可;

2.提供了两种方法,1-使用 execjs 来执行 js 代码,因为 js 代码比较简单;2-使用 Python 来改写 js 解密代码.


赞赏

如果你觉得笔者辛苦了,可以的话请我喝杯咖啡,感谢你的支持

zanshangma

你的赞赏就是我的动力