APK防反编译与隐藏技术策略
需积分: 48 18 浏览量
更新于2024-07-23
收藏 81KB PPTX 举报
本文档主要探讨了APK防反编译技术,针对Android应用程序的可逆工程挑战,作者罗升阳分享了两种方法来保护APK文件中的敏感信息。首先,他介绍了如何通过添加非法指令来混淆代码,以逃避反编译工具的检测。
**添加非法指令**:
步骤1中,开发者在APK中嵌入一个名为Bomb的无关类,该类有一个名为drop的成员函数。这个类的主要目的是为了隐藏实际操作的代码,通过故意包含一个看似无用的函数。
步骤2是反编译APK,提取classes.dex文件,定位到Bomb.drop的地址。
步骤3中,使用vim编辑器以二进制模式修改classes.dex的字节码,将 Bomb.drop的起始位置前的两个字节置为FFFF,这是非标准指令,使得反编译工具在遇到时会认为是无效或错误的代码。
步骤4重新打包并签名APK,然后通过adbinstall安装,如果检测到checksum(校验和)不一致,说明操作成功。
**隐藏敏感代码**:
另一种策略是隐藏实际的敏感代码,而非完全阻止反编译。步骤1同样引入了一个垃圾指令填充的Bomb类,然后在反编译过程中保持其可见性。
步骤2和3与上一策略相同,找到并修改Bomb.drop的地址。
步骤4中,作者强调了检查classes.dex的头部信息,包括class_def的偏移和Bomb类的classindex,计算出描述Bomb类的结构体偏移,进而修改access_flags中的第16位,将其从01000000变为01000100,以此来标记该类为已验证,从而在反编译后的代码中隐藏其真实内容。
**总结与思考**:
这些技术展示了在APK防反编译的实践中,通过精心设计和编码技巧来对抗逆向工程的方法。然而,随着安全技术的不断进步,恶意软件开发者也需要不断更新策略以应对反分析。同时,对于开发者而言,理解这些技术也有助于提高应用程序的安全性和可维护性,确保敏感信息不会轻易暴露。开发者应持续关注此类技术的发展,以保护自己的应用免受潜在威胁。
点击了解资源详情
点击了解资源详情
点击了解资源详情
8374 浏览量
2016-09-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
yes_wecan
- 粉丝: 0
- 资源: 1
最新资源
- 使用 FDM 求解二维波动方程:具有 4 种可视化:颜色图、表面、折射、反射-matlab开发
- date,java编程思想源码,java实现定制二维码附
- Creed Search-crx插件
- goprotest:对于希望创造积极变化的人们,世界现在需要
- Budget-Tracker
- Unity中使用Ultraleap的Slider组件.zip
- marcurbi.github.io:我的摄影作品集
- Learning-Linux:Linux万物的次要来源和便捷目录
- ansible-role-transmission-daemon:DebianUbuntu系统上传输守护程序的完全可配置Ansible角色
- datepicker:用 JavaScript 约会! 一个没有依赖关系的日期选择器
- full,java线程池源码,java微商城开发源码下载
- gui4sher
- THE-WORLD-IS-OUR-CANVAS-PART-3
- hexcord-website:Hexcord网站
- covid-relief-bill-dollar-amounts:尝试提取COVID救济法案中提及的每一美元金额,请阅读自述文件
- 布里吉塔