Some time ago, I was looking at a protected project using proguard.Program, Found the role of proguard:
1) The confusion class name is changed to a. A. X.
2) obfuscated the function name
3) obfuscated strings
ViewCodeAnnoying. In addition, if JD-Gui is used for decompilation, errors may occur.
However, proguard has many disadvantages, such
String test = "winsunxu ";
After progurd protection, it may be a bunch of garbled characters ".
When there is a dialog box that promotes incorrect input, the string is a very important guide, because the code context logic must be nearby.
At this time, you find that the plaintext strings are in the form of "ah", it is difficult to locate the corresponding dialog box, one way is
Write a small program by yourself and use proguard to protect it. Then, let's see what the corresponding string looks like. Now we will know.
For example, a.apk contains the string "ah", you do not know what it means. (In fact, it corresponds to "incorrect input ").
However, you can write a B .apk IN THE keystore, and use proguard to protect it to see "incorrect input", which corresponds to the string after progurad, and then use the encrypted string to locate it.
The encryption corresponding to progaurd is not variable. The same output is obtained after two identical inputs at different times.