我写了一个Android客户端应用程序,其中我使用静态URL“发布”到我的服务器。我使用APKTool反编译APK,发现我可以在它生成的.smali文件中看到我在.java代码中提到的URL。我想避免让这个URL显示如下。有没有办法隐藏/混淆java代码中的URL?
这是来自反编译的.smali文件的示例。
invoke-direct {v8}, Lorg/apache/http/impl/client/DefaultHttpClient;-><init>()V
.line 194
.local v8, httpclient:Lorg/apache/http/impl/client/DefaultHttpClient;
new-instance v9, Lorg/apache/http/client/methods/HttpPost;
const-string v23, "http://example.com/getdata.php"
move-object/from16 v0, v23
invoke-direct {v9, v0}, Lorg/apache/http/client/methods/HttpPost;-><init>(Ljava/lang/String;)V
invoke-direct {v8}, Lorg/apache/http/impl/client/DefaultHttpClient;-><init>()V
.line 194
.local v8, httpclient:Lorg/apache/http/impl/client/DefaultHttpClient;
new-instance v9, Lorg/apache/http/client/methods/HttpPost;
const-string v23, "http://example.com/getdata.php"
move-object/from16 v0, v23
invoke-direct {v9, v0}, Lorg/apache/http/client/methods/HttpPost;-><init>(Ljava/lang/String;)V
答案 0 :(得分:4)
可以使用加密,base64编码和诸如此类的东西对URL进行模糊处理,但是您所做的任何事情都不能保护您的URL。精明的程序员将始终能够识别您的应用程序发送的消息;如果您需要安全性,请保护服务器,而不是客户端