171121 逆向-静态分析安卓(特殊类)
来源:互联网 发布:孙可望 知乎 编辑:程序博客网 时间:2024/05/21 09:28
1625-5 王子昂 总结《2017年11月21日》 【连续第417天总结】
A. 静态分析安卓程序-Android程序中的特殊类
B.
内部类
Java语言允许在一个类的内部定义另一个类,这种在类中定义的类被称为内部类。内部类可分为成员内部类、静态嵌套类、方法内部类、匿名内部类。
内部类也会生成独立的smali文件,命名方式为外部类$内部类.smali
内部类中存在一种实例字段this
它是内部类自动保留的一个指向所在外部类的引用。左边的this表示为父类的引用,右边的数值0表示引用的层数。
eg:
public class Outer { //this$0 public class FirstInner { //this$1 public class SecondInner { //this$2 public class ThirdInner { } } }}
每向内一层,右边的数值就加一
例如当ThirdInner类中访问FirstInner类的引用就为this$1
(这种引用方式使得任意一个内部类访问外部类的引用都是一致的,而不会因为内部类改变而改变引用变量)
监听器
由于监听器通常不会被复用,所以一般使用匿名内部类的形式实现: btn.setOnClickListener(new android.view.View.OnClickListener(){xxx}
监听器的实质是接口。
另外注解和构造函数都是编译器自动生成的,通常只需要关注onClick()方法即可
自动生成的类
使用Android SDK默认生成的工程会自动添加一些类。这些类在发布后仍然保留在apk文件中。
R
R类中定义了res资源的ID值和变量名
工程res目录下的每个资源都会有一个id值,这些资源的类型可以是字符串、图片、样式、颜色等。
每个类型会作为R的一个内部类独立生成一个smali文件。
BuildConfig
这个类是在Android SDK r17版本中添加的,之后一直存在
这个类中只有一个布尔类型的名为DEBUG的字段,用来标识程序发布的版本类型
默认值为True。如需更改需要关闭自动构建后使用右键导出程序
注解类
如果代码中使用了SuppressLint或TargetApi注解,程序中将会包含
C. 明日计划
android
- 171121 逆向-静态分析安卓(特殊类)
- 安卓逆向系列教程(三)静态分析工具
- 171117 逆向-静态分析安卓(定位关键代码)
- 171120 逆向-静态分析安卓(Smali文件格式)
- 安卓逆向学习笔记 (3)- 使用IDA Pro静态分析so文件
- 安卓逆向分析实战(一)--逆向工具介绍与安装
- 安卓逆向:一款抢红包APP的逆向分析
- 【逆向】逆向工厂(二):静态分析技术
- 安卓逆向(一)
- 安卓逆向(二)
- 安卓逆向(三)
- ios逆向工程-静态分析
- Android逆向之静态分析
- iOS逆向工程-静态分析
- ios逆向工程-静态分析
- ios逆向工程-静态分析
- ios逆向工程-静态分析
- 170512 逆向-静态分析技术
- 搭建shadowsocks服务端
- 研究生互联网竞赛信息渠道
- Servlet 基础详解
- 《大话设计模式》之策略模式
- HDOJ1019 Least Common Multiple(求多个数的最小公倍数)
- 171121 逆向-静态分析安卓(特殊类)
- SpringMVC参数传递 使用model完成页面的回显
- 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
- haproxy透传用户ip-方法和原理
- Frontend Architecture for Design Systems.pdf 英文原版 免费下载
- 486. Predict the Winner
- Linux常用命令4(基于Centos)
- android 图片任意裁剪(学习中)
- nginx