C++ sunday算法,极速定位指定进程内存特征码

#include <windows.h>
#include <time.h>
#include <iostream>
using namespace std;

//2020.8.9代码更新,修复通配符的小BUG,该BUG会有极低几率搜索错误,现已修复
//2022.4.4代码更新,添加一句代码,修复起始地址的小BUG,该BUG会有小概率搜不到想要的内存

/*
findMatchingCode() 参数说明:
1) hProcess		要打开的进程句柄
2) markCode		特征码,支持通配符(**),如: 55 8b ec ** 56 83 ec 20 ** ** 08 d9 ee
3) memBeginAddr		起始搜索地址
4) memEndAddr		结束搜索地址
5) retAddr[]		记录找到的地址,传入这个参数前一定要清0,如 DWORD retAddr[32] = {0};  或者 DWORD *retAddr = new DWORD[32]();
6) deviation		特征码地址离目标地址的偏移距离,上负下正
7) isCall		是否为找CALL的跳转地址,true 则 retAddr[] 返回的是CALL跳转的地址
8) isAll		是否查找所有符合的地址,false找到第一个符合的地址后就结束搜索,true继续搜索,直到搜索地址大于结束地址(memEndAddr)
return返回值		找到的地址总数
搜不到内存可能是保护属性没有选对
*/
DWORD findMatchingCode(HANDLE hProcess, string markCode, DWORD memBeginAddr, DWORD memEndAddr, DWORD retAddr[], int deviation, bool isCall, bool isAll 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值