Skip to content

Releases: hiroshil/quickbms

quickbms 0.8.0

19 Oct 13:22
c277601
Compare
Choose a tag to compare

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.