DNF_DLL/test/函数块.cpp

65 lines
1.1 KiB
C++
Raw Normal View History

2022-02-07 03:31:00 +08:00
#include "pch.h"
//<2F><>ȡEXEʹ<45><CAB9>ͷ <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
int GetExeNutWrtNum(int Pos)
{
int num = *(int*)(0x40079F + (Pos * 4));
return num;
}
//дEXEʹ<45><CAB9>ͷ <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
void SetExeNutWrtNum(int Pos, int num)
{
int* p = (int*)(0x40079F + (Pos * 4));
*p = num;
}
//<2F><>ȡNutͷ <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
int GetNutArrNum(int Nutͷ<EFBFBD><EFBFBD>ַ, int Pos )
{
int num = *(int*)(Nutͷ<EFBFBD><EFBFBD>ַ + (Pos * 8));
return num;
}
//дNutͷ <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
void SetNutArrNum(int Nutͷ<EFBFBD><EFBFBD>ַ, int Pos, int num)
{
int* p = (int*)(Nutͷ<EFBFBD><EFBFBD>ַ + (Pos * 8));
*p = num;
}
//<2F><><EFBFBD>ڴ<EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
int GetHook(int Addr, std::string <EFBFBD><EFBFBD>ַ)
{
size_t pos = <EFBFBD><EFBFBD>ַ.find("+");
size_t size = <EFBFBD><EFBFBD>ַ.size();
int GetHookArr[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
int i = 0;
while (pos != std::string::npos)
{
std::string x = <EFBFBD><EFBFBD>ַ.substr(0, pos);
GetHookArr[i] = stoi(x, 0, 16);
i++;
<EFBFBD><EFBFBD>ַ = <EFBFBD><EFBFBD>ַ.substr(pos + 1, size);
pos = <EFBFBD><EFBFBD>ַ.find("+");
}
int num;
num = *(int*)(Addr);
if (num != 0)
{
for (int z = 0; z < i; z++)
{
num = *(int*)(num + GetHookArr[z]);
}
}
return num;
}