java - 安卓apk上的反逆向工程
问题描述
我正在尝试各种方法来阻止对我的 apk 文件进行逆向工程。
我可以将哪些“坏代码”注入到我的 apk 源代码或 smali 文件中以防止攻击者进行逆向工程。
我看到一些研究论文可能会在读取错误代码时使反编译器崩溃。
我可以使用哪些方法来限制反编译过程而不影响 apk 原始函数本身?
免责声明:这仅用于自学目的。对android开发非常陌生。欢迎任何建议。
解决方案
“一些研究论文”并没有提供您所谈论的最少参考。试着用Luyten反编译它,看看你的方法是多么的无意义。适当的混淆和将与安全相关的功能移动到本机程序集中是最有效的方法,可以及时为逆向工程增加工作量。使 API 调用依赖于代码签名也非常有效。最近 NSA 开源了Ghidra,其中可能还包含相关工具来测试所采用的预防方法的有效性。普通添加无用的复杂性几乎没有效果,同时仍试图保持代码库的可维护性。也有根设备提供了一个完全不同的攻击向量 - 和SafetyNet测试是有问题的(它在模拟器上的预发布检查中一直失败),但是本文仍然提供了一个可靠的安全功能检查列表。毕竟,大多数情况下,Android 设备都没有不锈钢制成的防破坏外壳。
推荐阅读
- reactjs - ReactJS:在再次获取之前清空组件的旧获取数据
- javascript - 节点js,函数返回未定义
- javascript - 在 AJAX POST 方法中发送大型 XML 对象
- architecture - 什么是微服务,它们与 API 驱动的架构有何不同?
- mysql - 使用 SQL 提取数组格式的字符串
- c# - 将 ComboBoxItem 保存到 MVVM 中的数据库
- html - 如何从 html 代码中获取 URL?我只想要粗体网址作为文本
- javascript - 将道具从父组件传递到子组件时出错
- excel - 运行时错误“1004”:Microsoft Excel 无法粘贴数据
- tensorflow - 不了解类 UNET 架构中的数据流,并且在 Conv2DTranspose 层的输出中遇到问题