简单的js逆向教程

其实做web端的爬虫,最常见到的就是js逆向方面的问题,既是重点也是难点,所以加强这方面的学习才是提升我们业务技能的重要突破点。接下来讲一下两个小实例,看一下基础的js逆向的破解(浅层篇)。

第一种加密情况:

①分析请求:

先打开目标网站---》打开控制台---》切换至XHR

然后刷新一下就会看到下面的情况

 这里要解决的有两个:

  • 返回的密文
  • 请求中的token

接下来定位加密位置

②定位加密位置与分析加密

按照之前的套路,我们第一步是要搜索加密参数名token

打开search,搜索参数名就找到我们要的token了。

 按照搜索的结果文件名,不难发现是第二个结果,点击打开可以找一下token的生成代码。

 

var token = md5(String(page) + String(num) + String(timestamp));

这段代码我们可以用js实现也可以用python。

偷懒一点用python实现token加密算法:

 接着按照请求里看到的参数生成token试试

 现在有了token参数之后接下来看看这个解密是怎么搞:

右键查看源代码发现了这个:

 图中ip列表的位置是没有数据的,只有id ip_list,这是唯一值,所以值的再搜索一下。

 追进去之后就可以看到下面的代码了:

打上断点,执行两步可以看到decode_str 后就开始出现我们需要的数据了,所以这里的decode_str就是我们要的解密方法:

 我们复制到编辑器里调试运行一下:

 

 可以看到Base64未定义,我们追进去把Base64的算法复制出来:

 

 再次运行,根据提示缺失window对象,根据之前的方式是缺啥补啥,但是我们接下来分析一下这里调用的方法:

 这里调用的是String.fromCharCode方法,我们替换一下再次运行:

 可以看到这里就解出来了。

第二种加密情况:

分析请求

这次要分析的网站不同上一个的是,这次网站使用的是cookie加密,cookie的有效期过了之后就会返回一段js

 使用有效的cookie请求我们需要的数据就再返回的网页中,所以我们只要解决这段js就好了。

 分析加密

把返回的js复制到编辑器里格式化,可以看到代码分为两个部分:

参数定义部分:

 函数执行部分:

 直接执行没得出结果,为了方便知道这段代码发生了什么,我们复制到浏览器console里看看:

为了方便观察,我们把第二段的eval修改为console.log

可以看到这段代码写入了cookie

 继续分析,我们把这段cookie相关的代码复制出来执行一下:

 可以看到这里成功生成了一段cookie值和我们在网页上看到的一样!

 到这里就分析完了。

 

  • 11
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 我没有具体的指导,但是可以给你一些建议:首先,可以研究一些已经实现的逆向JS的解决方案,然后根据你的需求来实现你所需要的功能;其次,可以在网上搜索一些关于Python和JS逆向教程,并且结合实践来掌握这些技术;最后,可以在社区中寻求帮助,可以得到其他更有经验的人的建议。 ### 回答2: Python和JavaScript是两种常见的编程语言,逆向工程指的是通过分析和理解已编译的代码来了解其内部机制和工作原理。下面将简要介绍关于Python和JavaScript逆向教程。 对于Python逆向来说,首先需要了解Python的字节码和内部数据结构。可以通过使用dis库来反编译Python代码并查看生成的字节码指令,进而分析其执行过程。另外,还可以使用反汇编工具来反编译Python的.pyc文件,以便更深入地研究其运行机制。 在JavaScript逆向教程中,首先需要学习JavaScript的语法和基本概念。然后,可以使用开发者工具来查看JavaScript代码的执行过程和调试信息。此外,还可以使用JavaScript反编译工具来将经过压缩或混淆的JavaScript代码还原为可读性较高的形式,以方便分析和理解。 不管是Python还是JavaScript逆向,重要的是要有良好的编程基础和对底层机制的理解。通过阅读相关文档、学习逆向工程技巧,并进行实践和实际项目中的应用,可以逐渐掌握逆向工程的技能。 总结起来,Python和JavaScript逆向教程涉及到反编译字节码、反汇编.pyc文件、使用开发者工具和反编译工具等技术。通过学习相关知识、实践和实际项目应用,可以逐步掌握逆向工程的技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值