如题,f-keydle更新了。首先感谢各位用户姥爷的支持,f-keydle(v2.0)得到了非常不错的反响,一度上了榜。
这段时间收到了不少反馈,再加上bandizip那边也从7.30升到了7.32,所以我想是时候优化一下f-keydle,出个更新了。
新来的用户可以去看看之前v2.0的帖子,了解一下软件的功能:
【f-keydle 解压、去套娃助手(v2.0)】
https://www.52pojie.cn/thread-1828882-1-1.html
下载链接还和以前一样:
https://wwkq.lanzoum.com/b01keydle
普通用户请下载下图所指的两个文件,“v2.1的使用演示.zip”解压后是使用教程
感兴趣的大佬可以研究一下源码:“f-keydle_解压、去套娃助手_v2.1【源码】.zip”
下面是v2.1更新内容:
1.保留原有直接双击“.bat”文件进入的操作方法的同时,新增拖放文件(01-xxx.bat,05-xxx.bat)或文件夹(01.bat到05.bat,还有“【【清除程序残留xxx.bat”)到“.bat”文件上快捷处理的交互方式。
使用原有操作方式时,解压完后窗口不退出,使用拖放操作时,解压完后窗口退出。
2.新增wim、iso压缩文件格式的识别支持,现在wim和iso文件也能识别并解压了。
3.新增弹窗通知解压成功或出错的功能,在解压缩大量文件需要时间等待的情况下,相比之前能得到更加醒目的提醒,有利于暂时离开或无人值守的场景。
4.程序组件Bandizip便携版升级至目前最新的7.32版本。
5.新增“【【清除程序残留文件+恢复被标记文件】】.bat”,
功能:解压或进行其他操作时,有时程序会因为各种情况意外退出,此时目录中就可能会残留有打上标记的文件(“xxx【解压失败】”),或者残留有程序自身的文件(“_child_excuter_xxx”、“password.txt”),这个程序就是用来清除文件夹下的程序残留文件和恢复被标记文件的。
6.移除原先集成在“01-解多层压缩+解文件夹套娃.bat”中的删除指定文件的功能,删除指定文件的功能现在完全交给03-xxx.bat、04-xxx.bat,一定程度上降低因为配置文件中存有上一次的配置而错删文件的情况,增强了功能的专一性,也一定程度上加快了运行01-xxx.bat的运行速度。
7.在解压和保护模式下删除指定文件时,对文件的标记和解除标记改为均由Python程序操作,一定程度上解决了批处理除去标记时,由于文件名存在特殊字符,而造成批处理出错,最终导致标记没有被完全去除掉的错误。
8.通过对没有扩展名的单个压缩包增加一个扩展名(.UnknownedZipFile)的方法(对应函数:def secure_file_name(fname:str) -> str:),一定程度上解决压缩包的文件名(没有扩展名)和压缩包里面的文件夹名称重复,导致bandizip报错,创建不了文件的一个不太常见且可能发生的潜在错误。
9.优化了一下批处理、python和C的代码,完善了注释(尤其是extracter.py的注释),尝试加快运行速度(不知道能有多少提升,毕竟优化的同时也加了上面这些新的功能)。
10.看了:https://www.bandisoft.com/bandizip/howto/open-haozip01.zip/ 之后,新增对2345好压论坛专用分卷的支持,估计很少会碰到这种情况。
11.“04-xxx.bat”解除了不能删除.bat文件的限制。
可能还有其他的改动,记不起来了……
软件现在也能通过额外的转换程序,支持解压peazip文件密钥加密的文件,转换程序请看这篇帖子:https://www.52pojie.cn/thread-1857479-1-1.html,生成密码后,从转换程序复制到配置文件中的密码设置即可。
下面附上软件截图:
本程序github开源地址:
https://github.com/ssh-buanshishi/f-keydle______Multilayer-Compression--and--single-chained---Folder-Nesting--handler
需要完善的地方:
①程序还不能支持exe自解压类型的压缩包,毕竟现阶段无法准确区分是普通可执行程序还是自解压压缩包,不知道有没有exe逆向工程的大佬能提供一下思路或者代码能解决这个问题的;
②对分卷压缩包重命名污染的抗干扰能力有待加强:
对于单个的压缩包,因为f-keydle判断的是文件的内容,也就是特定偏移量上的二进制特征,所以不管单个的压缩包在文件名上伪装成什么样子,都能被f-keydle“挑出来”解压。但是分卷压缩就很特殊了,解压时需要判定哪几个文件为一组,这就牵扯到文件的搜索匹配和归类了,如果按照正常的分卷压缩包命名规则的话,或者在文件名结尾(最后一个点之后)加一些非英文字母和数字的干扰的话,f-keydle还能够区分出来,比如下面的:
===================
测试.part001.r_ar_测试
测试.part002.r_a删r_除
测试.part003.rar
===================
xyz.z01【删除】
xyz.z02
xyz.zip
===================
但是最近我遇到的分卷压缩包命名干扰也似乎越来越“不讲武德”了,比如下面的:
===================
xx图集.替换pic为7z.001替换pic为7z
xx图集.pic.002
xx图集.pic.003
===================
abc.7z.001S
abc.zip.002S
abc.zip.003S
===================
这些存在干扰的分卷文件要么是在倒数第二个点和倒数第一个点之间加各种干扰,或者直接替换,要么是在倒数第一个点之后加入了英文字母或数字干扰,从而导致f-keydle匹配不上分卷压缩文件的特征,把文件漏掉了;或者因为最后一个点之前的那部分不相同,而把文件错误地分到了另一组分卷压缩包里,最终都导致解压失败。
针对这个问题,我也想过怎么通过什么办法,来达到在出现各种干扰的情况下,依旧能准确将分卷文件归类,并且对后缀进行修复、自动编号排序和重命名的效果。但是感觉这个问题有点太过复杂了,很难想出一个保险的方法或者算法。
在我看来,这个问题可能最终要交给AI来做才稳妥一些,但是如果要用到这一步,不光自己的水平不够,不懂什么训练模型、神经网络之类的,即使真的做出来了,恐怕对各位电脑的性能开销是巨大的。所以用电脑自动处理暂时是无解的,只能人工手动上了。
不知道有没有大佬懂这方面的,或者能帮我写个好一点的算法。
除此之外,因为f-keydle每成功解压一个压缩包就会将其删除,所以上次推荐了一个在解压前的备份压缩包工具Hardlink,原作者的帖子在下方:
【WINDOWS下硬链接工具,PT玩家用 v1.3】
最近我发现了这个软件有个小问题,不能给没有扩展名的文件创建硬链接,于是根据代码改了一下,算是修复了这个问题,顺便把界面改得养眼一点:
如果要继续使用Hardlink的话,个人建议使用我的修改版。
修改版的下载链接:https://wwkq.lanzouq.com/b01lelcni
下面是部分可能会报毒的exe的哈勃分析报告,各位可以放心添加信任,如有需要,后续继续添加。
最后祝各位使用愉快!