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

叶秀兰 发布于 2015/07/28 19:08
阅读 5K+
收藏 33

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代码
           可参考的开源项目:AndroguardApkAnalyzer

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

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

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

高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 Android Dex 注入技术 方面问题向 @jiangsai江赛)提问,请直接回帖提问。

加载中
0
b
bucket
@jiangsai : 我改了smali再还原成apk后应用不能启动了。另外有些应用反编译后,在manifest中声明的activity却找不到,是怎么回事
jiangsai
jiangsai
@bucket 没问题!
b
bucket
回复 @jiangsai : 我们现在的问题已经解决,但今后可能还会遇到问题,您提供咨询服务吗?
jiangsai
jiangsai
回复 @jianwoo : 你是值修改smali,然后通过apktool再打包吧,这种情况,一般是由于你smali代码有语法问题引起的,可以抓取log,一般能看到错误类型,比如应该用move-object/from16操作超过4bit表示范围的寄存器等。
j
jianwoo
56
0
小鸽子咕噜
小鸽子咕噜
@jiangsai :如何代码获取root权限
jiangsai
jiangsai
这个网上有很多例子,google之。
0
w
wangkaios
@jiangsai :如何修改系统级的函数,比如在获取IMEI或者机器型号的函数在什么位置,能否修改这个函数返回自己制定的值。
w
wangkaios
回复 @jiangsai : 感谢回答,也谢谢@zzeric 把我想问的问题给问了。
jiangsai
jiangsai
@zzeric zjdroid是基于xposed框架的一个module,可以hook 系统接口,比如IMEI,可以hook住接口,在修改函数的返回值。
zzeric
zzeric
回复 @jiangsai : 能展开说一下这块吗?是通过xposed设置成另外一个静态IMEI,还是说可以是指定一段脚本或者函数返回动态的IMEI?
jiangsai
jiangsai
你可以用xposed+zjdroid
0
l
louis
@jiangsai对于 C 接口的 hook怎么使用?
jiangsai
jiangsai
可以使用ptrace,非root下需要通过修改指令。
0
yanweimin7
yanweimin7
@jiangsai :是否可以运行时hook java层方法,目前除了阿里的dexposed,还有没有其他方案。
jiangsai
jiangsai
xposed + zjdroid
0
西夏一品堂
西夏一品堂
@jiangsai : 怎么这么冷清,原来是没有奖励啊!!!
0
uestudio
uestudio
@jiangsai :那些预装的手机组件是不是植入系统的啊?
uestudio
uestudio
@jiangsai 是安卓系统预装的手机软件,比如说安卓系统自带的摄像机程序,天气预报程序
jiangsai
jiangsai
不好意思,没太明白您的意思。
0
jeffsui
jeffsui
@jiangsai :对于听云我最近在了解,看到在移动平台监控性能的app,我想问的是这种基于云平台的分析数据准确性如何保证?
jiangsai
jiangsai
数据的准确性是采集的前提,我们会对一些接口进行监控,比如http/https相关、bitmap等I/O接口,这些都是运行时的真实数据。
0
y
yan.earl
@jiangsai 使用第三方加壳的怎么监控,比如爱加密或者梆梆的壳
y
yan.earl
梆梆说现在无人能破他们的3.0的壳[36]
jiangsai
jiangsai
如果基于xposed,可以hook住系统接口,用来监测应用程序运行时的行为,如果要静态分析,就需要脱壳了。
vb_yu
vb_yu
同样关注
0
代码学习者
@jiangsai :这个不太懂哈,不过,你可以多关注一些其他开源社区,像codeforge,也有很多的源代码供学习。
返回顶部
顶部