OSC 第 84 期高手问答 — Android Dex 注入技术

OSCHINA 本期高手问答(7月29日- 8月4日)我们请来了 @jiangsai (江赛)为大家解答关于 Android Dex 注入技术 方面的问题。

江赛,@jiangsai ,听云移动研发总监,拥有10多年研发经验,早期主要从事网络设备协议栈开发,对 Linux Kernel、TCP/IP 协议栈等有一定的研究,从 2010 年开始从事移动设备及相关应用开发,从 Android 系统移植开始到 App 开发,对 Android build system、framework、App 开发有较深入的理解。

Android Dex 注入的一些方法:

1、通过分析smali代码
可参考的开源项目:Androguard,ApkAnalyzer

2、通过分析 dalvik bytecode
可使用 dexlib2

3、通过分析 Java bytecode
可使用 ASM,需要在 dx 阶段来进行

4、 非 Root 下,对于 C 接口的 hook
需要通过修改相应的汇编指令

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-11-01 13:31:17

OSC 第 84 期高手问答 — Android Dex 注入技术的相关文章

高手问答第 154 期 — 进阶学习,MySQL 高可用该如何选型?

OSCHINA 本期高手问答(2017 年 5 月 23 日 - 5 月 29 日)我们请来了@叶金荣和@吴炳锡为大家解答 MySQL 高可用方案选型相关的问题. 叶金荣,知数堂培训联合创始人,Oracle MySQL ACE,MySQL 布道师.有多年 MySQL 及系统架构设计经验,擅长 MySQL 企业级应用.数据库设计.优化.故障处理等. 吴炳锡,知数堂联合创始人,MySQL DBA 课程讲师.有多年 MySQL 及系统架构设计及培训教学经验,擅长 MySQL 大规模运维管理优化.高可用

解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题

同时在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件. 解决办法如下: 1.谷歌官方已经给出了相关的文档,参照网上搜索的资料,首先,我的问题是: Error:Execution failed for task ':duchazhushou:dexRelease'. > com.android.ide.common.internal.LoggedErrorException:

android dex动态加载jar包的问题

问题描述 android dex动态加载jar包的问题 有个需求就是在工程中动态的加载一个jar包中的接口 然后接口中开启一个activity 但是在项目中没有这个activity 只是在manifest中配置了一下 请问这个要怎么开启 解决方案 android动态加载jar包android动态加载jar包Android如何动态加载jar包

Android代码混淆技术总结(一)

Android代码混淆技术总结(一)       一.前言 最近一直在学习Android加固方面的知识,看了不少论文.技术博客以及一些github上的源代码,下面总结一下混淆方面的技术,也算是给想学习加固的同学做一些科普,在文中讲到的论文.资料以及源码,我都会给出相应的链接,供大家进一步去深入学习.后面我会弄成一个系列的文章,如有一些混淆技术没讲到,还希望大家指点,当做是交流学习. 二.Android混淆技术介绍 2.1 控制流平坦化 2.1.1 概念和思路 控制流平坦化,就是在不改变源代码的功

Android基于反射技术实现的加减乘除运算示例_Android

本文实例讲述了Android基于反射技术实现的加减乘除运算.分享给大家供大家参考,具体如下: JAVA反射机制定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对象:在运行时判断任意一个类所具有的成员变量和方法:在运行时调用任意一个对象的方法

Android Bluetooth蓝牙技术使用流程详解_Android

在上篇文章给大家介绍了Android Bluetooth蓝牙技术初体验相关内容,感兴趣的朋友可以点击了解详情. 一:蓝牙设备之间的通信主要包括了四个步骤 设置蓝牙设备 寻找局域网内可能或者匹配的设备 连接设备 设备之间的数据传输 二:具体编程实现 1. 启动蓝牙功能 首先通过调用静态方法getDefaultAdapter()获取蓝牙适配器BluetoothAdapter,如果返回为空,则无法继续执行了.例如: BluetoothAdapter mBluetoothAdapter = Blueto

Android热修复技术总结

插件化和热修复技术是Android开发中比较高级的知识点,是中级开发人员通向高级开发中必须掌握的技能,插件化的知识可以查我我之前的介绍:Android插件化.本篇重点讲解热修复,并对当前流行的热修复技术做一个简单的总结. 热修复 什么是热修复? 简单来讲,为了修复线上问题而提出的修补方案,程序修补过程无需重新发版! 技术背景 在正常软件开发流程中,线下开发->上线->发现bug->紧急修复上线.不过对于这种方式代价太大. 而热修复的开发流程显得更加灵活,无需重新发版,实时高效热修复,无需

轻松入门Android直播相关技术 从0搭建直播系统

本文讲的是轻松入门Android直播相关技术 从0搭建直播系统,我立马实践了下,所以首先给大家分享下整个搭建的流程: 本人的操作系统为mac,其他系统的同学可以根据提示,自行安装软件. 一个简易的直播系统,大致可以由三部分组成: 搭建一个rtmp媒体服务器 推流端 拉流端 现在目标是快速搭建起来,所以当然是借助开源项目和一些软件: rtmp媒体服务器:这里使用srs 推流端:这里使用obs 拉流端:这里使用播放器vlc rtmp媒体服务器的搭建 这里使用srs,srs的链接为: https://

Android 人脸识别技术是如何实现的?

问题描述 Android 人脸识别技术是如何实现的? 我是一名Android 新手,看到小米相册里出现了面孔识别选项,很感兴趣,不知人脸识别技术是怎么实现的?请求大神指点一二 解决方案 http://blog.csdn.net/jesse__zhong/article/details/24889709 解决方案二: Android中人脸识别技术Android中人脸识别技术Android中人脸识别技术