You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Frida读取Windows进程内存遇ProcessNotRespondingError求助

解决Frida附加Windows进程时的ProcessNotRespondingError问题

问题描述

我需要读取PID为10308、名为hello.exe的进程内存,使用Python 3.10结合Frida实现的代码如下:

import frida

def read_process_memory(process_name):
    session = frida.attach(process_name) # 错误发生在此处
    memory_map = session.enumerate_ranges("r--")
    memory = b""
    for memory_range in memory_map:
        memory_chunk = session.read_bytes(memory_range.base_address, memory_range.size)
        memory += memory_chunk

    session.detach()
    return memory

memory = read_process_memory("hello.exe")
print(memory)

执行时在session = frida.attach(process_name)语句抛出错误:

frida.ProcessNotRespondingError: process with pid 10308 either refused to load frida-agent, or terminated during injection

测试进程是通过Windows 11文件资源管理器启动的C++可执行文件,源码如下:

#include <iostream>
#include <chrono>
#include <thread>
#include <string>

int main() {
    std::string myString = "SECRET";
    std::cout << "Starting..." << std::endl;
    std::this_thread::sleep_for(std::chrono::seconds(60));

    std::cout << "END" << std::endl;

    return 0;
}

解决方案

  • 以管理员身份运行脚本
    Windows环境下,Frida注入进程需要足够权限。右键点击Python终端或IDE,选择「以管理员身份运行」后再执行代码。

  • 使用PID而非进程名附加
    同名进程可能导致附加目标错误,直接指定PID更精准。修改代码如下:

    import frida
    
    def read_process_memory(pid):
        session = frida.attach(pid)
        memory_map = session.enumerate_ranges("r--")
        memory = b""
        for memory_range in memory_map:
            memory_chunk = session.read_bytes(memory_range.base_address, memory_range.size)
            memory += memory_chunk
    
        session.detach()
        return memory
    
    memory = read_process_memory(10308)
    print(memory)
    
  • 确保Frida与进程架构匹配
    检查hello.exe是32位还是64位,安装对应架构的Frida包:

    • 64位进程:
      pip install frida-tools --platform win_amd64
      
    • 32位进程:
      pip install frida-tools --platform win32
      

    同时确认Frida服务端(frida-server)架构与进程一致,本地进程一般自动适配,但手动验证可避免问题。

  • 临时关闭杀毒软件/Windows Defender
    部分安全软件会拦截Frida的注入行为,导致agent无法加载。临时关闭实时保护后再尝试附加。

  • 更新Frida到最新版本
    旧版本Frida可能存在兼容性问题,执行以下命令更新:

    pip install --upgrade frida frida-tools
    

内容的提问来源于stack exchange,提问作者JohnPeters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:23:26