Releases: hiroshil/quickbms
quickbms 0.8.0
QuickBMS generic files extractor and reimporter 0.8.0
by Luigi Auriemma
e-mail: me@aluigi.org
web: aluigi.org
(Oct 19 2020 - 20:04:18)
quickbms.aluigi.org Homepage
zenhax.com ZenHAX Forum
@ZenhaX Twitter & Scripts
Usage: ./quickbms
[options]
<script.BMS>
<input_archive/folder>
[output_folder]
Options:
-l list the files without extracting them
-f W filter the files to extract using the W wildcards separated by comma or
semicolon, example -f ".mp3,.txt;myname"
if the filter starts with ! it's considered an ignore filter
the filter can be also a text file containing filters
example: quickbms -f ".mp3;!.ogg" script.bms archive.dat output
example: quickbms -f myfilters_list.txt script.bms archive.dat
please use {} instead of * to avoid problems on Windows, you can also
use multiple -f if you feel more comfortable
-F W as above but works only with the files in the input folder (if used)
example: quickbms -F "*.dat" script.bms input_folder output_folder
-o if the output files already exist this option will overwrite them
automatically without asking the user confirmation
-k keep the current files if already exist without asking (skip all)
-K automatically rename the files if duplicates already exist
-r experimental reimport option that should work with many archives:
quickbms script.bms archive.pak output_folder
modify the needed files in output_folder and maybe remove the others
quickbms -w -r script.bms archive.pak output_folder
you must read section 3 of quickbms.txt before using this feature
-u check if there is a new version of QuickBMS available
-i generate an ISO9660 file instead of extracting every file, the name of
the ISO image will be the name of the input file or folder
-z exactly as above but generate a ZIP file
Advanced options:
-d automatically create an additional output folder with the name of the
input folder and file processed, eg. models/mychar/mychar.arc/FILES,
-d works also if input and output folders are the same (rename folder)
-D similar to -d but will not create the folder with the filename
-E experimental option for automatically reversing the endianess of any
file simply reading it field by field (so each get will produce a put)
-c quick list of the basic BMS commands and some notes about this tool
-S CMD execute the command CMD on each file extracted, you must specify the
#INPUT# placeholder which will be replaced by the name of the file
example: -S "lame -b 192 -t --quiet #INPUT#"
-Y automatically answer yes to any question
-O F redirect the output of all the extracted files to the file F
-s SF add a script file or command before the execution of the input script,
useful if an archive uses a different endianess or encryption and so on
SF can be a script or directly the bms instruction you want to execute
-. don't terminate QuickBMS if there is an error while parsing multiple
files (like wrong compression or small file), just continue with the
other files in the folder
Debug and experimental options:
-v verbose debug information, useful for verifying possible errors
-V alternative verbose output, useful for programmers
-q quiet, no *log output
-Q very quiet, no output except the Print command
-L F dump the offset/size/name of the files inside the file F
-x use the hexadecimal notation in myitoa (debug)
-0 no extraction of files, useful for testing a script without using space
-R needed for the programs that act as interface for QuickBMS
-a S pass arguments to the input script that will take the names
quickbms_arg1, quickbms_arg2, quickbms_arg3 and so on, note that they
handled as arguments so pay attentions to spaces and commas, eg:
-a "arg1 "arg 2", arg3"
-a arg1 -a ""arg 2"" -a arg3
-H cool HTML hex viewer output, use it only with very small files!
-X cool hex viewer output on the console (support Less-like keys)
-9 toggle XDBG_ALLOC_ACTIVE (enabled)
-8 toggle XDBG_ALLOC_INDEX (enabled)
-7 toggle XDBG_ALLOC_VERBOSE (disabled)
-6 toggle XDBG_HEAPVALIDATE (disabled)
-3 execute an INT3 before each CallDll, compression and encryption
-I toggle variable names case sensitivity (case insensitive)
-M F experimental compare and merge feature that allows to compare the
extracted files with those located in the folder F, currently this
experimental option will create files of 0 bytes if they are not
different, so it's not simple to identify what files were written
-Z in reimport mode it will replace all the archived files with zeroes
-P CP set the default codepage to use, it can be a number or string
-T do not delete the TEMPORARY_FILE at the end of the process
Features and security activation options:
-w enable the write mode required to write physical input files with Put*
-C enable the usage of CallDll without asking permission
-n enable the usage of network sockets
-p enable the usage of processes
-A enable the usage of audio device
-g enable the usage of video graphic device
-m enable the usage of Windows messages
-G force the GUI mode on Windows, it's automatically enabled if you
double-click on the QuickBMS executable
Examples:
quickbms /home/zip.bms /home/myfile.zip "/home/new folder"
quickbms -l -f ".txt;.dds" zip.bms myfile.zip
quickbms -F "{}.bff" /home/nfsshift.bms /home/Shift\Pakfiles /home/output
Check quickbms.txt for the manual and the list of additional credits.