易语言KMP算法内存特征码搜索源码是一款易语言KMP算法实现内存快速搜索特征码源码,KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特·莫里斯·普拉特操作(简称KMP算法)。
算法说明
KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)
易语言KMP算法搜索定位内存特征码源码
系统结构:DecimalToHex,Hex2Bin,HextoDecimal,Kmp_Search,Kmp_SearchEX,VirtualQueryEx,ReadProcessMemory_Data,wvsprintf,
======程序集1
| |
| |------ _启动子程序
| |
| |------ DecimalToHex
| |
| |------ Hex2Bin
| |
| |------ HextoDecimal
| |
| |------ Kmp_Search
| |
| |------ Kmp_SearchEX
| |
| |
======调用的Dll
| |
| |---[dll]------ VirtualQueryEx
| |
| |---[dll]------ ReadProcessMemory_Data
| |
| |---[dll]------ wvsprintf
调用的DLL命令:
.DLL命令 VirtualQueryEx, 整数型, , "VirtualQueryEx"
.参数 hProcess, 整数型
.参数 lpAddress, 整数型
.参数 info, MEMORY_BASIC_INFORMATION, 传址
.参数 dwLength, 整数型
.DLL命令 ReadProcessMemory_Data, 整数型, , "ReadProcessMemory"
.参数 hProcess, 整数型
.参数 lpBaseAddress, 整数型
.参数 lpBuffer, 字节集, 传址
.参数 nSize, 整数型
.参数 lpNumberOfBytesWritten, 整数型
.DLL命令 wvsprintf, 整数型, "user32.dll", "wvsprintfA", 公开
.参数 lpstr, 文本型
.参数 lpcstr, 文本型
.参数 OptionalArguments, 长整数型, 传址