摘要: Dex文件中数据结构 类型 含义 u1 等同于uint8_t,表示1字节无符号数 u2 等同于uint16_t,表示2字节的无符号数 u4 等同于uint32_t,表示4字节的无符号数 u8 等同于uint64_t,表示8字节的无符号数 sleb128 有符号LEB128,可变长度1~5字节 ule 阅读全文
posted @ 2019-06-02 23:34 黑箱 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 指令格式 ARM基本格式 <opcode>{<cond>}{S}{.W|.N}<Rd>,<Rn>{,<operand2>} opecode:指令助记符 cond:执行条件 助记符 标志 含义 EQ Z=1 相等 NE Z=0 不相等 CS/HS C=1 无符号数大于或等于 CC/LO C=0 无符号 阅读全文
posted @ 2019-06-02 20:11 黑箱 阅读(656) 评论(0) 推荐(0) 编辑
摘要: Android系统采用java作为平台软件基础开发语言,NDK使Android平台可以运行C/C++代码这些代码汇编成ARM的elf可执行文件。 原生程序生成过程 经历4步:1。预处理2。编译3。汇编4。链接 经过第2步编译后C代码变成ARM汇编代码,NDK支持直接使用ARM汇编编写的 .s文件 A 阅读全文
posted @ 2019-06-02 20:09 黑箱 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1。IDA脚本的打开与使用: IDA脚本两种语言:IDC(IDC,本地脚本语言)和Python 2。IDC语言介绍 1。IDC变量:IDC是一种松散的语言,没有明确的类型。使用3中数据类型,整数(IDA文档使用类型名称long)、字符串、浮点值。绝大部分的操作是针对整数和字符串。 因为字符串被视为I 阅读全文
posted @ 2019-06-02 20:06 黑箱 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 静态分析两种方式: 1. 阅读反汇编的Dalvik字节码:使用IDA 分析dex文件或baksmali反编译的smali文件 2. 阅读反汇编的Java源码:使用dex2jar生成jar文件,用jd-gui阅读jar文件 每个apk文件中都含有一个AndroidManifest.xml文件,被加密存 阅读全文
posted @ 2019-06-02 20:04 黑箱 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 6种位运算操作 &:按位 与 and |:按位 或 or ^:按位 异或 xor ~:按位 取反 not <<:左移 >>:右移 1.按位 与 & 原理:都为1结果为1,否则为0 用途:将字节中的某一位或某几位设置为0。同时不影响其他位的操作 和0xFFFF与操作 不改变原来数据 Eg:16位,和0 阅读全文
posted @ 2019-06-02 20:00 黑箱 阅读(498) 评论(0) 推荐(0) 编辑
摘要: APK是Android Package缩写,使用zip解压文件即可打开。每个APK文件中都包含一个class.dex文件(odex过的APK文件除外)。class.dex文件就是Android系统Dalvik虚拟机的可执行文件 Android工程的打包方式两种: 1. Eclipse集成开发环境直接 阅读全文
posted @ 2019-06-02 19:59 黑箱 阅读(514) 评论(0) 推荐(0) 编辑
摘要: Android系统采用的是分层架构,分四层: 1. Applicitations:应用层 2. Applicitation Framework:架构层 3. Libraries:类库层 4. Linux Kernel:Linux内核层 执行流程: Zygote三种创建进程的方法: 1. frok() 阅读全文
posted @ 2019-06-02 19:57 黑箱 阅读(115) 评论(0) 推荐(0) 编辑
摘要: Dalvik虚拟机特点: 1. 体积小 2. DEX格式可执行文件,相比java运行速度快 3. 常量池采用32位索引值 4. 提供对象生命周期,堆栈,线程,权限,异常等管理 5. Android系统里每个进程对应一个Dalvik虚拟机 Dalvik虚拟机和Java虚拟机区别: 1. Java虚拟机 阅读全文
posted @ 2019-06-02 19:55 黑箱 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 进行root前需要两个前提条件 进入开发者选项:设置-〉关于-〉一直点版本号会出现,usb调试打开 手机连接pc命令行输入: adb reboot bootloader 进入bootloader模式 fastboot oem unlock(无效尝试:fastboot flashing unlock) 阅读全文
posted @ 2019-06-02 19:47 黑箱 阅读(901) 评论(0) 推荐(0) 编辑
摘要: 一、创建项目工程 设定名字 设定包名(每一台机器只有唯一的包名)下一步 根据设置进行选择 创建空项目 Finish即可创建 调节项目的字体 二、Eclipse 项目构架 2. Gen R.java文件中代码 Android(版本号) bin res AndroidMainifest.xml 描述了a 阅读全文
posted @ 2019-06-02 19:39 黑箱 阅读(226) 评论(0) 推荐(0) 编辑
摘要: Android.mk文件和Application.mk文件详解 相同点:都是轻量级 Makefile(Makefile文件定义一些列指令,指定文件编译顺序,类似shell脚本) Application: 位置:通常在 $PROJECT/jni目录下 作用:配置所有modules的编译变量在 APP_ 阅读全文
posted @ 2019-06-02 19:36 黑箱 阅读(2308) 评论(0) 推荐(0) 编辑
摘要: 一、NDK简介: C/C++的动态库。Dalvik通过JNI编程方式调用C/C++代码。 NDK编程提高软件性能,加密保护APK文件 ndk-build NDK编译生成脚本 Java编译时会根据java声明文件生成dex文件,即使没有java代码 NDK共享库:NDK生成的 .so文件(类似dll) 阅读全文
posted @ 2019-06-02 19:31 黑箱 阅读(1971) 评论(0) 推荐(0) 编辑
摘要: 一、Android简介: 由Andy Rubin开发, 常用手机版本:谷哥:Nexus、华为:EMUI、魅族:Flyme Adnroid是运行在Java虚拟机(JVM)上大部分免费的开源的、应用通过权限控制很容易获取用户敏感信息。 二、Android系统框架: Android虚拟机dalvik与JV 阅读全文
posted @ 2019-06-02 11:27 黑箱 阅读(623) 评论(0) 推荐(0) 编辑