Giter Site home page Giter Site logo

crackjs's Introduction

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

你的赞赏就是我的动力

crackjs's People

Contributors

dependabot[bot] avatar qqizai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

crackjs's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.