Possible next features of QuickBMS

Doubts, help and support about QuickBMS and other game research tools
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

I have found a simple way to bypass the problem of fields that are different than the original value read from the TOC, the new reimport2 mode will remember the last "math" operation performed on the variable and will reverse it for writing the correct value back in the TOC.
That means that "math OFFSET * 0x800" and "math OFFSET + BASE_OFF" are perfectly supported, BUT they are not supported together which means that only one operation per variable is allowed for having a correct new rewritten field.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

quickbms 0.8.4 is almost ready since it's just a bugfix release, no new features.
Any last-minute idea is welcome :)
Phalasius
Posts: 6
Joined: Sat Feb 24, 2018 4:10 pm

Re: Possible next features of QuickBMS

Post by Phalasius »

Hi.

I have an idea for you.

Replace "Press ENTER or close the window to quit" by a way to retry the script.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

If there was a problem the first time, how it could be solved by doing the same things a second time?
Phalasius
Posts: 6
Joined: Sat Feb 24, 2018 4:10 pm

Re: Possible next features of QuickBMS

Post by Phalasius »

For exemple i try many key for Sea of thieves and i need to relaunch and select 3 files/folders each time.
I think i have done 50times with no result and the process will be more faster if i just can retape a new key without relaunch.

If QuickBms understand the issue, they can propose other way ?
For Key issue => Can tape new key
File/Folder issue (block/protected...) => Can select new File/Folder

Still loop, if no folder, file, key issues find, write string to find te problem or understand the issue.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

You are using unreal_tournament_4.bms in a completely wrong way.
The job of the script is extracting files with the correct key, not scanning N keys manually provided by the user (totally useless).

And no, it's not just a "loop", it's a new description with a new answer to get and starting a new process with the arguments saved when it started.
All of this because the user selected a wrong folder once in his life :)
Phalasius
Posts: 6
Joined: Sat Feb 24, 2018 4:10 pm

Re: Possible next features of QuickBMS

Post by Phalasius »

If i don't know the key because nobody find it or share it,
And try to find it in bigExe with hexa editor, and have many result possible,
i need to test each one and i use unreal_tournament_4.bms for that..

But i understand it's the wrong way, show me the good one 8-)
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

If you want to continue with that way it's enough that you use quickbms from command-line or create a file.bat, so you don't have to select script/file/folder everytime.
But it's a waste of time in any case for some reasons.
Anyway here you are OT, this is the correct topic viewtopic.php?f=9&t=1005 in which you will find also some tips.
michalss
Posts: 320
Joined: Sun Aug 10, 2014 12:49 pm

Re: Possible next features of QuickBMS

Post by michalss »

Hi luigi,

ihave an idea, make a wrapper around your functions to use them in .NET code. Like for example compressions, encryptions, coz qbms is only one on the planet which contains so many algos. This would be the best ever :) Thx
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

I remember that in the past quickbms.exe exported ALL its functions but I don't remember what happened later since lot of stuff was added and compatibility problems arised, anyway using exported functions from an executable may not work with some functions and still requires the developer to have knowledge of the prototype of the function and how to use it... not easy for most .NET developers.

Currently the only "solution" would be to execute quickbms.exe and pass a basic script via argument of the -s option but it's far to be a good solution.

Added to my TODO list
michalss
Posts: 320
Joined: Sun Aug 10, 2014 12:49 pm

Re: Possible next features of QuickBMS

Post by michalss »

aluigi wrote:I remember that in the past quickbms.exe exported ALL its functions but I don't remember what happened later since lot of stuff was added and compatibility problems arised, anyway using exported functions from an executable may not work with some functions and still requires the developer to have knowledge of the prototype of the function and how to use it... not easy for most .NET developers.

Currently the only "solution" would be to execute quickbms.exe and pass a basic script via argument of the -s option but it's far to be a good solution.

Added to my TODO list


Thx mate, i have not seen code from qbms coz im not kind a c++ person, but im sure you can figure this out,im mostly using your compressions. Problem with method you mention, is the speed, specially if some files are chunked, it is amost impossible to use it like this.. :(
chrrox
Posts: 388
Joined: Thu Aug 07, 2014 10:28 pm

Re: Possible next features of QuickBMS

Post by chrrox »

aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

lzfse is already available in quickbms but apparently something was wrong, in fact even lzfse_compress crashes.
added to my todo list :)
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

the problem with lzfse was caused by the version I was using in quickbms, the latest lzfse works correctly without any modification to my code.

quickbms 0.8.5 will have all the functions exported and probably some functions called quickbms_compression, quickbms_compression2 and quickbms_encryption to easily use all the algorithms embedded in the tool without headaches.
but keep in mind that loading an executable as a dll without additional code that reconstructs the import table is a bad idea and sometimes works sometimes doesn't.

Example currently used in my tests:

Code: Select all

    HMODULE hlib = LoadLibrary("quickbms.exe");

    int __cdecl (*quickbms_compression)(char *algo, void *in, int zsize, void *out, int size) = NULL;
    quickbms_compression = (void *)GetProcAddress(hlib, "quickbms_compression");

    output_size = quickbms_compression("zlib", input, input_size, output, output_size);
michalss
Posts: 320
Joined: Sun Aug 10, 2014 12:49 pm

Re: Possible next features of QuickBMS

Post by michalss »

aluigi wrote:the problem with lzfse was caused by the version I was using in quickbms, the latest lzfse works correctly without any modification to my code.

quickbms 0.8.5 will have all the functions exported and probably some functions called quickbms_compression, quickbms_compression2 and quickbms_encryption to easily use all the algorithms embedded in the tool without headaches.
but keep in mind that loading an executable as a dll without additional code that reconstructs the import table is a bad idea and sometimes works sometimes doesn't.

Example currently used in my tests:

Code: Select all

    HMODULE hlib = LoadLibrary("quickbms.exe");

    int __cdecl (*quickbms_compression)(char *algo, void *in, int zsize, void *out, int size) = NULL;
    quickbms_compression = (void *)GetProcAddress(hlib, "quickbms_compression");

    output_size = quickbms_compression("zlib", input, input_size, output, output_size);



Thx luigi, looks very very nice, ill try some compressions... yeah.. Just is there any C# sample equivalent pls ?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

I'm not sure about adding quickbms_encryption mainly because there are many arguments for configuring it and may result chaotic to use.

For example this is the syntax of the quickbms command: Encryption ALGO KEY [IVEC] [MODE] [KEYLEN]

5 arguments plus data and size... 7 in total
Maybe I can opt for a solution like quickbms_compression and quickbms_compression2 where the former is basic to use (no dictionary) and the latter is the full (complex) version.
michalss
Posts: 320
Joined: Sun Aug 10, 2014 12:49 pm

Re: Possible next features of QuickBMS

Post by michalss »

aluigi wrote:I'm not sure about adding quickbms_encryption mainly because there are many arguments for configuring it and may result chaotic to use.

For example this is the syntax of the quickbms command: Encryption ALGO KEY [IVEC] [MODE] [KEYLEN]

5 arguments plus data and size... 7 in total
Maybe I can opt for a solution like quickbms_compression and quickbms_compression2 where the former is basic to use (no dictionary) and the latter is the full (complex) version.



Encryption will be tricky im sure of it but compression should be straight forward to do.. To be honest arguments are not the problem as i can see, problem would be to feed such a functions with correct data.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

Worst case scenario there are over 13250 functions exported from quickbms.exe to use :D
michalss
Posts: 320
Joined: Sun Aug 10, 2014 12:49 pm

Re: Possible next features of QuickBMS

Post by michalss »

aluigi wrote:Worst case scenario there are over 13250 functions exported from quickbms.exe to use :D



He uff that is a lot. BTW can you please share sample of compression use in c# ? Thx
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

Maybe I will provide some examples when 0.8.5 is out.