For text search i'm only considering ASCII/UTF-8 (they're the same for hex characters).
Considering all ways unicode might be stored would be more intensive. I think also supporting UTF-16 would be sufficient... agreed?
You mentioned that you would like an option for setting search direction, what do you mean by that?
Do you mean that you want to scan a file from end to beginning? Or do you mean an option for setting start and end offset?
The second option (setting end/start offset) would be very handy, but I don't see the advantage of scanning a file backwards...
As for making the tool multi-threaded, there are some issues/buts:
1. Maintaining portability (Win32/Linux) with threads requires some work.
2. With options for setting start/end offset it's basically not needed, as multiple instances can be run concurrently, each working on a different part of the input elf file.
3. I've not coded in C for ages (apart from this project), which makes getting things done in C relatively hard for me (if only I made this in Java... ).
So, what will I do? I will implement scanning for UTF-16 hex string and add option for setting start and end offset.
I will probably implement scanning for UTF-16 hex strings in such a way, that it will be easy to also support UTF-32 (just in case).
I might also try to make it multi-threaded, as it would be a fun thing to do
But before doing that, I will probably make sure that the input elf file is read using a separate thread while processing it at the same time, as it is higher on my personal ToDo list (and more interesting to implement).
So don't expect multi-threaded brute-forcing very soon.
Btw, I'm having some friends over for the rest of the day. So I will probably not get things done until late this evening/night (probably tomorrow).
A big thanks for all the feedback!
I've only tested my tool on like 3-4 different files, as I wrote this program just for fun, not to use it personally
So, I'm very surprised (and glad) that there haven't been any serious bug-reports.
the klic is always at the end of the elf...this means the last 1/3 of the file...sometimes up to last 1/10 of the file...so starting the search from the middle of the file or from the end to the beginning will be beneficial...but the gain will be minimal...
Thanks for the new version Aldo
But the "SelfAppVersion" original value (scetool -i -> "Application Info" section -> "Version") is 01.00 and not 01.05.
It's different than the "APP_VER" value in PARAM.SFO
you can overcome this by bruteforcing the USRDIR...this way the PARAM.SFO will not be used...
I cant get the file BinkPS3SPU.spu.self (From E3's Splinter Cell trilogy fix) to rencrypt properly. It'll decrypt it into an elf, but it wont rencrypt to SELF nor FSELF because it seems the elf was decrypted wrong or something. Ive even tried manually in command line with C0A3B7641C2AD1EF20133A28A3E15FE3 klic same error.
I've got all self for the game converted to DEX except this one
PS3 Slim w/ Rebug Rex 4.30.2, 500GB Internal, 1TB/3TB External; PS2 Fat McBoot w/ Hard Drive; Windows 7 x64 Ultimate
Last game finished: Crysis 3 | Currently Playing: Dead Space 3