not so messy, but getdstring can't support full binary and in QuickBMS, it will stop on \x00
for example, if we want to get a binary like \x14\x5B\x00\xAE, then it will stop on \x00 and because it's c-string and act like a null delimited string (zero terminated), so it's not a best option
and i think that's why there is a problem like unicode converting: https://zenhax.com/viewtopic.php?f=13&t=12984
i have some ideas to make QuickBMS better
1) use command line options in script
it's possible to set command line options from cmd, and QuickBMSver already have a few options, but it can be more useful when we want to do export and import at one script, so a command to switch options will solve many problems
like this: QuickBMSver "-w -r -r -r"
2) store real files in MEMORY_FILE
as i know, QuickBMS works fine with MEMORY_FILE to dump binary files. but if we want to make a script to merge two file, or store a few files with some special names or code, we need to use name or code.
get FILENUM long
set MEMORY_FILE[FILENUM] binary MY_BINARY
[FILENUM] can works with normal variables, but it can be better to support MEMORY_FILE too, as a string, not just a number
3) batch commands
one of the best options that QuickBMS can have in bms script is batch commands
something like QuickBMSver but works like a line of .bat file
like this: QuickBMSbatch "rename FILE1 MY_FILE"