Android Frida ProcessNotFoundError error error when trying to attach to a process

5sxhfpxr  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(204)

我已经按照official page安装指南安装了frida,并从他们的github发布页面下载了frida-server-16.1.5-android-x86_64,放在我的android 9.0vm的**/data/local/tmp/目录下(x86_64 VM通过virt-manager运行)。即使在以root身份运行frida-server**并运行此示例脚本以尝试附加到进程之后,我仍然会遇到此错误。

import frida

def on_message(message, _data):
    if message['type'] == 'send':
        print(f"Syscall: {message['payload']}")

def trace_syscalls(target_process):
    session = frida.attach(target_process)
    session.on('message', on_message)
    session.detach() 

if __name__ == '__main__':
    target_process = 17772 
    # target_process = 'owasp.mstg.uncrackable2' 
    # target_process = 'Uncrackable Level 2' 
    trace_syscalls(target_process)

字符串
我确信进程名和pid都是正确的。
frida.ProcessNotFoundError:找不到pid为17772的进程
当我尝试使用PID或
frida.ProcessNotFoundError:无法找到名称为“owasp.mstg.uncrackable2”的进程
frida.ProcessNotFoundError:无法找到名称为'Uncrackable Level 2'的进程
当我尝试使用进程名(从frida-ps -Ua返回)时,
frida-trace -U -N owasp.mstg.uncrackable2的输出:

$ frida-trace -U -N owasp.mstg.uncrackable2
Started tracing 0 functions. Press Ctrl+C to stop.                      
Process terminated


输出什么,即使当我使用该应用程序,它仍然是这样,直到我关闭该过程.也只有这个Android设备通过亚行连接.
pip提供的frida-tools软件包的版本号是12.3.0,是pip提供的最新版本。而frida-server的版本号是16.1.5,是他们git repo提供的最新版本。是什么原因导致了这个问题,以及如何解决这个问题?提前感谢。

c7rzv4ha

c7rzv4ha1#

问题是你的Python代码。你直接调用frida.attach(target_process)。Frida怎么知道要挂接的进程在VM内部运行?通过这个调用,Frida将尝试通过它在主机上的pid而不是在VM内部找到进程,因为这不起作用,你得到了frida.ProcessNotFoundError
你首先要建立连接到虚拟机.因为它是一个虚拟的Android设备与adb支持的VM像USB设备工作.因此,这段代码将帮助您挂钩的Android应用程序:

package_name = "owasp.mstg.uncrackable2"
device = frida.get_usb_device()
pid = None
for a in device.enumerate_applications():
    if a.identifier == package_name:
        pid = a.pid
        break

session = device.attach(pid)

字符串

相关问题