我希望通过使用混淆或任何好的技术来保护我的应用程序。我在SO上经历过一些问题。
反编译时,我看到两种不错的技巧。
@ParseClassName("ChatGroup")
public class ChatGroup extends ParseObject {
,因为我反编译代码并且它的Manifest.xml丢失或不存在。 另一个代码我在反编译后见过它。
Androidmanifest.xml
可能有人理解这个例子用来保护apk免受反编译。
如何在反编译后使我的代码在UniCode中像字符一样?以及如何隐藏Manifest的反编译。
修改
我已经在三个不同的反编译器上进行了测试。但代码保持不变。 private static void \u02ca(final Context context, String s, final String s2)
{
if (s == null || s.equals(""))
{
return;
}
final long currentTimeMillis = System.currentTimeMillis();
final boolean \u02cf = \u0632.\u02cf(context);
if (!\u02cf || (\u02cf && !\u0632.\u02ce(context)))
{
if (s == null)
{
s = null;
}
\u02ca(context, s);
}
while (true)
{
if (s2 == null || s2.equals(""))
{
break Label_0076;
}
try
{
Toast.makeText(context, (CharSequence)s2, 1).show();
\u0632.\u02ca(context, "letang_last_time", currentTimeMillis);
}
catch (Exception ex) {
continue;
}
break;
}
}
无法帮助查看代码。
答案 0 :(得分:0)
如何在反编译后使我的代码在UniCode中像字符一样?和 如何从反编译中隐藏Manifest。
请记住,没有100%的保护。您可以添加简单的方法,使潜在的攻击者更加困难,但在这种环境中没有安全港。 Google提供了一个名为Proguard的开源工具。它还可以帮助您混淆源代码。
- 创建更紧凑的代码,更小的代码存档,更快的网络传输,更快的加载和更小的内存占用。
使程序和库更难进行逆向工程。
列出死代码,因此可以从源代码中删除它。
重新定位和预先验证Java 6或更高版本的现有类文件,以充分利用其更快的类加载。
答案 1 :(得分:0)
一个应用程序隐藏了Androidmanifest.xml,因为我反编译了一个代码 Manifest.xml丢失或不存在。
我在学习如何使用proguard时对此进行了测试。实际上,事实证明,即使您设法检索AndroidManifeste.xml文件,它也是空的。我在几个APK上测试了这个,xml是空的
关于你的第二个问题,我建议你测试具有这种Unicode的APK,并使用AndroChef反编译器对其进行反编译。即使使用proguard,AndroChef也总是从大多数APK中检索JAVA代码。