(adsbygoogle = window.adsbygoogle || []).push({});
PowerObfuscator
What is it?
PowerObfuscator is a little tool that I've been working on for a little while now which will allow you to protect your programs.
This program can be used to obfuscate and protect code for PS3 plugins (and probably homebrew too).
Here's what the program looks like:
You must login or register to view this content.
What can it do?
This program can be used to encrypt any functions and data within your program, meaning someone who wants to crack it will have a hard time.
With this type of protection, the functions and strings will be decrypted at runtime, meaning that someone who wants to do harm will be able to see your actual code and data once it's been loaded, this too just makes it harder to crack, not impossible.
Features:
- Simple and easy-to-use API
- Encrypt any function (limited to 5 max in LITE version)
- Encrypt all strings (not available in LITE version, .rodata section only)
Will this prevent my menu from getting cracked?
Can't guarantee it but this'll definitely slow anyone down.
How can I get it?
You can download the tool along with the required API
You must login or register to view this content. (
you will need all of the supplied files to be in the same folder with the executable)
You can also find a demo project
You must login or register to view this content.
Virus scan for PowerObfuscator.exe
You must login or register to view this content.
Program was written in C++ and packed with VMProtect, hense the false positives.
Not uploading a virus scan for the other files as they all come with the PS3SDK, I just renamed them
How do I use it?
- Open your project
- Copy libpobfapi.a and POBF_API.h to your project's source file
- Add the .a file to the Additional Dependencies (in properties)
- Include the header file in your main source file
- In main, or wherever you'd like to do the decryption, insert the following code
POBF_API::init("<KEY GOES HERE>");
POBF_API::decrypt((int)MY_ENCRYPTED_FUNCTION);
- Put any random key into init
- Then call decrypt for whichever functions need to be decrypted
- Built it
- Run PowerObfuscator.exe and load your prx
- Select whichever options and whatever functions you'd like to have encrypted
- Make sure the key matches the one you put in the prx
- Click "Protect"
- You'll find a file with the suffix "obf", this is your new, protected program
What does it look like when you go to view it in IDA?
The encrypted functions just turn into a mess:
You must login or register to view this content.
And the strings just look like random characters all thrown together:
You must login or register to view this content.
Changes to expect:
- Figured out how to inject code into a compiled binary so I plan on making it so you wont even need the API in the future
- Completely disable viewing programs in IDA (will see the following when opening in IDA You must login or register to view this content.)
- Increased security
- Encrypting .data section
- Tamper protect (disallow modifying program)
When can we expect a full version?
I don't know, not sure if I want to make this better and sell it or if I want to just release the source of it. Only time will tell.
I'll take any feedback, and use this to decide what I'm going to do with it in the future.