博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从exe4j生成的exe中抽取jar文件
阅读量:6199 次
发布时间:2019-06-21

本文共 1267 字,大约阅读时间需要 4 分钟。

hot3.png

从exe4j生成的exe中抽取jar文件 博客分类: java

现在网络上越来越流行.net和java写的客户端的小应用程序,而且后缀是exe。本文讨论的是如何从exe4j封装的exe文件中将自己想要的jar抽取出来。

exe4j一直是一种比较通用的java exe封装工具,但是其并没有将jar转换为本地文件,而是将jar文件通过特殊处理后,封装成的一个exe文件。因此只要我们了解了exe4j的原理, 就可以将jar文件从exe文件中提取出来,并通过反编译工具来查看程序代码。
1. 分析Exe4J,得知其在添加文件到.exe时,使用0x88将文件内容Xor,所以第一步,我们需要将原始的数据提取出来:

import
 java.io.
*
;
import
 java.util.
*
;
public
 
class
 gen {
    
public
 
static
 
void
 main(String args[]) 
throws
 IOException {
        FileInputStream fin 
=
 
new
 FileInputStream(args[
0
]); 
//
 可以将整个exe文件解码
        FileOutputStream fout 
=
 
new
 FileOutputStream(args[
1
]);
        BufferedInputStream bin 
=
 
new
 BufferedInputStream(fin);
        BufferedOutputStream bout 
=
 
new
 BufferedOutputStream(fout);
        
int
 in 
=
 
0
;
        
do
 {
            in 
=
 bin.read();
            
if
 (in 
==
 
-
1
)
                
break
;
            in 
^=
 
0x88
;
            bout.write(in);
        } 
while
 (
true
);
        bin.close();
        fin.close();
        bout.close();
        fout.close();
    }
}

2.分析提取出来的数据文件,使用WinHex查看其16进制代码。由于Jar文件的开头总是PK开头,并且总包含有manifest.mf文件,并且结尾总是有3个00,同时结尾段有整个Jar包文件的索引,我们可以根据这一特性来分析我们需要的片段。
1、搜索Jar的manifest,然后往前找,找到的第一个PK段,即为一个Jar的开头。
2、查看片段里Jar里的每个class信息,直到最后的文件索引片段。
3、一个Jar的结束片段位于索引片段之后,仍然包含着PK段,并且最后包含着3个00,且这3个00距离PK大概20个字节左右
根据以上3条准则,足以提取整个Jar数据段,然后导入新文件中,并且以zip字段命名,尝试用ZIP解压缩软件打开,看看是否抽取正确。
需要注意的是WinHex非注册版,只能保存280K大小的文件,更大的Jar文件,需要注册版的WinHex才行。

转载于:https://my.oschina.net/xiaominmin/blog/1597872

你可能感兴趣的文章
调试异步加载页面中的js文件
查看>>
PostgreSQL 最佳实践 - 逻辑增量复制(MySQL <-> PgSQL <-> PgSQL)
查看>>
[c#基础]值类型和引用类型的Equals,==的区别
查看>>
android 还原短信
查看>>
大数据下高并发的处理详解
查看>>
postgres中的中文分词zhparser
查看>>
虚拟机怎样进入Bios
查看>>
Linux 文件操作函数
查看>>
MySQL 查找锁之间依赖关系的信息和最源头锁的thread_id号及关系
查看>>
PostgreSQL9.5和JSONB的强大功能
查看>>
简单java在线测评程序
查看>>
使用IconFont减小iOS应用体积
查看>>
Spring 官网下载zip jar
查看>>
BlueStacks安装教程
查看>>
【sql调优】动态采样
查看>>
MS SQL 建表SQL的脚本
查看>>
php中assert方法的安全问题
查看>>
CASpringAnimation的使用
查看>>
jQuery仿QQ空间图片查看特效(全屏,放大,缩小,旋转,镜像,鼠标滚轮缩放)...
查看>>
vSphere web client 迁移虚拟机
查看>>