如有需要源码和有什么不懂的联系我QQ2485171968 玩游戏的人一般都用过外挂,外挂看起来很神奇。其实他的原理就是HOOK,就是注入到目标进程了获取目标进程数据段的数据,然后修改达到目的,比如我们我开始开发游戏时,定义一个变量 int sore=0;记录游戏当前得分的,一般程序的变量编译后都是放到数据段里,运行时也映射到内存的相应数据段里,外挂要做的就是找到这个变量的在内存中的地址然后修改他的值。但是整个过程复杂难度很大,所以一般只有技术蛮高的人才能做。
,而且官方也提供了DEMO叫RedClock, 现在就用官方的DEMO做讲解 第一步,建立一个android工程, 第二步,导入官方的开发包xposedBradge-版本号.jar,可以到官方的github地址下载 https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
第三步,如图配置AndroidManifest.xml,在Application标签添加 <meta-data
android:name="xposedmodule"
android:value="true" />
<meta-data
android:name="xposeddescription"
android:value="Easy example which makes the status bar clock red and adds a smiley" />
<meta-data
android:name="xposedminversion"
android:value="30" />
属性,其中<meta-data
android:name="xposedmodule"
android:value="true" /> 是固定的,用于标识是xposed插件,这样安装后xposed installer就会识别并加载, <meta-data
android:name="xposeddescription"
android:value="Easy example which makes the status bar clock red and adds a smiley" />
<meta-data 是用于在xposed installer插件列表里显示的标题和描述信息的额,这个可以自定义, <meta-data
android:name="xposedminversion"
android:value="30" />
这个标识jar包的版本号,就是导入SDK 开发包的版本号, 其他的就没什么要特别配置的了,
第四步,在工程的assets文件夹新建一个名为xposed-init的文件,内容是入口类的全路径类名(包名+类名), 如图,类名是de.robv.android.xposed.examples.redclock.RedClock,标识是插件的入口类。 第五步,编写入口类,其中入口类要实现IXposedHookLoadPackage接口,并重写handleLoadPackage方法,便表示每当有一个APP被加载时就回调这个接口,这里我们可以 处理我们感兴趣的APP,是以包名为标识,比如DEMO里监听的是"com.android.systemui"包,对应的API就是系统应用SystenUi.apk专门显示系统UI的,比如状态栏, 这是DEMO的代码
public EditText et_count;对应账号输入框的成员变量
|