看了一个分析文章,想起以前写的一个初版的提取器,也发来与大家共享下
http://blog.csdn.net/luozhuang/archive/2011/01/28/6167799.aspx
依据该分析文章,所写的提取脚本如下,根据文后所附的软件即可提取了
提取Script代码
open D:/works/Script/script.dat skip 12 read 4 filecount print filecount set i=0 set newpos=16 loop: seekto newpos read 32 filename print filename read 4 filestart skip 4 read 4 filesize set newpos=newpos+48 seekto filestart print filestart print filesize read filesize subfile subopen D:/works/script/{i}.tx_ subwrite subfile subclose set i=i+1 if i<=filecount goto loop
以上代码里的文件目录是使用绝对路径,所以大家要修改成你自己的实际路径.
脚本代码说明
脚本命令
label: 设置标签,此标签可以通过if xxx goto label来跳转
格式:xxxlabel:
open 打开一个包文件,就是要解包的文件,如open c:/abc.cab
格式:open 文件绝对路径
close 关闭包文件
格式:close
seekto 定位到包文件位置,其中位置可以是常数或变量,默认从文件头算起
格式:seekto 位置[ 方式] 位置方式可以取如下值:filebegin文件头 filecur当前位置 fileend文件尾
skip 从当前包文件位置跳过常数值或变量值
格式:skip 跳过位置
read 从包文件读指定字节数到变量
格式:read 字节数 变量
print 打印字符串或者变量值
格式:print "字符串" 或者 print 变量名
set 设置变量,可做简单计算
格式:set abc=1; set abc=abc+1
if 条件跳转
格式:if 条件成立 goto label
subopen 保存文件,可以用{}将变量括起来,用变量定义名字
格式:subopen 文件绝对路径。如subopen c:/subfile{i}.sub
subclose 关闭保存文件
格式:subclose
subwrite 输出变量内容到保存文件
格式:subwrite 变量名
大家可以依据他来写提取360资源和一些没压缩的资源文件.
因为当时是写来玩玩的,所以没有想把他做成一个发布软件,所以没有用到执行线程,运行后会有一段时间界面锁定,以及脚本变量没有做字符操作,无法识别资源里的文件名,还有一些其他问题,例如执行效率等,都没有去处理,如果大家觉得有点用,我也可以去完善下,或把代码发来大家一起研究下.
提取软件:
下载地址:http://download.csdn.net/source/3009363