APK防反编译策略:非法指令与敏感代码隐藏
需积分: 48 117 浏览量
更新于2024-07-20
收藏 81KB PPTX 举报
本文档主要探讨了APK防反编译技术,针对Android应用开发者和安全研究人员,提供了实用的方法来保护APK免受逆向工程的威胁。作者罗升阳,一位经验丰富的博主和书籍作者,分享了两种主要的策略:添加非法指令和隐藏敏感代码。
1. 添加非法指令
步骤一:创建一个名为Bomb的无关类,其中包含一个名为drop的成员函数。这个类的设计目的是在被尝试反编译时触发异常或混淆行为。
步骤二:对APK的classes.dex文件进行反编译,定位到Bomb.drop函数的地址。
步骤三:使用vim以二进制模式修改classes.dex,将 Bomb.drop函数前的两个字节替换为非法指令(通常表示为FFFF)。
步骤四:重新打包并签名APK,通过adbinstall安装。如果检测到checksum不一致,可能需要检查并修改APK的校验和,以确保正常安装。
2. 隐藏敏感代码
步骤一:与非法指令方法类似,这里同样利用无关类Bomb,但前部添加18个垃圾指令作为混淆手段。
步骤二:解压并反编译classes.dex,找到Bomb.drop函数的地址。
步骤三:使用vim修改前18个字节,以隐藏真正的代码逻辑。
步骤四:查找class_def结构,找到Bomb类的classindex,计算出Bomb类的实际描述偏移,并设置access_flags的第16位,使其变为已验证状态(通常设置为0x10001),从而隐藏其存在。
总结与思考:
本文介绍的APK防反编译技术涉及底层操作,如修改二进制文件、理解DEX文件结构等。虽然这些方法可以增加逆向工程的难度,但并不能完全防止专业团队的深入研究。随着安全工具的进步,恶意开发者也会相应调整策略。因此,持续关注最新的安全技术和动态,对于保障应用程序的安全至关重要。开发者在设计和开发过程中应考虑使用混淆、加密和代码分割等技术,同时结合签名和更新机制,以提高APK的整体防护能力。
8374 浏览量
2016-09-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
「已注销」
- 粉丝: 4
- 资源: 27
最新资源
- C++ Ethernet帧封装_解析_多线程模拟发送消息
- dental-surgery:ASP.NET MVC在牙科手术中的应用
- 美国马里兰大学电池测试数据6:CS2+CX22 (2)
- atom-editor-package:原子游戏引擎的原子编辑器包
- nrraphael.github.io
- golegal:计算围棋中的合法位置数
- AT89C2051+AT24C128+FLEX10K10LC84(Altera的FPGA芯片)+7805+有源时钟组成的原理图
- electricblocks.github.io:电动块的官方网站和文档
- MySQL学习记录,持续更新。.zip
- 客户关系管理
- 基于高斯-拉普拉斯变换LoG算子图像锐化.zip
- StatisticsWorkbook:统计工作簿
- final_proj_sem2:SoftDev第二学期期末项目
- ansible-joyent-inventory:Joyent 的 Ansible 动态库存
- pigfx:PiGFX是Raspberry Pi的裸机内核,它实现了基本的ANSI终端仿真器,并附加了一些原始图形功能的支持
- gmail-force-check:强制 gmail 更频繁地刷新的脚本。 如此处所述