快速定位关键代码

往期推荐

Smali文件详解

Java层逆向分析-Dalvik字节码

修改资源去广告

修改包名实现分身

1.1APK的特点

1.在学习定位技巧之前,先分析一下APK的3个特点:

(1)每个APK文件中都包含有一个AndroidManifest.xml文件,它记录着软件的一些基本信息。
(2)一个Android程序包含一个或多个Activity组成,不同的Activity实现不同的功能。每个Android程序有且只有一个主Acitivity。隐藏程序除外,它没有主Acitivity。
每个Activity都是Android程序的一个显示页面,负责数据的处理及展示的工作。
(3)鉴于Application类启动的时机很早,一些授权验证的流程可能存在于这里,所以需要着重注意Application。

1.2定位关键代码的方法

一个完整的Android程序反编译后的代码量可能非常庞大,要想在这浩如烟海的代码中找到程序的关键代码,是需要很多经验与技巧的。总结有以下6种定位关键代码的方法:

1.信息反馈法(资源id/字符串)
所谓信息反馈法是指根据程序运行时给出的反馈信息作为突破口,定位关键代码。例如错误提示,运行提示等等,可以在程序中直接搜索字符串。
当提示信息存在于String.xml资源文件中时,我们可以根据R.java的映射文件,查找对应的资源id ,然后在smali或者在ida窗口进行搜索。

2.特征函数法(api函数)
这种定位代码的方法与信息反馈法类似。在信息反馈法中,无论程序给出什么样的反馈信息,终究是需要调用相关API函数来完成。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值