function button1_click()
traceprint(WriteData(strtrim(editgettext("edit0"))))
end
function WriteData(ByteArray)
//取自身进程句柄 非PID或HWND
var Handle = information(dllcall("kernel32.dll", "DWORD", "GetCurrentProcessId"), 2)
var Ret = ""
var RetArray
var n = strsplit(ByteArray, " ", RetArray)
//申请一段本进程空白内存
var addr = dllcall("kernel32.dll", "DWORD", "LocalAlloc", "DWORD", 0, "DWORD", n)
var VarValue
//写入字节集
for(var p = 0; p < n; p++)
VarValue = cint(RetArray[p], 1)
dllcall("kernel32.dll", "BOOL", "WriteProcessMemory", "HANDLE", Handle, "DWORD*", addr + p, "DWORD*", getvarpointer(VarValue) + 8, "int", 1, "int*", 0)
end
//内存字符串读取
Ret = readstring(Handle, addr, n, 0)
//释放申请的内存
dllcall("kernel32.dll", "DWROD", "LocalFree", "HLOCAL", addr)
sp.WriteData(Ret)
return Ret
end
|