Python语言学习之逆向爬虫时,Python 如何正确调用 JAR 加密逻辑
小职 2021-01-06 来源 :作者:星安果 「AirPython」 阅读 668 评论 0

摘要:本文主要向大家介绍了Python语言学习之逆向爬虫时,Python 如何正确调用 JAR 加密逻辑,通过具体的内容向大家展现,希望对大家Python语言的学习有所帮助。

本文主要向大家介绍了Python语言学习之逆向爬虫时,Python 如何正确调用 JAR 加密逻辑,通过具体的内容向大家展现,希望对大家Python语言的学习有所帮助。

Python语言学习之逆向爬虫时,Python 如何正确调用 JAR 加密逻辑


1. 前言

 

在 App 端爬虫过程中,遇到未知的参数,往往需要我们去逆向破解 App,针对参数的生成逻辑,使用 Python 去实现

 

部分 App 参数的生成逻辑可能已经写入到多个 JAR 文件中,这时候,我们只需要用 Python 执行 JAR 即可

 

本篇文章将聊聊 Python 如何调用 JAR 中的方法

 

2. 合并 JAR

 

以 Android App 为例,假设加密参数生成逻辑在多个 JAR 中,我们首先需要将所有的 JAR 文件合并为一个 JAR 文件

 

PS:对于 AAR 文件,可以先通过解压软件解压,然后再合并 JAR

 

合并 JAR 分为 2 步:

 

解压 JAR

合并所有源码

2-1 解压 JAR

 

安装 JDK 之后,通过 jar -xvf 命令去解压单个 JAR,这样会按包名在同级目录下生成 JAVA 编译后的 class 文件

 

# 一个个地去解压JAR

# 在本地生成class文件

jar -xvf a.jar

jar -xvf b.jar

jar -xvf c.jar

2-2 合并所有源码

 

使用 jar -cvfM 命令,将本地所有的 class 文件生成一个新的 JAR

 

# 合并当前目录下所有源码为一个JAR

# 其中:output.jar代表新的JAR

jar -cvfM output.jar .

3. Python 调用 JAR

 

首先,我们安装依赖包:jpype

 

# 安装依赖包

pip3 install JPype1

假设 JAR 中加密逻辑实现代码如下:

 

package com.xingag.common;

 

public class EncryHelper {

    public String encrypt(String content) {

          //加密逻辑

    }

}

使用 Python 调用 JAR 中的方法分为 3 步:

 

启动 JVM

实例化 JAVA 对象,调用对应方法

关闭 JVM

3-1 启动 JVM

 

import jpype

 

# JAR本地路径

jar_path = os.path.join(os.path.abspath('.'), './output.jar')

 

# 启动jvm

jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % (jar_path))

3-2 实例化 JAVA 对象,调用方法

 

根据被调方法所在的包名,使用 jpyte 中的 JClass() 方法实例化类 JAVA 对象,最后调用 JAVA 对象的方法即可

 

需要注意的是,由于 JAVA 中是实例方法,需要先进行对象实例化,然后调用方法;如果是静态方法,可以直接调用方法

 

# 通过包名,实例化JAVA对象

EncryClass = jpype.JClass("com.xingag.common.EncryHelper")

encryClass = EncryClass()

 

# 调用JAVA中的加密方法

content_encry = encryClass.encrypt("xag")

print(content_encry)

3-3 关闭 JVM

 

可以选择主动关闭 JVM,或者待 Python 程序运行后自动关闭,释放资源

 

import jpype

 

# 关闭jvm

jpype.shutdownJVM()

4. 最后

 

Python 直接调用 JAR 中方法,可以帮我我们复用轮子,减轻爬虫的工作量!


关注“职坐标在线”(Zhizuobiao_Online)公众号,免费获取学习视频资料、技术就业咨询

Python语言学习之逆向爬虫时,Python 如何正确调用 JAR 加密逻辑


本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程