我只是使用proguard对我的Android代码进行了模糊处理,然后对其进行了反编译.有许多字符串我真的想隐藏在窥探之中.当我反编译我的代码时,每个人都可以看到字符串......并进行更改.其中一个字符串是我的许可服务器的URL,它们实际上可以将URL更改为指向虚假服务器(因为我将向公众发布服务器代码).隐藏此类信息的最佳方式是什么?
另外,我注意到R类字符串都是随机数,但我在反编译代码中找不到R类.它在哪里?
敌人的例子我看到:new SimpleCursorAdapter(localActivity, 2130903058, localCursor, arrayOfString, arrayOfInt);
2130903058是一个布局文件,但它引用了什么?除非它指向某种地址,否则该数字没有任何意义.
我很难找到在Android设备上加密我的sqlite数据库的可能性,但我找不到令人满意的解决方案.
我需要像libary这样的东西来引用,以便在使用正常的sqlite函数时对我的数据库进行"动态"加密/解密.
我不希望在存储之前加密数据.
我不想加密整个数据库文件,以便在使用之前解密它.
我知道以下项目:
但我找不到任何有关此事的实例.
顺便说一句,我绝对愿意购买商业版本,但我必须在花费几百美元之前测试它.
有没有人为他自己解决这个问题?
编辑:问题由commonsWare解决,如果您按照他的链接:
SQLCypher端口到Android
您将能够下载必要的文件,并且必须将它们添加到您的项目.这可能如下所示:

我想知道用android中的应用程序打包数据库是多么安全.用户可以轻松访问数据库吗?由于我拥有的数据库将拥有数据,我不想被用户滥用而被滥用,在移动应用程序中保护数据库的最佳方法是什么?
我的应用程序也将使用Web服务(联系我自己的网站),例如http:\ www.mysite.com/services/xxx
我的网站会将一些数据返回给移动应用.如果有人反编译java代码(在apk中),他将很容易访问我用于Web服务的URL.如何保护我的网站数据免受恶意用户的攻击.如果有人知道URL,他只需在浏览器中键入该URL并获取json格式的所有数据,这是我不想要的,因为这些数据可能非常敏感.即使我保持编码,用户也可以从java代码(他在反编译apk后获得)中了解编码.
如何保护我的数据库不被滥用?
如果我的应用程序要在移动设备上显示诸如餐馆,酒吧等本地地点,我应该总是使用网络服务从网站上获取它们,或者提供具有这些详细信息的本地数据库,以便可以快速获取信息.在这种情况下,我可以提供UPDATE Web服务,它将更新本地数据库.但是本地数据库的安全性对我来说非常重要.
任何人都可以建议在哪里保留数据库以及如何保护它?
Rgds,Sapan
我正在尝试制作一个安全的Android应用程序.我在我的应用程序中启用了proguard.但它在反编译时不会隐藏任何xml文件或清单.它只更改.java文件.
我尝试使用apktool从Play商店反编译另一个应用程序的apk .然后我得到以下异常
Exception in thread "main" brut.androlib.AndrolibException: brut.directory.Direc
toryException: java.util.zip.ZipException: error in opening zip file
at brut.androlib.ApkDecoder.hasSources(ApkDecoder.java:199)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:83)
at brut.apktool.Main.cmdDecode(Main.java:146)
at brut.apktool.Main.main(Main.java:77)
Caused by: brut.directory.DirectoryException: java.util.zip.ZipException: error
in opening zip file
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:55)
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:38)
at brut.androlib.res.util.ExtFile.getDirectory(ExtFile.java:55)
at brut.androlib.ApkDecoder.hasSources(ApkDecoder.java:197)
... 3 more
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.zip.ZipFile.<init>(Unknown Source)
at brut.directory.ZipRODirectory.<init>(ZipRODirectory.java:53)
... 6 more
Run Code Online (Sandbox Code Playgroud)
然后没有透露xml文件和清单.我也希望像这样保护我的应用程序.这怎么可能?
我正在构建SDK,我需要从app中获取app id和app secret密钥,这将集成我的android SDK.
我看到每个SDK都使用这个概念应用程序ID和密钥.我不知道这有什么用?这如何使系统安全?
任何人都可以帮助我这个主题.
android ×6
proguard ×2
sqlite ×2
apktool ×1
database ×1
decompiling ×1
encryption ×1
exception ×1
java ×1
sdk ×1
token ×1
web-services ×1