下你所需,载你所想!
汇集开发技术源码资料

易语言切面编程纯内存操作

:353.419KB :1 :2020-01-11 17:40:14

部分简介

add1 = _取子程序真实地址 (&Test)
add2 = _取子程序真实地址 (&hookTest)
' 调试输出 (十到十六 (add1), 十到十六 (add2))
' jmpto (add1, add2)
' OutputDebugStringA (“&Test:” + 十到十六 (到整数 (&Test)) + “ 真实地址:” + 十到十六 (add1))
' OutputDebugStringA (“&hookTest:” + 十到十六 (到整数 (&hookTest)) + “ 真实地址:” + 十到十六 (add2))
搜索.打开进程 (GetCurrentProcessId ())
读取的字节集 = 搜索.读取 (add1, 1000)
' 调试输出 (“读取的字节集”, 读取的字节集)
跳转位置 = 字节集_寻找 (读取的字节集, { 1, 1, 1, 1, 1, 144, 144, 144, 144, 144 }, )
' 调试输出 (“位置”, 跳转位置)
jmpto (add1 + 跳转位置 - 1, add2)
' 调回位置 = 字节集_十六进制到字节集 (进制_十到十六 (add1 + 跳转位置 - 1 + 5))
' 信息框 (“调回位置:” + 字节集_字节集转文本 (调回位置), 0, , )
Test (1, “01”, “12”)
信息框 (“F C N B”, 0, , )

jmp = 232
hand = OpenProcess (#PROCESS_ALL_ACCESS, 0, GetCurrentProcessId ())
VirtualProtectEx (hand, from, 10, #PAGE_EXECUTE_READWRITE, dwOldProtect)
是否成功 = WriteProcessMemory_写字节 (hand, from, jmp, 1, 0)
OutputDebugStringA (“是否成功 ” + 到文本 (是否成功))
aaa = “11111111111111”
from = from + 1
aaa = “22222222222222222222”
from2 = from + 4
aaa = “444444444444444444444”
jmp2 = 到字节集 (到整数 (取绝对值 (to - from2)))
OutputDebugStringA (“jmp2 ” + 字节集到十六进制 (jmp2) + “ to:” + 到文本 (to) + “ from2:” + 到文本 (from2))
aaa = “3333333333”
是否成功 = WriteProcessMemory_字节集 (hand, from, jmp2, 4, 0)
OutputDebugStringA (“是否成功 ” + 到文本 (是否成功))
VirtualProtectEx (hand, from, 10, dwOldProtect, dwOldProtect)
CloseHandle (hand)

易语言切面编程纯内存操作

热门推荐

相关文章