-
-
高手来看下 我那里出错了
-
发表于: 2010-12-31 15:39 3110
-
1单元
Const RoleBaseAdr=$62C7C0; //主号基址
Function RWord(Addr: Dword): WORD;读双字节整型
begin
Result := 0;
Try
EnterCriticalSection(Critical1); //进入临界段
try
if PWORD(Addr) <> nil then
begin
Result := PWORD(Addr)^;
end;
finally
LeaveCriticalSection(Critical1); //退出临界段
end;
except
Result := 0;
end;
end;
Function RDword(Addr: Dword): Dword;读四字节整型
begin
Result := 0;
Try
EnterCriticalSection(Critical1); //进入临界段
try
if PDWORD(Addr) <> nil then
begin
Result := PDWORD(Addr)^;
end;
finally
LeaveCriticalSection(Critical1); //退出临界段
end;
except
Result := 0;
end;
end;
2单元
Function GetRoleHP: DWORD; //获取主号人物当前HP
var
RoleBase: DWORD;
begin
Try
RoleBase := RDword(RoleBaseAdr);
Result:= Rword(RoleBase+ $68); //人物当前HP
except
Result:=0;
end;
end;
取函数
GetRoleHP
RzEdit18.Text:=IntToStr(GetRoleHP);
可是读取的是0
如果用汇编直接读取的话就正确
var
Address:pointer;
y,n,p,i:DWORD;
begin
Address:=pointer(RoleBaseAdr);
asm
pushad
mov eax,address
mov eax, dword ptr[eax]
mov eax, dword ptr[eax+$68]
mov i, eax
popad
end;
MyForm.RzEdit5.Text:=IntToStr(i);
请前辈们指导一下
Const RoleBaseAdr=$62C7C0; //主号基址
Function RWord(Addr: Dword): WORD;读双字节整型
begin
Result := 0;
Try
EnterCriticalSection(Critical1); //进入临界段
try
if PWORD(Addr) <> nil then
begin
Result := PWORD(Addr)^;
end;
finally
LeaveCriticalSection(Critical1); //退出临界段
end;
except
Result := 0;
end;
end;
Function RDword(Addr: Dword): Dword;读四字节整型
begin
Result := 0;
Try
EnterCriticalSection(Critical1); //进入临界段
try
if PDWORD(Addr) <> nil then
begin
Result := PDWORD(Addr)^;
end;
finally
LeaveCriticalSection(Critical1); //退出临界段
end;
except
Result := 0;
end;
end;
2单元
Function GetRoleHP: DWORD; //获取主号人物当前HP
var
RoleBase: DWORD;
begin
Try
RoleBase := RDword(RoleBaseAdr);
Result:= Rword(RoleBase+ $68); //人物当前HP
except
Result:=0;
end;
end;
取函数
GetRoleHP
RzEdit18.Text:=IntToStr(GetRoleHP);
可是读取的是0
如果用汇编直接读取的话就正确
var
Address:pointer;
y,n,p,i:DWORD;
begin
Address:=pointer(RoleBaseAdr);
asm
pushad
mov eax,address
mov eax, dword ptr[eax]
mov eax, dword ptr[eax+$68]
mov i, eax
popad
end;
MyForm.RzEdit5.Text:=IntToStr(i);
请前辈们指导一下
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- 高手来看下 我那里出错了 3111
- [求助][求助]大家来看看具体什么壳 3157
- [原创]有良知的中国人就进来看看 就为灾情祝福吧 2125
- [原创]有良知的中国人就进来看看 就为灾情祝福吧 3197
看原图
赞赏
雪币:
留言: