提取Jar2Exe源代码,JavaAgent监控法

本文介绍了如何使用JavaAgent监控法来提取Jar2Exe打包成的exe程序中的源代码,包括不同级别的保护下的解密方法,如简单打包、隐藏档案和加密+隐藏。通过设置JavaAgent并在程序运行时dump加载的类文件,从而获取部分源代码,但这种方法存在局限性,不能获取未加载的class和资源文件。
摘要由CSDN通过智能技术生成

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

在这里插入图片描述
最近遇见一个麻烦,明明知道是java写的小软件,但是打包成了exe,木得办法,之前打包的都有缓存能在TEMP文件夹找到。这次可不一样了,特此记录一下。

为此特地搜集了一些java打包成exe的软件。

一、exe4j。
说明:exe4j可以将Jar文件制作成exe文件,但需jre支持,也可将Jar文件放在外面。
软件性质:共享软件
下载地址:http://www.ej-technologies.com/products/exe4j/overview.html
二、JBuilder。
说明:新版本的JBuilder可以直接把工程制作成各系统的可执行文件,包括Windows系统。
软件性质:商业软件
下载地址:略。我是从eMule下载的。
三、NativeJ。
说明:与exe4j功能类似。
软件性质:共享软件
下载地址:http://www.dobysoft.com/products/nativej/download.html
四、Excelsior JET。
说明:可以直接将Java类文件制作成exe文件,除AWT和Swing及第三方图形接口外可不需jre支持(Java5.0不行)。
软件性质:共享软件
下载地址:http://excelsior-usa.com/home.html
五、jshrink。
说明:可将Jar文件打包进exe文件。同时具有混淆功能(这才是它的主要功能)。
软件性质:共享软件
下载地址:http://www.e-t.com/jshrink.html
六、InstallAnywhere。
说明:打包工具,对Java打包最好用。可打包成各操作系统运行包。包括Windows系统。
软件性质:商业软件。
下载地址:http://www.zerog.com/
七、InstallShieldX。
说明:与InstallAnywhere类似,但比InstallAnywhere功能强大。相对的,比较复杂,不易上手,我现在还没学会。
软件性质:商业软件。
下载地址:http://www.installshield.com/
八、Jar2Exe.
  这是今天特地要说的java打包成EXE的软件
  下载地址:http://www.jar2exe.com/

Jar2Exe
明文:简单的打包方式,解压软件解压一下所有Class文件都在里面。
隐藏,Jar包会被经过简单的加密之后存储在EXE程序中的资源内。
加密+隐藏:Jar包会被加密,并且所有文件名都会被哈希,之后存储在EXE程序资源中,这是最常见的一种加密,也是最麻烦的一种提取方式。
面对后两种情况下,通常来说,我们如果想要提取完整的jar包,必须用ODB调程序执行到解密完成调用jar的位置,然后dump内存把所有内容dump下来。

这里学习一种方法(但是方法有一定缺点,我们后面讲把)
首先构建一个Java代理(JavaAgent),目的是让程序员可以更加灵活的监控Java虚拟机的运行。我们要实现的是监控ClassLoader,在它要加载一个类的时候,dump出这个类来并写入一个jar文件中。

然后激活该JavaAgent,接着运行Jar2Exe编译的Exe程序。尽可能多的测试程序中的功能,点击不同的按钮,让更多的类文件被加载到内存中,这样它们就会被dump出来。

但是缺点是很明显的
1.如果class没有加载就dump不到了
2.jar中的图片、音频等资源是得不到的。

重点来了!下面讲步骤

1.准备工作
下载地址:https://github.com/HaoQinLandv/e2j

然后放到同一个目录下

打开命令行并进入要破解的程序所在目录,在命令行输入以下命令设置JavaAgent的加载

set JAVA_TOOL_OPTIONS=-javaagent:e2j-agent.jar

该命令是让java程序在加载一个类时会自动调用JavaAgent

2.操作
命令行运行你需要提取源代码的软件即可。

这种方法有缺陷,但是最简单的办法,下面来看国外大神如何提取的。

http://reverseengineeringtips.blogspot.com/2014/12/unpacking-jar2exe-21-extracting-jar.html

这个连接天朝境内无法访问。

===================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值