吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4211|回复: 13
收起左侧

[其他转载] 安卓安装frida-server Hook

[复制链接]
ZenoMiao 发表于 2021-5-2 07:16

刚开始学习安卓逆向, 遇到的一大堆坑, 所以先记录下来, 不管是用于分享学习或者用于日记记录也好

首先你需要有一台Root了的手机, 如果没有用3.2版本的雷电模拟器或者买一台Google的pixel 1

前置需求就不多说了, adb jdk python环境之类的安装, root, 开发者选项打开usb调试, OEM解锁

安装frida和frida-tools

首先先去下载frida-server所需文件https://github.com/frida/frida/releases

frida  frida-server的版本必须保持一致    frida-tools需要看其版本支持什么哪个版本的frida, 如果不清楚直接下载同样版本就好

pip install frida
pip install frida-tools

查看Frida安装版本

frida --version

在这里插入图片描述

根据所安装的frida版本下载相对应的frida-server版本

进入github之后发现frida-server有四个不一样的, 那么如何知道使用哪个才对呢
在这里插入图片描述
我们需要查看一下自己的手机是32位还是64位的

arm基本是32位的手机使用的
arm64基本是64位手机使用
如果是模拟器基本是使用x86的即可
而最后一个基本用不着, 所以不管他

如何查询自己手机是多少位

https://jingyan.baidu.com/article/0eb457e54c290f43f0a90550.html

安装frida-server

下载完了之后, 先用usb链接电脑, 然后打开电脑的小黑窗
输入以下命令用于查看链接设备

adb devices

在这里插入图片描述
前面的是你的设备, 后面的是已连接的意思

具体其他情况可以参考一下: https://blog.csdn.net/weixin_38374974/article/details/83589633

看到已连接之后, 把刚才下载下来的frida-server推送去手机

adb push 本地文件路径 /data/local/tmp/

在这里插入图片描述

push之后有一个空格, 是你刚才下载下来的压缩包里面的一个文件路径, 然后后面接着一个空格, 是手机存放的路径, 一半为/data/local/tmp/ 如果tmp后面没有任何内容则使用默认文件名, 如果有则使用指定的名字

push完了之后继续输入命令进入安卓内操作

adb shell
adb -s 设备名 shell

以上两种选择一种即可, 第二种是因为你电脑可能链接了多个设备, 所以需要指定进入哪个

在这里插入图片描述
如果是看到有一个$的符号说明你已经成功进入了.$代表的是shell, 但是我们需要的是root用户权限所以还需要切换一下root用户(输入su 回车即可). 当你看到#的时候, 说明已经是root用户权限了
在这里插入图片描述
进入刚才推送的包的目录下

cd /data/local/tmp/

在这里插入图片描述
更改文件权限(至于为什么可以自己额外了解一下linux)

chmod 777 文件名

在这里插入图片描述
运行frida-server

./fd64test

这里可能会有坑

当你运行的时候, 如果没有任何信息提醒固然是好的, 但是如果有其他信息出现. 例如
在这里插入图片描述
其实是可以运行的, 我也不知道为什么, 反正我自己的手机和模拟器都这样. 但是运行是正常的. 所以暂时忽略不管吧
运行了之后,小黑窗一定不能关闭, 必须常在后台挂着, 除非你不打算继续使用frida了

然后到代码部分

# -*- coding: utf-8 -*-
import sys
import frida

jsCode = """
console.log('Zeno');
"""

def message(message, data):
    if message["type"] == "send":
        pass
        print(u"
  • {0}".format(message["payload"]))     else:         print(message) # process = frida.get_usb_device().attach(27082)  # 使用PID process = frida.get_remote_device().attach("com.dodonew.online")  # 标准端口 使用包名 # process = frida.get_device_manager().add_remote_device('手机ip:端口').attach("com.dodonew.online")  # 非标准端口 script = process.create_script(jsCode) # script.on("message", message) script.load() sys.stdin.read()
  • 在这里插入图片描述
    完美运行

    免费评分

    参与人数 1热心值 +1 收起 理由
    17376777302 + 1 热心回复!

    查看全部评分

    发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

    xiao_ya 发表于 2021-5-3 07:41
    [JavaScript] 纯文本查看 复制代码
    def message(message, data):
        if message["type"] == "send":
            pass
            print(u"
     {0}".format(message["payload"]))
        else:
            print(message)

    这句代码什么意思?
     楼主| ZenoMiao 发表于 2021-5-5 07:32
    xiao_ya 发表于 2021-5-3 07:41
    [mw_shl_code=javascript,true]def message(message, data):
        if message["type"] == "send":
            ...

    下面绑定了message的函数, 就是把js的信息输出 绑定在这个函数里面, 如果你js有用到send()来传数据给python的话 可以通过第一个if捕抓到, 并且用python对数据做处理
    zhangxu888 发表于 2021-5-2 09:34
    我的安装报错!结果全卸了!最关键的一步就是链接模拟器运行的时候显示找不到frida
    pdc9911 发表于 2021-5-2 10:41
    感谢分享,一起加油
    wildfire_810 发表于 2021-5-2 11:02
    描述很完整
     楼主| ZenoMiao 发表于 2021-5-2 13:25
    zhangxu888 发表于 2021-5-2 09:34
    我的安装报错!结果全卸了!最关键的一步就是链接模拟器运行的时候显示找不到frida

    截图看一下
    zhangxu888 发表于 2021-5-2 13:30

    我都卸载了!
    头像被屏蔽
    jiale625 发表于 2021-5-14 16:32
    提示: 作者被禁止或删除 内容自动屏蔽
    klbengbeng 发表于 2022-3-7 22:25

    /system/bin/sh: ./frida-server-15.1.17-android-x86: can't execute: Is a directory我的出现这个问题,不知道怎么解决,大佬给看下,谢谢!
    您需要登录后才可以回帖 登录 | 注册[Register]

    本版积分规则

    返回列表

    RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

    GMT+8, 2024-11-25 04:15

    Powered by Discuz!

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表