生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

手机黑客?android平台注入技术

2月14日 蚀肉堂投稿
  背景
  在android系统中,进程之间是相互隔离的,两个进程之间是没办法直接跨进程访问其他进程的空间信息的。那么在android平台中要对某个app进程进行内存操作,并获取目标进程的地址空间内信息或者修改目标进程的地址空间内的私有信息,就需要涉及到注入技术。
  通过注入技术可以将指定so模块或代码注入到目标进程中,只要注入成功后,就可以进行访问和篡改目标进程空间内的信息,包括数据和代码。
  Android的注入技术的应用场景主要是进行一些非法的操作和实现如游戏辅助功能软件、恶意功能软件。
  下面主要进行对zygote注入、ptrace注入、修改so文件注入,这三种注入方式进行详细解析。zygote注入
  zygote是一个在android系统中是非常重要的一个进程,因为在android中绝大部分的应用程序进程都是由它孵化(fork)出来的,fork是一种进程复用技术。也就是说在android系统中普通应用APP进程的父亲都是zygote进程。
  zygote注入目的就是将指定的so模块注入到指定的APP进程中,这个注入过程不是直接向指定进程进程注入so模块,而是先将so模块注入到zygote进程。
  在so模块注入到zygote进程后,在点击操作android系统中启动的应用程序APP进程,启动的App进程中包括需要注入到指定进程的so模块,太都是由zygote进程fork生成,因而在新创建的进程中都会包含已注入zygote进程的so模块。
  这种注入是通过间接注入方式完成的,也是一种相对安全的注入so模块方式。目前xposed框架就是基于zygote注入。
  zygote注入so模块流程
  1。通过注入器将要注入的so模块注入到zygote进程;
  2。手动启动要注入so模块的APP进程,由于APP进程是通过zygote进程fork出来的,所以启动的APP进程都包含zygote进程中所有模块;
  3。注入的so模块劫持被注入APP进程的控制权,执行注入so模块的代码;
  4。注入so模块归还APP进程的控制权,被注入进程正常运行。
  Zygote注入器的实现流程
  (注入器主要是基于ptrace注入shellcode方式的进程注入)
  通过ptrace进行附加到zygote进程。
  调用mmap申请目标进程空间,用于保存注入的shellcode汇编代码。
  执行注入shellcode代码(shellcode代码是注入目标进程中并执行的汇编代码)。
  调用munmap函数释放申请的内存。
  通过ptrace进行剥离zygote进程。
  下面是关键的zygote代码注入实现
  ptrace注入
  ptrace注入实现上分类:
  通过利用ptrace函数将shellcode注入远程进程的内存空间中,然后通过执行shellcode加载远程进程so模块。
  通过直接远程调用dlopen、dlsym、dlclose等函数加载被注入so模块,并执行指定的代码。
  ptrace直接调用函数注入流程:
  通过利用ptrace进行附加到要注入的进程;
  保存寄存环境;
  远程调用mmap函数分配内存空间;
  向远程进程内存空间写入加载模块名称和函数名称;
  远程调用dlopen函数打开注入模块;
  远程调用dlsym函数或需要调用的函数地址;
  远程调用被注入模块的函数;
  恢复寄存器环境;
  利用ptrace从远程进程剥离。
  关键的ptrace直接调用系统函数实现
  ptrace的shellcode注入原理
  shellcode注入就是通过将dlopendlsym库函数的操作放在shellcode代码中,注入函数只是通过对远程APP进程进行内存空间申请,接着修改shellcode代码中有关dlopen、dlsymdlclose等函数使用到的参数信息,然后将shellcode代码注入到远程APP进程申请的空间中,最后通过修改PC寄存器的方式来执行shellcode的代码。
  ptrace注入shellcode的详细步骤
  1。在shellcode中编写好dlopen、dlsym等函数的调用,来加载so模块和执行函数,但需要将参数地址、函数地址、寄存器地址先随便填充值为我们真实地址保留;
  2。附加到远程APP进程、保存APP进程中寄存器的数据,为后面恢复远程进程的继续执行准备;
  3。向远程APP进程申请内存空间,选好shellcode存放的具体位置,准备存放shellcode和参数数据;
  4。计算本地so模块函数对应到,远程APP进程中的so模块函数地址,填充到shellcdoe中的参数中。计算好库函数参数、寄存器存值相对shellcode起始位置的偏移再加上远程进程中shellcode存放的起始位置,得到的结果就是远程进程的内存空间中这些参数存放的位置,将这些地址填充到shellcode的参数中;
  5。设置寄存器的值来执行库函数;
  6。恢复寄存器的值让远程进程继续正常执行。
  关键的ptrace注入shellcode代码实现
  修改ELF文件注入
  在android平台Native层的可执行文件SO文件,它是属于ELF文件格式,通过修改ELF文件格式可以实现对so文件的注入。
  通过修改ELF二进制的可执行文件,并在ELF文件中添加自己的代码,使得可执行文件在运行时会先执行自定义添加的代码,最后在执行ELF文件的原始逻辑。
  修改二进制ELF文件需要关注两个重要的结构体:
  ELFHeader、ProgramHeaderTable
  其中ELFHeader它是ELF文件中唯一的,一个固定位置的文件结构,它保存着ProgramHeaderTable和SectionHeaderTable的位置和大小信息。
  ProgramHeaderTable它保存ELF文件的加载过程中各Section的内存映射和依赖库相关信息,用来告诉android系统中如何创建进程映像。
  修改ELF文件实现so文件注入实现原理为:通过修改ProgramHeaderTable中的依赖库信息,添加自定义的so文件信息,APP进程运行加载被该修改过的ELF文件,它也同时会加载并运行自定义的so文件。
  ProgramHeaderTable表项结构
  程序头表项中的类型选项有如下
  当程序头表项结构中的类型为PTDYNAMIC也就是动态链接信息的时候,它是由程序头表项的偏移(poffset)和pfilesz(大小)指定的数据块指向。dynamic段。这个。dynamic段包含程序链接和加载时的依赖库信息。
  修改ELF文件的注入实现过程
  1。修改。dynamic段指向的字符串表中添加自定义的so模块名称;
  2。通过修改ProgramHeaderTable中添加PTLOAD表项,新添加的表项将保护so模块名称的字符串表数据映射到内存中。同时将ProgramHeaderTable移动到文件末尾;
  3。修改。dynamic段的数组数据,使得指向新的字符串表,并指向自定义的so模块名称;
  4。修改ELFHEADER结构中ProgramHeaderTable的位置信息,并指向新的ProgramHeaderTable。
  关键ELF文件修改代码实现
投诉 评论 转载

关系再好,也不要这样聊天,不然会变成灾难做人做事应把握分寸尺度。即便关系再好,也要懂得适可而止。尤其在聊天这方面,把握分寸,比会冠冕堂皇的奉承更重要。不要过分敷衍和冷漠。人与人之间的交流贵在真诚。你来我往是最起……青春期男孩女孩每年长多少为正常?做好4点,能长更多更高青春期是孩子最后一个生长黄金期,青春期结束,身高就长完了,当孩子身高偏矮或者不理想的时候,家长往往寄希望于青春期。我之前有给大家分析过,青春期是有天花板的,对每个孩子都是……被称中国版英伟达,核心技术100自研,年收入大涨超65文JING审核子扬校正知秋过去20多年,GPU主要应用于2D、3D游戏以及视频加速等领域,市场规模稳定增长。而近几年,随着服务器、人工智能产业快速崛起,GPU需求面不断拓……国乒27岁世界冠军生日快乐!逆境中绽放光芒,身患癌症仍坚持梦1月10日是国乒名将朱雨玲的生日,不过在27岁的黄金年龄,她却没能坚守赛场,而是面临着前途未卜的尴尬局面。朱雨玲近两年的经历比较凄惨,在李晓霞退役后,她和丁宁、刘诗雯成为国乒女……机动奥特曼2遭魔改,网友直言没有意思,真不值得期待吗?对于今年圆谷要推出的新剧《机动奥特曼2》,不知道大家了解多少呢?有网友直言这部剧并没有什么意思,甚至还挑出了里面的毛病呢。其实到现在为止,《机动奥特曼》第二季的预告片都已……永定河流域文旅联盟正式成立永定河流域文旅联盟8月2日在北京成立。联盟的成立,意在汇聚资源,深化协作,一体化实施永定河流域文化旅游资源研究、保护与开发。联盟由永定河流域投资有限公司联合中交疏浚(集团……奇葩拼多多之凌晨秒退款〔捂脸〕〔捂脸〕〔捂脸〕〔捂脸〕〔捂脸〕〔捂脸〕奇葩平台奇葩事〔捂脸〕〔捂脸〕〔捂脸〕〔捂脸〕由于疫情原因,物流有时候很慢。在一个地方停几天是经常出现的,客户等不及,要退……05!韩国惨败,亚洲第3被日本吊打,创3大耻辱纪录,仍比国足韩国男足第10次跻身世界杯决赛圈,这是历史性的成就,但是韩国足球在近来接连输给日本足球,韩媒《NAVER》报道,近日,韩国大学选拔队又以05的比分输给了日本大学选拔队,这样的话……巴里奥斯加盟恒大就是一场闹剧十年繁华如一梦,曾经风光无限的广州恒大在近日发布的通告里宣布,球队主力球员60万年薪封顶。要知道当初恒大俱乐部平一场的奖金都高达100万。十年之前,还在一心搞足球的恒大大……手机黑客?android平台注入技术背景在android系统中,进程之间是相互隔离的,两个进程之间是没办法直接跨进程访问其他进程的空间信息的。那么在android平台中要对某个app进程进行内存操作,并获取……去户外,感受不一样的人生每个人总会有那么一段时间,觉得自己好累,人生好难。尤其是到岁末年终时,总想给自己放几天假期,让忙碌了一年的身心都放松一下。如果,你也觉得想要喘口气,想要放空自己,那……女排二传竞争新局面!蔡斌广撒网进行海选,姚迪刁琳宇主力悬了蔡斌指导上任之后,中国女排的集训方式发生了比较大的变化,之前国手都是采取征召的方式,如今则是通过球员主动报名申请,教练组审核确定之后,就可以入队训练,这可以看作是郎平指导大国家……
走进绍兴市上虞区长塘镇,带你打卡小众网红秘境公路听无损音乐不再难,TEAC505X解码器,让网络音乐全HIF5换1?场均26分5。3助,他才25岁,带队痛击乔治,火箭这迷失在中土世界阅读新西兰之特卡波湖95大暴跌!中国欠债最高的企业彻底玩完这样去避免核级炸弹成本一毛利润十多亿!奥特曼卡牌盲盒火了小学生成年人中毒夏天孩子容易没胃口,推荐8款小蒸包,孩子抢着吃,常吃助长个英超9笔交易1月完成?皇马大将待定,曼联利物浦抢人苹果AirPods迎来USBC接口和3D打印改装外壳,项目已国青男足晋级U20亚洲杯决赛圈男性肾好的10个表现汤尤杯国羽女队卫冕有望国羽男队前景不妙美丽的云作文350字穿吊带还用不用穿内衣刘銮雄购7400万港币蓝钻赠“二奶”女儿【图】狐臭怎么彻底去除有人根除过狐臭吗女孩十大最好专业女孩十大最好专业有哪些代通知金扣税公式是什么?水果行业的“电商闯入者”:没日没夜创业,头发都白了。。先天性心肌炎会遗传吗创业者给的条建议下为什么来月经肚子会痛(来月经肚子疼还吐怎么回事)假如我是一个橡胶人作文400字北空琉璃梦

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找