好多恋人的动漫:Android SO Inject
来源:百度文库 编辑:偶看新闻 时间:2024/10/02 20:23:12
标 题: Android SO Inject
发信站: 北邮人论坛 (Fri Sep 23 23:09:00 2011), 站内
以前用过LBE,一直觉得十分的彪悍,所以终于忍不住去尝试逆向了。首先工具上面很原始,小弟也是菜,一直用的IDA看静态反汇编,没有F5,动态调试起来也十分的麻烦(其实到现在我都没有成功如何加载调试器实现动态调试,不然会快很多)。
LBE主要实现的是HOOK,而HOOK的关键其实是注入,所以我逆了一个星期完全就是看怎么注入,由于Linux是新手,除了会几个命令行啥都不会,所以同时也从Linux的注入开始学习。
我下的是个比较老版本的LBE,所以里面符号表还比较完整,结合函数名字的提示基本上可以知道其中的作用,最最关键的函数是一个叫inject_remote_process的函数,我估计其原型应该是:
int inject_remote_process(pid_t pid,char *dsofile,char *hook_param,char *hook_entry)
然后,剩下的过程其实和Linux的注入比较类似,原理大致是(以我用的那个版本):
1、ATTACH 加载调试器
2、GETREGS 获得原始寄存器值
3、POKE_TEXT 作用不明(貌似写入的长度为0)
4、SETREGS 设置寄存器,构造BUG
5、CONT 继续执行
6、POKE_TEXT 写入汇编代码
7、SETREGS 设置原始寄存器
8、DETACH
然进行注入的原始代码是我从LBE的libloader.so中一个叫asm_call_dlopen直接拔下来的,所以也就只能逆向了。其实剽窃起来还是比较简单,就是估计让我自己写不知道死多少回:
最后就是测试的libtestso.so的代码(那个编译头部可以在SO加载时候打印出数据):
我将这些文件全部放到/data/data目录下,在模拟器中进行测试:
(1)注入com.android.mms进程:
(2)注入/system/bin/servicemanager进程:
Android下面注入SO成功,连SO中的输出数据都打出来了。至少这一周多每天逆向学习还是没有白费。值得高兴啊!
PS:总结一下
1、意义:
我深刻的感觉,这次逆向完全就像是一个无底洞,其实我能不能做出来心里一点底都没有,毕竟LBE对这个技术是守口如瓶,网上也看不到丝毫相关文档,或许我这个以后能为研究Android SO注入的人提供思路吧。而且注入之后也有许多东西可以实现:往好的方向,我们可以HOOK重要函数,实现拦截,遏制恶意程序的后台行为,而且完全可以实现一种Android的HIPS产业;往坏的方向想,我们可以做到盗号,游戏外挂,破坏,监控等邪恶的功能。
同时我还觉得,未来可能会遇到更为困难的Android ELF相关的反调试反逆向等技术。以后或许像网银,网游,安全软件会用到它;抑或是安卓RK,盗号,内核级木马等在我们手机中可能潜行。如何抓出它们,扫描潜在威胁还值得深入。
2、心情:
我感觉自己这几天工作好比就是在玩仙剑打BOSS那种,也不知道老怪有多少血,打不打得过,只是自己不断的嗑药,补血,然后硬拼。只是觉得自己打了BOSS不少血了,但是也不知道什么时候是个头,就在那里不断的死抗。不过当最后自己的代码终于运行起作用的时候,还是感觉之前的努力没有白费,自己还算对得起这段时间不日不夜的努力,愿意投入时间总是会有效果的,这点可以肯定。而且,这也对我最近找工作不顺算是一种强心剂吧!
3、现实:
其实像这种既非项目,又非毕设,纯属个人爱好也是越来越难了。毕竟眼下我要毕业了,找工作在即,看到身边的同学,包括北邮人上面许许多多各种SHOW OFFER的人,虽然总体很淡定,但是不免还是有点心慌,加之这个事情一直毫无进展也让人更为烦躁。别人天天为了工作四处奔跑,而我还在宿舍淡定的逆向重写一个自己都不知道能不能实现的程序还一点没谱,时间长了真的难免心急。
我也参加了个别面试和笔试,直到我被中兴拒了,没有收到爱立信的机试邀请的时候,今天有人收到华为面试我也没有的时候,其实我还是难免有那么些失落。人还是得面对现实,不可能足不出户就坐等OFFER,我也自知不是所谓的%20,就一垃圾,啥算法都不会,这都是现实,还是得认真的面对。
LBE也就看到这里了,等我找完了工作,我想以后会继续的,只要Android手机还有市场,这个东西就肯定有其价值,这点我一直坚信,或许这也是我宅了8天的精神支柱吧。祝愿今年找工作的同学们包括自己能拿到自己满意的OFFER...
这就算是北邮技术版发的最后一个贴了,找工作要紧,你伤不起啊...
发信站: 北邮人论坛 (Fri Sep 23 23:09:00 2011), 站内
以前用过LBE,一直觉得十分的彪悍,所以终于忍不住去尝试逆向了。首先工具上面很原始,小弟也是菜,一直用的IDA看静态反汇编,没有F5,动态调试起来也十分的麻烦(其实到现在我都没有成功如何加载调试器实现动态调试,不然会快很多)。
LBE主要实现的是HOOK,而HOOK的关键其实是注入,所以我逆了一个星期完全就是看怎么注入,由于Linux是新手,除了会几个命令行啥都不会,所以同时也从Linux的注入开始学习。
我下的是个比较老版本的LBE,所以里面符号表还比较完整,结合函数名字的提示基本上可以知道其中的作用,最最关键的函数是一个叫inject_remote_process的函数,我估计其原型应该是:
int inject_remote_process(pid_t pid,char *dsofile,char *hook_param,char *hook_entry)
然后,剩下的过程其实和Linux的注入比较类似,原理大致是(以我用的那个版本):
1、ATTACH 加载调试器
2、GETREGS 获得原始寄存器值
3、POKE_TEXT 作用不明(貌似写入的长度为0)
4、SETREGS 设置寄存器,构造BUG
5、CONT 继续执行
6、POKE_TEXT 写入汇编代码
7、SETREGS 设置原始寄存器
8、DETACH
然进行注入的原始代码是我从LBE的libloader.so中一个叫asm_call_dlopen直接拔下来的,所以也就只能逆向了。其实剽窃起来还是比较简单,就是估计让我自己写不知道死多少回:
最后就是测试的libtestso.so的代码(那个编译头部可以在SO加载时候打印出数据):
我将这些文件全部放到/data/data目录下,在模拟器中进行测试:
(1)注入com.android.mms进程:
(2)注入/system/bin/servicemanager进程:
Android下面注入SO成功,连SO中的输出数据都打出来了。至少这一周多每天逆向学习还是没有白费。值得高兴啊!
PS:总结一下
1、意义:
我深刻的感觉,这次逆向完全就像是一个无底洞,其实我能不能做出来心里一点底都没有,毕竟LBE对这个技术是守口如瓶,网上也看不到丝毫相关文档,或许我这个以后能为研究Android SO注入的人提供思路吧。而且注入之后也有许多东西可以实现:往好的方向,我们可以HOOK重要函数,实现拦截,遏制恶意程序的后台行为,而且完全可以实现一种Android的HIPS产业;往坏的方向想,我们可以做到盗号,游戏外挂,破坏,监控等邪恶的功能。
同时我还觉得,未来可能会遇到更为困难的Android ELF相关的反调试反逆向等技术。以后或许像网银,网游,安全软件会用到它;抑或是安卓RK,盗号,内核级木马等在我们手机中可能潜行。如何抓出它们,扫描潜在威胁还值得深入。
2、心情:
我感觉自己这几天工作好比就是在玩仙剑打BOSS那种,也不知道老怪有多少血,打不打得过,只是自己不断的嗑药,补血,然后硬拼。只是觉得自己打了BOSS不少血了,但是也不知道什么时候是个头,就在那里不断的死抗。不过当最后自己的代码终于运行起作用的时候,还是感觉之前的努力没有白费,自己还算对得起这段时间不日不夜的努力,愿意投入时间总是会有效果的,这点可以肯定。而且,这也对我最近找工作不顺算是一种强心剂吧!
3、现实:
其实像这种既非项目,又非毕设,纯属个人爱好也是越来越难了。毕竟眼下我要毕业了,找工作在即,看到身边的同学,包括北邮人上面许许多多各种SHOW OFFER的人,虽然总体很淡定,但是不免还是有点心慌,加之这个事情一直毫无进展也让人更为烦躁。别人天天为了工作四处奔跑,而我还在宿舍淡定的逆向重写一个自己都不知道能不能实现的程序还一点没谱,时间长了真的难免心急。
我也参加了个别面试和笔试,直到我被中兴拒了,没有收到爱立信的机试邀请的时候,今天有人收到华为面试我也没有的时候,其实我还是难免有那么些失落。人还是得面对现实,不可能足不出户就坐等OFFER,我也自知不是所谓的%20,就一垃圾,啥算法都不会,这都是现实,还是得认真的面对。
LBE也就看到这里了,等我找完了工作,我想以后会继续的,只要Android手机还有市场,这个东西就肯定有其价值,这点我一直坚信,或许这也是我宅了8天的精神支柱吧。祝愿今年找工作的同学们包括自己能拿到自己满意的OFFER...
这就算是北邮技术版发的最后一个贴了,找工作要紧,你伤不起啊...
paranoid android中文歌词
radiohead 的 Paranoid Android 中文翻译
英语Inject failed是什么
inject failed 是什么东西~~
Inject faild是什么意思
Trojan.DL.Inject.pc
Trojan.DL.Inject.pc
Trojan.DL.Inject.f是什么
Trojan.Inject.st是什么病毒?
Trojan.DL.Inject.ad是什么
杀毒 Trojan.DL.Inject.pk
Just so so 是什么意思?
so so 什么意思
just so so
如何杀掉 Trojan.DL.Inject.fk 病毒???
Trojan.Win32.Inject.am如何删除
Trojan.DL.Inject.fk急救 十万火急!!!!!!!!!!!!!!!!!!!!!!!!!
机器开机时提示inject failed
trojan.dl.inject.qc 这是什么病毒
电脑开机后出现“inject faild”
Trojan.DL.Inject.pk是啥病毒
so yestoday
so what?
So beauty