Windbg pykd中的搜索记忆功能

Windbg pykd中的搜索记忆功能,windbg,pykd,Windbg,Pykd,我试图了解如何在windbg的pykd扩展中使用searchMemory()函数 报告说: Function searchMemory searchMemory( (long)arg1, (int)arg2, (list)arg3) -> int : Search in virtual memory C++ signature : unsigned __int64 searchMemory(unsigned __int64,unsigned long,class boost::pyth

我试图了解如何在windbg的pykd扩展中使用
searchMemory()
函数

报告说:

Function searchMemory

searchMemory( (long)arg1, (int)arg2, (list)arg3) -> int :
Search in virtual memory

C++ signature :
unsigned __int64 searchMemory(unsigned __int64,unsigned long,class boost::python::list)

searchMemory( (long)arg1, (int)arg2, (str)arg3) -> int :
Search in virtual memory

C++ signature :
unsigned __int64 searchMemory(unsigned __int64,unsigned long,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)
函数搜索内存
搜索内存((长)arg1,(int)arg2,(列表)arg3)->int:
在虚拟内存中搜索
C++签名:
unsigned _int64搜索内存(unsigned _int64,unsigned long,类boost::python::list)
搜索内存((长)arg1,(int)arg2,(str)arg3)->int:
在虚拟内存中搜索
C++签名:
unsigned _int64搜索内存(unsigned _int64,unsigned long,class std::basic_string)

有人知道参数是什么以及我应该如何使用此函数吗?

首先,请注意同一方法有两个重载:

searchMemory( (long)arg1, (int)arg2, (list)arg3) -> int

  • arg1
    是开始搜索的起始地址或偏移量
  • arg2
    是要搜索和删除的内存长度或数量
  • arg3
    是搜索词,可以
    • 字符串(
      std::string
      )或
    • (字符的)列表
  • 返回值又是一个偏移量,当然是第一次出现的偏移量,因此要查找下一次出现的偏移量,必须再次搜索
我已经从中的来源解释了所有这些,我自己也从未使用过

我既不熟悉C++,也不熟悉Python,更不熟悉这两种映射之间的关系,但IMHO <代码> STD::String 是一个字节串而不是Unicode字符,因此可以在其中放置任意字节。它还应该适用于ASCII搜索。但您可能需要对UTF-16/UCS文本进行一些修改。这可能同样适用于

char
列表,因为它没有声明为
wchar\u t

searchMemory( (long)arg1, (int)arg2, (str)arg3) -> int