Android_高级进阶_Hook插件开发__在任何APP添加自己的功能

如何在一个陌生的APP中插入自己想要的插件功能!

本章实现目标:教你如何在一个陌生APP中,插入自己想要实现的启动图。

开始之前先介绍一下,我们的操作是在反编译之后的代码上进行操作的。更要清楚的是java文件在编译之后对应的语言是smali语言。如下:

在这里插入图片描述


ok,进入我们的正题,如何以上工具不清楚的请看我另一篇文章介绍!

第一步:首先我们通过工具Killer,反编译你要修改的App。
第二步:在Android Studio新建一个工程,然后在里面写上你要添加插件的功能的代码,图片等等一系列的功能(就是我们的启动图功能)
第三步:通过Killer工具反编译自己的新建功能的MyApp
第四步:修改编译smali文件,实现自己想要的效果。

		  修改smali文件我总结了一下也分为及步骤:
		  1、在陌生App中添加启动图图片
		  2、添加新的XML布局
		  
		  /** 对控件的添加*/
		  3、添加ID,在反编译的XML中对应的控件都会有一个 android:id="@id/******" 这样属性, "****"是任意的
		  4、然后全局搜索******这个属性获取ID,在R$id.smali文件下获取
		  5、然后通过获取的ID全局搜索看哪里用到, 然后粘贴到自己的陌生App中
		  
		  /** 对资源图片的添加*/
		  6、在values文件下里面有public.xml,  这里面存放着索引ID的指向,每个都是唯一的,然后搜索back图片名称找到对应的ID
		  7、然后搜索找出来的ID,看哪里有引用,找到后复制到自己的陌生App中
		  8、需要注意的是,使用drawable还会有对应的smali文件,所以我们还要在R$drawable.smali文件中添加对应的信息
		  9、在R$drawable.smali中搜索图片名称back,找到对应的ID,然后复制到自己陌生App中
		  
		  /** 修改ids.xml(无论是添加什么都要在ids里面添加一下)*/
		  10、在ids里面搜索imageview(就是我们上面的******)然后添加到自己陌生App中
		
		/** 重点: 修改public.xml中的ID值 */
		11、我们通过上面操作已经把对自己的id复制到陌生App中了,但是原本里面ID是连续的,我们复制过来的ID插进来以后不连续了,所以我们要更改一下ID,按陌生App的ID,复制一下,按规律改下值即可。改好以后别忘了全局替换,
		  
		  /** XML的添加*/
		  12、在R$layout.smali文件中搜索xml名称找到对应id, 全局搜索一下id的引用全都 复制到陌生App中,共有3处:R$layout.smali、public.xml、还有一个是activity类中的引用。
		  13、运行之后可能会报错,应该是跳转首页的包名路径不对要改成陌生APP的包名路径

经过以上,是比较教科书是的操作流程,无论是添加复杂功能,还是简单的功能,都是这样操作,可能有点繁琐,熟悉后就好了。


以下是我操作的截图。对应上面序号操作!

1、
在这里插入图片描述
3-4、
在这里插入图片描述
在这里插入图片描述

6-9、在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

10、

在这里插入图片描述

在这里插入图片描述
11、
在这里插入图片描述

在这里插入图片描述
12、

在这里插入图片描述

在这里插入图片描述
13、

在这里插入图片描述

发布了51 篇原创文章 · 获赞 78 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_39079048/article/details/87918620