python hook android_Frida Android hook 初体验

本文是 Piasy 原创,发表于 https://blog.piasy.com,请阅读原文支持原创 https://blog.piasy.com/2017/06/01/frida-android-hook/

最近的工作需要通过 hook 研究一些目标 APP 的系统 API 调用,很早就了解到了 Frida,这次终于可以体验一把了。花了一整天的时间,才终于把环境搭好,主要是准备手机系统花了时间。示例代码可以在 GitHub 获取。

【2017.6.4 更新】:自动生成 Javascript hook 脚本的工具有了一个可用的版本,check it out :)。

环境准备

最终成功的环境:

macOS 10.12.5 (16F73)

python 3.6.1

Frida 10.0.9

Nexus 5X

之前失败的手机系统:

Nexus 5X,自己编译的 AOSP,7.1.1_r24,由于是工程镜像,所以自带 root,SELinux 可以设置为 Permissive mode;在手机上运行 frida-server 之后,电脑上的所有指令都提示 connection refused;

三星 note 3,KingRoot,SELinux 无法设置为 Permissive mode;在手机上运行 frida-server 之后,电脑上可以执行 frida-ps,但 frida-trace 提示 Failed to attach: failed to execute child process “/data/local/tmp/re.frida.server/frida-helper-32” (Permission denied);

【2017.6.2 更新】:运行得好好的 Frida,今天下午突然又不行了,提示 connection refused,折腾半天发现是电脑不仅连接了 Nexus 5X,还连上了一台 iPhone,拔掉 iPhone 就好了,希望大家不会遇见这样的窘境。

hook 需求

MainActivity 的代码如下:

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViewById(R.id.mBtnTest).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(final View v) {

private_func();

private_func(123);

private_func("str");

private_func("str", true);

System.out.println("func_with_ret(4): " + func_with_ret(4));

}

});

}

private void private_func() {

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值