extractor-java 用法备忘录

2024-01-04

需要先反编译一下,反编译其实是不能用它里面自带的那个 class2java.py

我这里的建议是自己先用 jd-gui 反编译,然后保存一下,但是如果你的 jar 包特别多,也会生成很多的 zip,这里写一个脚本提取一下

import os
import sys
import zipfile

def unzip_jars_in_directory(base_directory, extract_to_directory):
    # 检查目录是否存在
    if not os.path.exists(base_directory):
        print(f"指定的基础目录不存在: {base_directory}")
        return

    # 检查目标解压缩目录是否存在,如果不存在则创建
    if not os.path.exists(extract_to_directory):
        os.makedirs(extract_to_directory)

    # 获取目录中的所有文件
    files = [f for f in os.listdir(base_directory) if os.path.isfile(os.path.join(base_directory, f))]

    for file in files:
        if file.endswith(".zip"):
            jar_file = os.path.join(base_directory, file)
            extract_dir = os.path.join(extract_to_directory, file[:-4])  # 去掉文件扩展名

            # 检查目录是否已存在,如果存在则跳过
            if os.path.exists(extract_dir):
                print(f"目录已存在,跳过: {extract_dir}")
                continue

            # 创建目录并解压缩JAR包
            os.makedirs(extract_dir)
            print(f"正在解压缩: {file} 到 {extract_dir}")
            with zipfile.ZipFile(jar_file, 'r') as zip_ref:
                zip_ref.extractall(extract_dir)

    print("解压缩完成")

if __name__ == "__main__":
    # 检查命令行参数
    if len(sys.argv) != 3:
        print("用法: python script.py <基础目录> <解压缩目标目录>")
        sys.exit(1)

    base_directory = sys.argv[1]
    extract_to_directory = sys.argv[2]

    unzip_jars_in_directory(base_directory, extract_to_directory)

两个参数,一个是要批量解压缩的目录,另外一个是要保存的目录。

接着反编译结束之后就可以直接用 extractor-java 了,用法,如果你是批量的话

python3 run.py ql /home/ubuntu/Desktop/tools/extractor-java/lib/source -ld /home/ubuntu/Desktop/tools/extractor-java/lib/source
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

extractor-java 用法备忘录 的相关文章

随机推荐

  • 民安智库(第三方满意度调研公司):满意度调查,选择适合的数据分析方法

    满意度调查是企业了解客户对其产品或服务满意程度的重要工具 而选择适合的数据分析方法则是解读调查结果的关键步骤 不同的数据分析方法可以提供不同的洞察和见解 帮助企业更好地理解客户需求 优化产品和服务 本文将分享民安智库 北京第三方绩效管理评估
  • 最佳的10款App安全测试工具

    移动互联网时代 我们的生活和工作深受 App 影响 伴随移动 App 的广泛应用 App 安全日益重要 本文介绍了 App 开发可能用到的安全测试工具 当今 全球移动用户大约超过37亿 Google Play 上大约有 220 万个 App
  • Qt 连接 Mysql

    Linux下安装mysql及qt连接 liunx下安装mysql及qt链接 CSDN博客
  • 服务器经常出现自动重启怎么办

    服务器自动重启是一个复杂且常见的问题 可能由多种原因引起 从硬件故障到软件问题 从电源问题到散热问题 每一个环节都可能成为服务器的杀手 在处理此类问题时 需要我们有一套完整的策略和方案 以便快速准确地定位并解决问题 1 硬件检查 首先 我们
  • 医疗保健科技公司遭遇网络攻击,预计影响 450 万客户

    Bleeping Computer 网站消息 美国医疗保健技术公司 HealthEC LLC 遭遇一次严重网络安全事件 约 450 万客户的敏感信息被泄露 这一数字占据了其注册会员的一半以上 HealthEC 提供的人口健康管理 PHM 平
  • Linux 命令之 dpkg 的简单使用

    查询已安装的软件包及其依赖关系 dpkg s name
  • CMake中引入第三方库

    CMake中 如果我们需要引入第三方库 首先想到的是用find package函数 的确 如果我们引入的第三方库是一些比较标准的库如OpenCV可以用下面的代码 set OpenCV DIR xxxx xxxx目录包含OpenCVConfi
  • 软件测试开发/全日制丨Web端测试—JavaScript讲解 学习笔记

    本文转自测试人社区 霍格沃兹测试开发学社学员笔记 原文链接 https ceshiren com t topic 29440 一 简介 JavaScript 是脚本语言 一种轻量级的编程语言 是可插入 HTML 页面的编程代码 插入 HTM
  • 思科认证 | CCIE在线学习平台推荐!

    CCIE作为思科认证的 最高级别 备受网络专业人士推崇 那么CCIE认证 难不难 想要学习思科认证 是否有在线学习平台可以推荐 如果拿到了CCIE证书 证书会不会过期 如果会 是否有重认证的必要 01 CCIE网络工程师考试难吗 CCIE考
  • bokeh,一个超强的 Python 库详解

    概要 数据可视化在数据分析和报告中扮演着关键角色 而Python的Bokeh库为创建交互式 具有吸引力的可视化图表提供了强大的工具 本文将介绍Bokeh的基本概念 安装方法以及详细的示例代码 以帮助大家了解如何使用Bokeh创建出色的数据可
  • 开发&测试必须知道的 10种 常见软件架构模式

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 1k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 全国(山东、安徽)职业技能大赛--信息安全管理与评估大赛题目+答案讲解——操作系统取证

    博主介绍 博主介绍 大家好 我是 hacker routing 很高兴认识大家 主攻领域 渗透领域 应急响应 python VulnHub靶场复现 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末
  • Python 微服务架构指南

    概要 微服务架构作为一种设计风格 它将应用程序构建为一套小服务的集合 每个服务实现特定的业务功能 这些服务可以独立部署 扩展并围绕特定业务能力构建 Python 凭借其简洁易读的语法和强大的库生态系统成为实现微服务的受欢迎选择 本文将详细介
  • 40个高质量VUE毕设项目分享【源码+论文】(三)

    文章目录 前言 题目1 基于SSM的婚纱摄影网站 br 题目2 基于SSM的家教应聘招聘系统 br 题目3 基于SSM的家庭食谱管理系统 br 题目4 基于SSM的驾校预约管理系统 br 题目5 基于SSM的教师工
  • Ubuntu18.04 升级Ubuntu20.04

    文章目录 背景 升级方法 遇到的问题 背景 因项目环境需要 欲将Ubuntu18 04升级至Ubuntu20 04 参考网上其他小伙伴的方法 也遇到了一个问题 特此记录一下 希望能帮助其他有同样问题的小伙伴 升级方法 参考 第十五章 Ubu
  • 智康护精神病人体征监测系统

    智康护精神病人体征监测系统是一种针对精神病人的监测系统 旨在通过持续 准确地监测患者的生理和心理指标 提供有效的辅助管理和干预手段 以下是对该系统的介绍 实施背景 精神疾病对患者和社会都带来了巨大的负担 及时监测患者体征可以提供重要的信息
  • 【openlayers-6】控件

    1 视图跳转控件 const ZoomToExtent new ol control ZoomToExtent extent 116 30 120 40 map addControl ZoomToExtent 2 放大缩小控件 const
  • 【LeetCode:114. 二叉树展开为链表 | 二叉树 + 递归】

    算法题 算法刷题专栏 面试必备算法 面试高频算法 越难的东西 越要努力坚持 因为它具有很高的价值 算法就是这样 作者简介 硕风和炜 CSDN Java领域新星创作者 保研 国家奖学金 高中学习JAVA 大学完善JAVA开发技术栈 面试刷题
  • 题解 | #删除字符串中出现次数最少的字符# 利用map统计

    比预期的要低 HR打电话说是14级 不分ABC 说制造类供应链类工资和研发体系不一样 整体就要低一些 offer选择 大家帮忙看看 offer选择 大家帮忙看看 有奖活动 什么事是你实习了才知道的 春招会有好的国央企吗 招前端实习生 北京快
  • extractor-java 用法备忘录

    需要先反编译一下 反编译其实是不能用它里面自带的那个 class2java py 我这里的建议是自己先用 jd gui 反编译 然后保存一下 但是如果你的 jar 包特别多 也会生成很多的 zip 这里写一个脚本提取一下 import os