我想确保我的应用程序的内容是安全的。我在我的应用程序中有一个加密数据库的密码,我只想弄清楚我的项目中是否存在无法通过逆向工程访问的安全位置。
如果你能简短地解释一下逆向工程是如何工作的,那就太好了。ThanQ。
请不要在ProGuard上发布链接!
发布于 2012-08-01 16:11:04
任何硬编码的值都可以通过反向工程来查看你的应用。
这包括密码、urls等。
要对android应用程序进行逆向工程,请执行以下步骤:
1-将应用程序的APK文件重命名为ZIP (例如myapp.apk -> myapp.zip)
2-打开压缩文件并检索classes.dex文件。
3-使用dex2jar从classes.dex获取jar文件
4-使用jd-gui打开jar文件并查看原始代码。
发布于 2012-08-01 16:09:06
哈瓦,
如果您将密码作为静态字符串存储在您的应用程序中,则它是安全的,而不是。即使您使用的是ProGuard,也很容易找到它。保护它的最好方法是根本不存储它。相反,如果可能,让您的应用程序将某种类型的唯一标识符发送到验证用户的服务器(可能使用LVL),然后服务器返回DB密码或实际的DB数据本身(存储在服务器上)。
如果这是不可能的,或者如果您不能访问自己的服务器,那么至少可以通过将字符串存储为XOR字符串来以某种方式对其进行模糊处理,或者更好的是,想出您自己的函数来对字符串进行模糊处理。在java代码中永远不要有一行代码看起来像password = "mypass";。
发布于 2012-08-01 16:09:52
在逆向工程中:将.apk文件从.apk重命名为.zip文件,然后提取zip文件并找到您的文件夹,
但您找不到项目的.class文件
https://stackoverflow.com/questions/11754976
复制相似问题