吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4596|回复: 59
收起左侧

[原创工具] zip归档“魔术”小工具

[复制链接]
wihn 发表于 2022-8-4 15:24
这个程序能把文件夹生成一个zip archive,但是如果你点开这个zip archive,会发现文件夹里的文件,大小变成了0,而且变成了文件夹。如果试着直接解压这个zip,会发现只能得到一堆文件夹,原来里面的所有文件都没了。但是,事实上,原来那些文件的数据还是存在在那个zip archive里面的,不信的话可以对比一下原来文件夹的总大小和那个zip文件的大小,或者用十六进制编辑器打开zip文件看看,会发现原来的文件其实还在里面。
这是我原创的工具,仅供娱乐,希望能加深对zip这种容器格式的理解。
使用方法:把想要归档的文件夹直接拖动到ZipHider.exe上面即可。
ZipHider.zip (264.62 KB, 下载次数: 59)
下面是一些使用示意图。
image.png
image.png
image.png
image.png
image.png

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
chao8709 + 1 + 1 我很赞同!
抱薪风雪雾 + 1 + 1 谢谢@Thanks!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
arklw + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Barnes 发表于 2022-8-4 22:03
本帖最后由 Barnes 于 2022-8-5 20:25 编辑

1.png 2.png
把压缩文件中的每一个文件,名字最后都加个"/",就会被解压缩软件认作目录了。把"/"删掉还可以恢复,挺有意思的
[Java] 纯文本查看 复制代码
	public static void main(String[] args) throws Exception {
		ZipFile originalFile = new ZipFile(BASE_DIR + "1.zip");
		ZipOutputStream fixedFile = new ZipOutputStream(new FileOutputStream(BASE_DIR + "Fixed.zip"));
		Enumeration<? extends ZipEntry> entries = originalFile.entries();
		while(entries.hasMoreElements()) {
			ZipEntry entry = entries.nextElement();
			byte[] bytes = toByteArray(originalFile.getInputStream(entry));
			// 文件夹bytes == 0
			fixedFile.putNextEntry(new ZipEntry(entry.getName().substring(0, entry.getName().length() - (bytes.length == 0 ? 0 : 1))));
			fixedFile.write(bytes, 0, bytes.length);
			fixedFile.closeEntry();
		}
		fixedFile.close();
		originalFile.close();
	}

	private static byte[] toByteArray(InputStream inputStream) throws Exception {
		ByteArrayOutputStream out = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024 * 4];
		int temp = 0;
		
		while((temp = inputStream.read(buffer, 0, buffer.length)) != -1)	{
			out.write(buffer, 0, temp);
		}

		return out.toByteArray();
	}
樊汶鑫 发表于 2022-8-4 16:13
allennany 发表于 2022-8-4 16:14
Yu417 发表于 2022-8-4 16:14

确实有点折腾
shaokui123 发表于 2022-8-4 16:32
没看懂啥意思
杀软还报毒
 楼主| wihn 发表于 2022-8-4 16:39
shaokui123 发表于 2022-8-4 16:32
没看懂啥意思
杀软还报毒

就是打包一个文件夹成为zip文件。然后用常规的压缩软件打开看,会发现是空的,文件变成了大小为0的文件夹。但是实际上文件的内容是在zip里面的,相当于一个对压缩软件的“障眼法”。报毒可能是因为用到了遍历文件夹的函数,大神可以分析一下实际上没有毒的,不放心还可以用虚拟机。
 楼主| wihn 发表于 2022-8-4 16:40

就是打包一个文件夹成为zip文件。然后用常规的压缩软件打开看,会发现是空的,文件变成了大小为0的文件夹。但是实际上文件的内容是在zip里面的,相当于一个对压缩软件的“障眼法”。
erui 发表于 2022-8-4 16:55
谢谢楼主分享,不明白楼主这么做,有什么意图呢?
 楼主| wihn 发表于 2022-8-4 17:02
erui 发表于 2022-8-4 16:55
谢谢楼主分享,不明白楼主这么做,有什么意图呢?

想引起一下对zip归档格式原理性的思考。
9588 发表于 2022-8-4 17:57
可以当做加密软件使用!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 07:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表