使用Xposed框架HOOK任意函数及API


感谢作者 http://0nly3nd.sinaapp.com/?p=613 

0×1
建立一个空的工程
0×2
AndroidManifest.xml
        2.1 修改包名
                     
             
                修改为:package=” com.test.xposedmodel
        2.2  添加标识
                
                第二个是载入model之后显示的信息
                第三个是规定jar包的版本信息
0×3
XposedBridgeApi.jar
         在工程目录下新建一个lib文件夹。将下载好的 XposedBridgeApi-54.jar包放入其中。
         在工程里 右键– Build Path–Add to Build Path。
0×4
assets/xposed_init
        在assets目录下新建一个xposed_init文件。
        内容为:包名+类名,如:com.test.xposedtestmodel.Main
0×5
hook函数的编写(自定义函数)
        5.1
              目标apk,我自己写了一个用来测试的apk。
              包名为: com.example.forhook
              类名:MainActivity
              里面有一个函数:sayhello
              原型为:
               用了三个按钮分别进入三个分支
              
        
        5.2 hook函数的编写
                   注:a、首先判断包名
                            b、调用findAndHookMethod(“包名+类名”, lpparam.classLoader, “要hook的函数名称”, 第一个参数类型, 第二个参数类型….. , new XC_MethodHook()
                                   {
                                                   protected void afterHookedMethod ( MethodHookParam param )  
                              {
                                  //函数执行之后要做的操作
                              }
    
                         protected void beforeHookedMethod ( MethodHookParam param )  
                              {
                                  //函数执行之前要做的操作
                              }
                                   });
                             c、我的例子中我在函数调用之前修改了函数的两个参数!
                             d、在调用之后,我将函数的两个参数显示出来,并修改函数的返回值!
        5.3 效果
                              
                   
                   
0×6
hook系统API
         以Hook  getNetworkOperatorName为例:
         
         调用代码:              
         hook部分代码:

 

我在模拟器中测试,getNetworkOperatorName本应该返回“Android”。
在被hook之后,返回了“hook getNetworkOperatorName by lyz!”。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值