HanDs
NO.2

[Delphi文章] 游戏外挂的内存动态搜索 





学习中请遵循国家相关法律法规,黑客不作恶。没有网络安全就没有国家安全

本站需要登陆后才能查看

其实对内存的理解我也是看别人的贴子满满搞才弄明白的,所以理解得不是很深刻,下面这个是我做的某个游戏外挂的内存动态搜索函数
FindvalueStr是游戏人物的属性值串,比如血,蓝等,格式:是血值,0蓝值,0     格式定义前要用游戏工具如FPE搜索研究清楚
valueLen是属性是几字节的
返回的是找到的地址
function MemBlockSearch(procID:integer;FindvalueStr:string;valueLen:byte):dword;
var
  ProcessID : integer;
  ProcessHndle : THandle;
  lpBuffer:array[0..4097] of byte;
  nSize: DWORD;
  BAddr,EAddr,i,k,j,lpNumberOfBytesWrite: DWORD;
  idx,findCount,ii,jj:byte;
  memX,hexStr:string;
  findArry:array[0..100] of byte;
begin
  ProcessID:=procId;
  result:=0;
  memX:=ConvertvalueToByte(findvalueStr,valueLen);
  idx:=pos(',',memX);
  findCount:=0;
  while length(memX)<>0 do
    begin
      if idx>0 then hexStr:=copy(memX,1,idx-1)
        else
          begin
           hexStr:=memX;
           idx:=length(memx);
          end;
      findArry[findCount]:=strtoint('$'+hexStr);
      inc(findCount,1);
      delete(memx,1,idx);
      idx:=pos(',',memX);
    end;

  //BAddr:=$00010000;
  //BAddr:=$4000000;
  BAddr:=$4000000;
  EAddr:=$F000000;
  nSize:=4096;
  //ProcessHndle:=OpenProcess(PROCESS_ALL_ACCESS,false,ProcessID);
  ProcessHndle:=OpenProcess(PROCESS_VM_READ,false,ProcessID);
  i:=BAddr;
  j:=nSize-1;
  while true do
     begin
       ReadProcessMemory(ProcessHndle,Pointer(i),@lpBuffer,nSize,lpNumberOfBytesWrite);
       for k:=0 to j do
         begin
           idx:=0;
           while true do
             begin
               if findArry[idx]=lpBuffer[k+idx] then idx:=idx+1 else break;
               if idx>=FindCount then
                 begin
                  result:=i+k;
                  exit;
                 end;
             end;
         end;
         inc(i,nSize);
         dec(i,findCount);
         if (i+nSize)>EAddr then j:=EAddr-i;//超出时计算剩余
         if i>=Eaddr then break;
     end;
  CloseHandle(ProcessHndle);
  //messagebox(,'No Found','No Found',MB_OK);
end;

 


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
游戏外挂 内存 动态 搜索
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组