范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

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

  背景
  在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注入就是通过将dlopen/dlsym库函数的操作放在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文件需要关注两个重要的结构体:
  ELF Header、Program Header Table
  其中ELF Header 它是ELF文件中唯一的,一个固定位置的文件结构,它保存着Program Header Table和Section Header Table的位置和大小信息。
  Program Header Table 它保存ELF文件的加载过程中各Section的内存映射和依赖库相关信息,用来告诉android系统中如何创建进程映像。
  修改ELF文件实现so文件注入实现原理为:通过修改 Program Header Table中的依赖库信息,添加自定义的so文件信息,APP进程运行加载被该修改过的ELF文件,它也同时会加载并运行自定义的so文件。
  Program Header Table表项结构
  程序头表项中的类型选项有如下
  当程序头表项结构中的类型为PT_DYNAMIC也就是动态链接信息的时候,它是由程序头表项的偏移(p_offset)和p_filesz(大小)指定的数据块指向.dynamic段。这个.dynamic段包含程序链接和加载时的依赖库信息。
  修改ELF文件的注入实现过程
  1.修改.dynamic段指向的字符串表中添加 自定义的so模块名称;
  2.通过修改Program Header Table中添加PT_LOAD表项,新添加的表项将保护so模块名称的字符串表数据映射到内存中。同时将Program Header Table移动到文件末尾;
  3.修改.dynamic段的数组数据,使得指向新的字符串表,并指向自定义的so模块名称;
  4.修改ELF HEADER结构中 Program Header Table的位置信息,并指向新的Program Header Table。
  关键ELF文件修改代码实现

鲁迅和张爱玲在一起说话会怎么样?这是我在知乎的一篇回答。题主是多么不喜欢和谐?要让他们两个人遇到。虽然在中国现代文学界,两个人堪称男中周豫才,女中张爱玲(就像男中李后主,女中李易安),都是大能人,但如果两个人真要最强影像诞生?FindX3有备而来,网友这10亿色有点东西近几年来,各大手机厂商纷纷把目光聚焦于对手机模组的打磨更新,使得我们手机的成像素质有了质一般的飞跃,我们现在随便拿一台手机都能拍出足够清晰的照片,在有些场景上的表现甚至可以媲美传统好家云店再次荣登文创青云榜,创新力量强势爆发11月3日,由杭州市文化创意产业发展中心杭州市文化创意协会联合43家投资机构共同发起的2021文创新势力及杭州文创青云榜颁奖盛典在杭州创意设计中心微立方圆满落幕。作为文化与科技融合明基EW3270U一个数码博主必备的生产力工具作为一个数码博主,工作中最开心的时刻往往是收到新的约稿或者测评,但是这种快乐是很短暂的,因为随之而来的便是为了赶稿而无尽的加班,大多数情况甚至还要熬夜通宵。经常的熬夜已经让我的眼睛戏子时代的悲歌这一话写得很真实,也很心酸。当年有计划写京剧方面的语料研究,或者写戏曲近现代改革的。无意之间曾经查过很多资料,当年的戏子真的是一群苦命人。当年的京剧并不高大上,反倒是充满了三俗和苟原创作品女儿今天去深圳女儿今天去深圳作者肖固根编辑天美五星再过些日子农历七月初七我的女儿你就十八岁了感谢命运让我们相约七月相约在天上人间共有的情人节十八个春秋不长仿佛昨天你才来到我身旁十八个春秋神奇仿佛线下门店如何结合小程序实现新零售?打开销售新局面随着销售模式的日益变化,新零售开始被大家所提及,线上线下相结合的概念也开始不断涌入商家的视线,小程序也是多次被提及,帮助商家打通线上线下,提升店铺整体销量。那么线下门店如何结合小程装修过后避免这些小尴尬,经验之谈收藏下现如今装修已经成为了每个家庭的必修课,人们为了能够有个舒适安逸的环境,为了能够生活得更加开心快乐,他们会把大部分的精力都投入到家装当中去。在房子装修过程中那些辛劳咱们搁在一边先不说决色小冰砖透明防摔壳薛之谦同款的理想手机壳近年来,随着材质料艺的不断进步,高强度玻璃和陶瓷等材料开始应用在手机上,给手机带来了更好的散热手感和颜值,但手机本身的易碎概率也大大提升。作为手机周边第一刚需产品,手机壳市场自然得守护20年的初心,未来半辈子的使命近日来,一篇基层公安的工作调动申请引起网民热议。主人公高兴凯是一名90后的河北省公安厅进京一线基层干警,毕业于公安部直属院校,履历优异,工作经验丰富,原本有更多工作机会和升职空间的试驾理想ONE,6座定位车长超5米,增程式动力到底如何?新能源领域,为了解决用车需求,确实存在着很多种方案,增程式电动车是其中之一,说到这一领域的车型,我们第一时间就会想到理想ONE。目前在售2021款车型是今年5月份上市,目前只有一款
年轻人的第一次养生,米家智能多功能养生壶体验以前总说保温杯里泡枸杞,养生要从娃娃抓起那么,这次我也不客气了。小米最近推出了一款米家智能多功能养生壶,作为一个帅气的年轻小伙儿,自然是要开始养生了。一起到的还有一包知吾煮粥羮礼盒全新升级的小米穿戴APP来了,现已开启1000万千卡全民挑战作为Redmi品牌的第一款智能手表产品RedmiWatch小方屏的推出正式将智能手表品类带入到300元档位内,而RedmiWatch小方屏的发布也标志着小米进入智能手表领域已经一年都叫高拍仪,不同应用场景,核心功能大大不同高拍仪最初只是一款扫描存储一体设备,它的特点是操作方便,小巧易携带,主要应用于办公室,将各种纸质文件扫描存储归档,让公司文档储存数字化,方便后期查询检索。它的结构十分简单,高倍摄像今天,你被种草了没?种草经济火爆发展的背后公众号关注诺好杂谈了解人生百态亲测有效,还不快去买买买!太好吃了,被种草了!OhMyGod,快盘它!在自媒体盛行,人人皆可直播带货社交带货的时代。种草经济已经不折不扣地成为了当下消科目二又挂科?你需要掌握这5个技巧,满分也不在话下在报考驾校之后,学员们就需要根据教练的指导进行学习了,在这4个科目考试中,科目一和科目四难度比较低,相比之下科目二和科目三就很难了,学员们首先遇到的难关就是科目二了。科目二之所以比30年前,一人花千万买下9号车牌,如今却有价无市传统文化和观念的影响,人们都比较好面子,这一点在衣食住行上都表现得淋漓尽致,就拿一件衣服来说,普通人觉得只要衣服干净得体保暖舒适就好,但是对于追求面子的人来说,就需要衣服拥有品位奢新手上高速之前,先记住这些诀窍,其一慢车不等于安全拥有驾照并不等于会开车,相信很多新手司机都听过老司机的这句话,其实这句话说得不错,新手司机在获得驾照之后虽然说是能开车上路了,但是对各种情况的处理并不在行。很多交通事故的发生,都出电脑机箱如何选?这款超炫酷的侧透机箱了解下Hi大家好,我是三重奏不久前,组装了一台全封闭式静音机箱,最大特色就是机箱档板上都加装了用于吸收噪音的静音棉。最终静音效果也确实是达到了预期,但是整体重量嘛,恐怕就要用健身器材来形电脑电源如何选?省电又静音的骨伽GEX850了解下Hi大家好,我是三重奏在装机圈,早前就流行着一个名词炸机,也就是很多人在追求高配低价电脑时,往往忽视了电源的重要性,选择一些低质杂牌的电源,最后Boom掉了连带着整个电脑一起报废,因为性能不达标而产生的型号海鸥DF103单反照相机!中国制造今天继续介绍一款国产的单反照相机,就是海鸥海鸥照相机厂生产的海鸥DF103。该机最主要的特点是在1500秒的快门速度之上还隐藏了一档快门速度。而我之所以购买这台海鸥DF103单反,无线畅玩,北通斯巴达2无线游戏手柄体验空闲时间喜欢玩游戏,手游主机PC等等各种平台的游戏都有过接触,玩的游戏越多,愈发能体会手柄玩游戏的畅快感,无论是坐着,躺着,各种姿势,无拘无束,比传统的键鼠体验更佳,早前试玩过北通