首页 > 编程语言 >idea java 逆向脚本

idea java 逆向脚本

时间:2024-08-02 10:09:48浏览次数:13  
标签:逆向 java name jar idea ls file com class

逆向脚本

target_app="/Users/voidm/Applications/GoLand.app"
rewrite_file="$(pwd)/../out/production/java_dev/com/jetbrains/ls/responses/License.class"
rewrite_file2="$(pwd)/../out/production/java_dev/com/jetbrains/ls/responses/License\$1.class"

echo "Changing directory to ${target_app}/Contents/lib"
cd "${target_app}/Contents/lib"

# 查找包含目标 Class 的 jar 包
check_jar_for_class() {
    local directory="$1"
    local class_file="$2"
    local found=false

    for jar_file in "$directory"/*.jar; do
        if jar tf "$jar_file" | grep -q "$class_file"; then
            # 返回包含指定类文件的jar包名称
            echo "$(basename "$jar_file")"
            found=true
            return
        fi
    done

    # 如果未找到指定文件,则输出日志并退出
    if ! $found; then
        echo "target class_file not found" >&2
        exit 1
    fi
}

jar_name=$(check_jar_for_class "${target_app}/Contents/lib" "com/jetbrains/ls/responses/License.class")
echo "target_jar is : $jar_name"

jar_file="${target_app}/Contents/lib/${jar_name}"
jar_file_back="${jar_file}_Backup"

# 备份文件
if [ ! -f "$jar_file_back" ]; 
then
    echo "Backing up $jar_file to $jar_file_back"
    cp "$jar_file" "$jar_file_back"
fi

# 解压缩 Jar
echo "Extracting ${jar_name}"
jar -xvf ${jar_name} com/jetbrains/ls/responses/License.class

# 替换文件
cp -f ${rewrite_file} "./com/jetbrains/ls/responses/License.class"
cp -f ${rewrite_file2} "./com/jetbrains/ls/responses/License\$1.class"

# 重新打包
echo "Compressing ${jar_name}"
jar -uvf ${jar_name} "com/jetbrains/ls/responses/License.class"
jar -uvf ${jar_name} "com/jetbrains/ls/responses/License\$1.class"
# 清理临时文件
rm -rf ./com

标签:逆向,java,name,jar,idea,ls,file,com,class
From: https://www.cnblogs.com/guanchaoguo/p/18338098

相关文章

  • 轮转数组的Java实现
    轮转数组给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]解法1:把数组看成......
  • Java毕业设计-基于springboot开发的智能学习平台系统-毕业论文(附毕设源代码)
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求/流程分析3、系统功能结构三、系统实现展示1、学生信息管理2、课程信息管理3/试卷信息管理4/公告信息管理四、毕设内容和源代码获取总结逃逸的卡路里博主介绍:✌️码农一枚|毕设布道师......
  • Java面试题:请问接口与抽象类有何区别?
    引言在OOD(面向对象设计)中,经常会用到抽象类或接口。而在使用过程中,也许会有不少人认为接口和抽象类差不多,然后就想当然地觉得可以相互替换。事实上,虽然他们有很多相似点,但也有很大差异。面试官通常会问你他们到底有哪些差异,以考察你的面向对象功力够不够。下面我就从三个层面谈......
  • java笔记3
    6.类与对象面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。对象可以包含数据和代码,它们是现实世界中某些事物的抽象。面向对象与面向过程面向过程编程:关注于动作和步骤,将程序分解为一系列的过程或函数。面向对象编程:关注于数据和对象,将程序构建为交互的对象集合。......
  • Java流程控制语句结构中的循环结构
    循环结构目录循环结构while循环do...while循环for循环如果您想要同样的操作执行多次,就需要使用循环结构。Java中有三种主要的循环结构:while循环do…while循环for循环while循环while是最基本的循环,它的结构为:while(布尔表达式){//循环内容}只要布尔表达式......
  • “外挂”——逆向软件的分析与破解
    本文来源无问社区,更多实战内容,渗透思路可前往查看http://www.wwlib.cn/index.php/artread/artid/11458.html#maodian1前言:“外挂”的制作离不开软件的分析破解,这平时做ctf中的逆向题是有⼀定的差别的。最直观的区别体现在两者的⼤⼩。⼀个逆向题⼀般只有⼀两兆⼤⼩,⽽⼀般的软......
  • Java 抽象类
    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。......
  • Java编译和运行的命令
    1.3Java编译和运行的命令目录1.3Java编译和运行的命令1.3.1Java编译和运行的基础概念1.3.2基本步骤1.编译Java代码2.运行编译后的代码1.3.3详细解释1.3.4常见问题1.3.5常用Java命令javacjavajar1.3.1Java编译和运行的基础概念源代码文件(.java):这是你写的Java代......
  • Java跨平台原理
    1.4Java跨平台原理由源文件(.java)--->字节码文件(.class)(二进制文件)----->解释---->Unix,Win,Linux等机器。一次编译,到处运行编译器的作用:将源文件编译成class文件虚拟机的作用:将字节码文件解释成对应平台机器码并执行。java可以实现跨所有的平台?只有提供并且......
  • August 1st, Java Study Notes,static&non-static method
    IfollowedthevideoandrecordedsomeofitMostoftheideasarealreadyinthecomments,andtoputitbluntly,theyarethetranslatedwordspublicclassdog{publicintweight;//dog没有一个固定的weight,所以我们不使用static定义weight//定......