跳到主要内容

WriteString 写入字符串

🎯功能

对指定地址写入字符串,可以是Ascii字符串或者是Unicode字符串或者UTF8字符串(UTF8字符串属于付费功能💰)

📜语法

结果 = dm.WriteString(句柄, 地址, 类型, 数据)

📥参数

参数数据类型解释
句柄整型数窗口句柄或者进程ID. 默认是窗口句柄. 如果要指定为进程ID,需要调用SetMemoryHwndAsProcessId
地址字符串用字符串来描述地址,类似于CE的地址描述,数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加,-表示地址减, 模块名必须用<>符号来圈起来
类型整型数字符串类型; 0:Ascii字符串, 1:Unicode字符串, 2:UTF8字符串(💰付费功能)
数据字符串要写入的数据
参数(地址)几种例子
  1. "4DA678" 最简单的方式,用绝对数值来表示地址
  2. "<360SE.exe>+DA678" 相对简单的方式,只是这里用模块名来决定模块基址,后面的是偏移
  3. "[4DA678]+3A" 用绝对数值加偏移,相当于一级指针
  4. "[<360SE.exe>+DA678]+3A" 用模块定基址的方式,也是一级指针
  5. "[[[<360SE.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

📤返回

整型数, 0为失败, 1为成功.

💡示例

dm_ret = dm.WriteString(hwnd,"4DA678",0,"我是来测试的")

📘备注

如果目标窗口的绑定属性中有dx.public.memory,并且是用本对象来绑定的,那么操作方式是直接进入目标进程读写.

dx.public.memory可突破部分窗口读写保护. 如果正常方式无法读写,可以尝试此属性。另外DmGuard中的memory护盾也可以突破部分窗口内存保护,可以尝试使用。