函数简介:
搜索指定的字符串,默认步长是1.如果要定制步长,请用FindStringEx
函数原型:
string FindString(hwnd, addr_range, string_value,type)
参数定义:
hwnd 整形数: 指定搜索的窗口句柄或者进程ID.
默认是窗口句柄. 如果要指定为进程ID,需要调用SetMemoryHwndAsProcessId.
addr_range 字符串: 指定搜索的地址集合,字符串类型,这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
如果要进行地址范围搜索,那么这个值为的形如如下(类似于CE的新搜索)
"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.
string_value 字符串: 搜索的字符串
type 整形数: 搜索的字符串类型,取值如下
0 : Ascii字符串
1 : Unicode字符串
2 : UTF8字符串
返回值:
字符串:
返回搜索到的地址集合,地址格式如下:
"addr1|addr2|addr3…|addrn"
比如"400050|423435|453430"
如果要想知道函数是否执行成功,请查看GetLastError函数.
示例:
// 全局搜索
result = dm.FindString(hwnd,"00000000-FFFFFFFF","哈哈哈哈",0)
if len(result) = 0 then
MessageBox
"找不到"
EndScript
end if
result = split(result,"|")
count = ubound(result)+1
MessageBox "找到"&count&"个地址"
注: DmGuard中的memory护盾也可以突破部分窗口内存保护,可以尝试使用。