问题标签 [android-obfuscation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android Proguard - 混淆方法参数和局部变量
我在我的应用程序中使用 PROGUARD。当我反编译 APK 时,我仍然看到方法参数的原始名称以及在方法体内声明的局部变量。
我试图使用这个规则:
但是,当我反编译代码时,我仍然看到参数和局部变量。
android - proguard:无法禁用对一个特定类的混淆
我有以下用于调试目的:
我有一个 MyClass 类,我使用 Gson 将其转换为 JSON,然后再将其发送到我的服务器。虽然我希望 JSON 是{"name":"blah", "age": 40}
,但服务器将其接收为{"a":"blah", "b": 40}
. 我在 proguard 规则文件中尝试了几件事,但无济于事。这是我最近尝试的一个例子:
-保持公共类 com.package.package.MyClass { *; }
我错过了什么?谢谢
android - 在 Android 中使用 R8 和 Proguard 时如何保护数据模型类免受逆向工程的影响?
现在,在对 android 应用程序 APK 文件进行逆向工程时,我可以看到纯文本中的数据模型类,因为我使用了@keep
注释。如果没有注释,应用程序将崩溃,因为这些文件正在被 R8 删除。
如何通过确保在逆向工程中看不到它们来保护数据模型文件?
android - 添加“minifyEnabled true”和“proguard-android-optimize.txt”是否会混淆 sqlite 数据库并使其与以前的版本不兼容?
我正在为我的 android 应用程序提交更新,所有以前的版本都没有这两个设置。数据库保持不变,但如果名称被混淆,我担心用户的数据会丢失。换句话说,我担心混淆的名称会与真实名称发生冲突,并且数据库会重置。感谢您的阅读。
我正在为我的数据库使用 Room。
multithreading - 混淆应用程序后android锁定主线程
我创建了我的应用程序,并且该应用程序在调试模式下正常工作。在混淆了获取代码列表并在 recyclerview 中显示的应用程序的一部分在此片段中无法正常工作后,我将获得代码列表-代码是我的可打包模型类-但是主线程锁定并且没有任何作用我试图防止混淆这个类,但它仍然无法正常工作。我无法调试已发布的应用程序以查找问题,请帮助我查找问题或调试已发布的 apk
这是我的代码:
代码模型类:
代码片段(我得到列表并在recyclerview中显示):
保护规则:
ionic-framework - 如何混淆cordova插件java代码
我一直在研究 ionic 3 移动应用程序。我使用ionic-voricles-obfuscate插件(https://www.npmjs.com/package/ionic-voricles-obfuscate)混淆打字稿代码
在使用 Apktool 对 APK 进行逆向工程时,Cordova 插件中的 Android 库类不会被混淆。应用程序安全团队要求使用 Proguard 混淆 Java/Android 包,以防止应用程序运行时代码操作,因此我的应用程序被 Appsec 团队拒绝。
我参考了很多文章,都是关于 Proguard 工具的非常简单的介绍。我很困惑我是否正在使用正确的方法来混淆我的 Ionic 移动应用程序。我是移动应用程序开发的新手,没有代码混淆方面的经验。
android - 启用 Proguard 时 Retrofit2 不起作用
我有一个应用程序,它使用改造从 API 中获取徽标。
当我不混淆和缩小我的代码时,一切正常。但是当我启用它时,API 调用停止工作。我没有收到任何崩溃或错误消息,只是没有从 API 中获得任何值。
毕业典礼
我在调试中使用它只是为了测试目的。如果我在发布中使用它,它具有相同的输出。
我检查了改造页面,他们建议使用以下文件
proguard-rules.pro
API 调用仍然不起作用。我在stackoverflow上尝试了很多帖子,但对我没有任何帮助。有人可以通过提出解决方案或替代方案来帮助我吗?
谢谢
android - Proguard/R8 不会重命名 XML 布局中使用的类
我需要混淆 Android 库的整个代码,除了一些将被开发人员使用的类/方法。
我成功了,除了在我的 XML 布局中调用的某些类没有被重命名,而且我很难在 R8/Proguard 中找到一个选项或强制它的技巧,即使我必须手动或使用脚本在我的 XML 布局中更新这些类(我知道 R8/Proguard 自己不会编辑它们)感谢生成的mapping.txt
文件。
我发现的更接近的问题是Proguard (R8) 混淆了自定义视图名称,但它没有解决我面临的问题,R8/Proguard 仍然忽略这些类的重命名:/
如果有人有想法,欢迎您 :) 感谢您的时间和知识;)
[编辑]
我最终放弃并在我的自定义视图的 XML 布局中放置了占位符,并在运行时对它们进行了膨胀。
遗憾的是,Proguard/R8 无法使用 aapt 处理在 XML 布局中重命名的自定义类:/
对于信息,我也遇到了fragment
在我的 XML 布局中使用项目的问题,其中name
属性没有重命名,而相应的类是......
所以对于这些,我也必须放置占位符并在运行时给它们充气......
我让问题打开,以防有一天有人找到窍门;)
android - 你如何使用 proguard 来替换类名和变量?
我在 proguard 上度过了一段糟糕的时光,最终决定不使用它来删除代码。相反,我打算使用它来替换变量和类名,这样我的代码就不能通过简单的 JDAX 反编译得到。任何人都知道如何使用proguard(或R8)只是简单地“混淆”代码(即缩小变量/类名)而不删除代码?还有什么比proguard(R8)更好的混淆目的吗?
android - 通过启用 Android R8 混淆,@Keep 注释和保留规则不适用于嵌套在类或其他接口中的接口
我在我的 Android 库中使用 Android R8 混淆。在库的客户端项目的应用程序模块中包含 AAR 文件后,我收到在类或其他接口中声明的接口的编译时错误。
例如,其中一个公共接口是 MyPublicInterface:
该接口MyPublicInterface
由应用程序模块使用。
编译应用程序模块时出现以下错误:
我尝试了以下所有规则:
我尝试通过在代码中显式添加 @Keep 注释以及为特定接口显式添加 keep 规则。但它没有用。
注意:库的整个代码都在 Kotlin 中。