我有一个使用GoogleVolley的Android应用程序作为我的下载代理。我只是尝试使用ProGuard来混淆代码,并发现volley下载在运行时开始失败。这是我的ProGuard配置:-keepclassandroid.support.v4.app.**{*;}-keepinterfaceandroid.support.v4.app.**{*;}-keepclasscom.actionbarsherlock.**{*;}-keepinterfacecom.actionbarsherlock.**{*;}-keepclasscom.android.volley.**{*;}-kee
我有一个Android项目,在使用ProGuard混淆运行后,我最近将其发布到市场。导出的项目没有任何复杂性,但我怎么知道它被混淆了?我可以做些什么来验证混淆是否成功? 最佳答案 查找dump.txt、mapping.txt、seeds.txt和usage.txt。它们可能位于项目目录的proguard文件夹中。这些是在您的代码上运行ProGuard时创建的。这些充满了关于混淆的信息,特别有用的是mapping.txt,它显示了ProGuard将您的各种成员名称变成了什么。 关于使用Pr
有时您需要在应用程序本身中存储密码,例如用于与您自己的服务器通信的用户名/密码。在这些情况下,不可能遵循存储密码的正常过程——即散列密码、存储散列、与散列用户输入进行比较——因为你没有任何用户输入来与散列进行比较。密码需要由应用程序本身提供。那么如何保护APK中存储的密码呢?像下面这样的密码生成函数是否相当安全?纯文本:Stringpassword="$()&HDI?=!";简单混淆:privateStringgetPassword(){Stringpool="%&/@$()7?=!656sd8KJ%&HDI!!!G98y/&%=?=*^%&ft4%(";returnpool.subs
我正在将一个项目从Ant转移到Gradle,但有些事情我想不通。事实构建发布APK(即混淆)后,我注意到该应用严重崩溃。错误可以总结为:java.lang.NoSuchMethodException:[classandroid.content.Context,interfaceandroid.util.AttributeSet]调试(即非混淆)APK工作正常,所以我猜这与我的ProGuard/DexGuard配置有关。我试图通过添加以下语句来保留类引用:-keepclasscom.mypackage.MyCustomView因此,发布APK工作正常。然后我做了一些研究并尝试了这个更具体
您好,我开发了一个android库,现在我想混淆它以便重新分发。我使用eclipse和android版本4.1.2开发我的库。我尝试使用eclipse和pro-guard进行混淆。我做导出,也把proguard.config=proguard-project.text放在project-properties但它不生成任何jar文件。它向我显示结果,因为它不允许库项目。所以我不知道如何混淆android库项目。我需要有关如何混淆android库项目的帮助。需要帮助谢谢。 最佳答案 AndroidSDK不会将ProGuard应用于库项目
任何人都可以分享Android的示例/简单混淆ANT任务吗?前提是我有完整的APK,我只需要通过*classhruProguard然后准备*.dex来构建APK 最佳答案 我找到了解决方案:获取Proguard-将proguard.jar复制到已知目录(比如MyProject/proguard)准备proguard.cfg-描述优化/混淆的内容和方式。Proguard的manual中详细描述了此过程准备以下ANT的build.xml(或像这样的)-非常感谢thisguy更新完成build.xmlCleaning...Creating
一、前言代码逆向,从来都不神秘,有人的地方就有江湖,同样有代码的地方,就有逆向,如何防护代码被逆向分析或破解,也是正向开发者们必须思考的一个问题,考虑代码混淆实际上就是增加代码的破解难度,防止逆向工程和代码分析,以保护知识产权和应用程序的安全性,它在软件开发过程中可以用于保护关键算法、隐藏敏感信息、防止代码剽窃和修改,以及减少应用程序的漏洞被利用的风险。二、混淆方案修改方法和变量名:将方法和变量名更改为无意义的、随机生成的名称。可以使用工具如Mach-O编译器(Mach-OCompiler)来自动化执行此操作。使用宏定义或函数替换:将方法调用替换为宏定义或函数调用,使得代码的结构更难以理解和分
我使用mysql数据库自动递增作为订单ID。当我向用户显示订单ID时,我想以某种方式屏蔽/混淆它。为什么?所以乍一看,管理员用户很明显是什么号码指的是(订单以10开头,客户以20开头等)乍一看,这只是我的第4个订单。基于此thisanswer,我希望屏蔽/混淆的订单ID为:只有数字一致的长度(如果可能的话)不会引起碰撞是可逆的,这样我就可以解码它并获得原始ID我如何在PHP中实现这一点?它不必非常复杂,乍一看并不明显。 最佳答案 我认为您可以使用XOR运算符来隐藏“乍一看”,例如(MySQL示例):(id*121)^2342323其
我正在开发一个新应用程序,为了掩盖它处于初期阶段的感觉,我想掩盖任何可能揭示这一点的实例,例如,$postId=000001。相反,我们会得到$postId=sH4d6s8d。一些简短但独特的东西。我已经阅读了其他几个问题,不幸的是,大多数答案都涉及安全问题。应用程序安全在这里不是问题,我只是在寻找一种通过GET传递行id的模糊表示的方法,并让该URL可共享,这意味着多台用户机器可以解释混淆。我略读了MySQL、XOR的代理键,但我还很陌生,我的理解很快就糊涂了。这里有什么合适的解决方案?有什么例子吗?谢谢。更新决定采用简单的XOR+urlencode解决方案。即:$v=urlenco
我正试图找到一些方法来混淆MySQL中的SQL代码。在Oracle数据库中存在“wrap”功能,但我没有找到类似的功能。一些想法?最终的目标是让客户对代码有一定的理解上的困难。 最佳答案 我认为MySQL没有混淆代码的能力。您可以通过创建STOREDPROCEDURE来封装整个SQL查询代码。,虽然没有封装,但至少在代码中使用时不会显示整个SQL查询(PHP、.Net等...)。 关于mysql-我可以混淆MySQL中的SQL代码吗?,我们在StackOverflow上找到一个类似的问题