11、Android开发中的反汇编与反编译工具全解析

Android开发中的反汇编与反编译工具全解析

1. 反汇编工具概述

在处理Android字节码时,随着经验的积累和耐心的投入,字节码就像一门新的语言,我们可以逐渐识别出不同的模式和语言结构。目前,我们已经了解了两款反汇编工具:作为Android SDK一部分的dx,以及能将classes.dex反汇编为XML结构的DexToXML。

1.1 十六进制编辑器

多年来,黑客们使用十六进制编辑器以及更复杂的工具(如Numega的SoftICE和Hex - Rays的IDA)来绕过各类软件试用版的授权机制。在过去,许多程序员会通过检查日期是否在安装日期后的30天来保护他们的游戏和实用程序。若过了30天,试用版将停止运行。如果不想购买正版,用户可以将计算机时间永久设置为试用到期前几天;聪明的用户还会找到开发者存储安装日期的位置(如.ini文件或注册表),并将其设置为遥远的未来日期。

当能够读懂汇编代码、设置断点缩小安全功能范围、找到检查试用日期的代码并禁用它,或者创建程序能接受的序列号或密钥,使试用版变成完整版时,就算完成了这一“入门仪式”。在Java领域,攻击这类保护机制的首选工具就是十六进制编辑器。

大多数程序员并没有从过去的经验中吸取教训,很多许可证保护机制仍然依赖于简单的条件跳转。例如以下代码展示了如何让一个演示应用在2012年底过期:

if (new Date().after(new GregorianCalendar(2012,12,31).getTime())) {  
    AlertDialog.Builder ad = new AlertDial
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值