function TForm1.intncnr(addncnr:longint;rnd:DWORD):longint;
var
Num :cardinal;
mNum :integer;
pHandle: Thandle; //很重要
begin
pHandle:= OpenProcess(PROCESS_ALL_ACCESS,false,pid);//获得进程句柄
if pHandle <> 0 then
ReadProcessMemory(pHandle, Pointer(addncnr), Pointer(@mNum), sizeof(rnd),Num);
CloseHandle(pHandle); //关闭句柄释放内存
result :=mNum;end;调用方法
ShowMessage(inttostr(intncnr(intncnr(intncnr($041171c,4)+$0,4)+$c,1))); 最后提示应该返回1字节的数字为什么总是返回的4字节的数字呢?
var
Num :cardinal;
mNum :integer;
pHandle: Thandle; //很重要
begin
pHandle:= OpenProcess(PROCESS_ALL_ACCESS,false,pid);//获得进程句柄
if pHandle <> 0 then
ReadProcessMemory(pHandle, Pointer(addncnr), Pointer(@mNum), sizeof(rnd),Num);
CloseHandle(pHandle); //关闭句柄释放内存
result :=mNum;end;调用方法
ShowMessage(inttostr(intncnr(intncnr(intncnr($041171c,4)+$0,4)+$c,1))); 最后提示应该返回1字节的数字为什么总是返回的4字节的数字呢?
var
Num :cardinal;
mNum :integer;
pHandle: Thandle; //很重要
begin
pHandle:= OpenProcess(PROCESS_ALL_ACCESS,false,pid);//获得进程句柄
if pHandle <> 0 then
ReadProcessMemory(pHandle, Pointer(addncnr), Pointer(@mNum), rnd, Num);
CloseHandle(pHandle); //关闭句柄释放内存
result :=mNum;end;调用方法
ShowMessage(inttostr(intncnr(intncnr(intncnr($041171c,4)+$0,4)+$c,1))); 最后提示应该返回1字节的数字为什么总是返回的4字节的数字呢?还是一样啊,返回的还是不对。