MichaelRocks / paranoid

String obfuscator for Android applications.
Apache License 2.0
673 stars 79 forks source link

Can i decompile then use DeobfuscatorHelper to get my string? #32

Closed tracer8 closed 4 years ago

tracer8 commented 4 years ago

Hi, After use Paranoid, i try to decompile my app and i can know:

MichaelRocks commented 4 years ago

Hi, You can deobfuscate strings if you now their ids. So you have to extract all ids from the bytecode at first.

tracer8 commented 4 years ago

Hi, I'm just use 1 simple decompile tool to decompile my android dex file, then all show up like this image bellow, look like it is easy to do.

Capture

MichaelRocks commented 4 years ago

Yep, but this tool is expected to be used with an obfuscator like ProGuard/R8. And even when obfuscated it's not extremely difficult to deobfuscate strings. If you really need to hide something you shouldn't store it within the app and should use native code to work with sensitive data.

tracer8 commented 4 years ago

Oh, i got it, at least we can make decompiler have more work to do before he can leak our code. Thank you!

MichaelRocks commented 4 years ago

In the last update the obfuscation was improved and now you cannot easily dump all strings without processing all the bytecode. Unfortunately deobfuscation still is an easy thing to do if one is interested and ready to spend some time. Moreover it can be automated.

I believe string obfuscation should be mixed with some other techniques like decompilation protection and code obfuscation but anyway deobfuscation will be possible.

If you have some ideas how to make obfuscation stronger feel free to share. I'll try and implement them with a great pleasure.