pykd 中的 searchMemory 函数
searchMemory function in pykd
我想了解如何在 windbg 的 pykd 扩展中使用 searchMemory()
函数。
documentation 表示如下:
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> >)
有人知道参数是什么吗?我应该如何使用这个函数?
首先,请注意同一方法有 2 个重载:
searchMemory( (long)arg1, (int)arg2, (list)arg3) -> int
和
searchMemory( (long)arg1, (int)arg2, (str)arg3) -> int
arg1
是开始搜索的起始地址或偏移量,
arg2
是要搜索的内存长度或数量,
arg3
为搜索词,可
- 一个字符串 (
std::string
) 或
- 一个列表(共
char
个)
- return的值又是一个偏移量,肯定是第一次出现的偏移量,所以要找到下一次出现的,就得重新搜索
我已经从 pymemaccess.cpp [Codeplex] 中的来源解释了所有这些,但我自己从未使用过。
我既不熟悉 C++,也不熟悉 Python,更不了解两者之间的映射,但是恕我直言,std::string
是字节串而不是 Unicode 字符,所以你可以在那里放任意字节。它也应该适用于ASCII搜索。但是对于 UTF-16 / UCS 文本,您可能需要 fiddle 一点。这同样适用于 char
的列表,因为它没有声明为 wchar_t
.
我想了解如何在 windbg 的 pykd 扩展中使用 searchMemory()
函数。
documentation 表示如下:
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> >)
有人知道参数是什么吗?我应该如何使用这个函数?
首先,请注意同一方法有 2 个重载:
searchMemory( (long)arg1, (int)arg2, (list)arg3) -> int
和
searchMemory( (long)arg1, (int)arg2, (str)arg3) -> int
arg1
是开始搜索的起始地址或偏移量,arg2
是要搜索的内存长度或数量,arg3
为搜索词,可- 一个字符串 (
std::string
) 或 - 一个列表(共
char
个)
- 一个字符串 (
- return的值又是一个偏移量,肯定是第一次出现的偏移量,所以要找到下一次出现的,就得重新搜索
我已经从 pymemaccess.cpp [Codeplex] 中的来源解释了所有这些,但我自己从未使用过。
我既不熟悉 C++,也不熟悉 Python,更不了解两者之间的映射,但是恕我直言,std::string
是字节串而不是 Unicode 字符,所以你可以在那里放任意字节。它也应该适用于ASCII搜索。但是对于 UTF-16 / UCS 文本,您可能需要 fiddle 一点。这同样适用于 char
的列表,因为它没有声明为 wchar_t
.