|
22精币
BYTE _back_1[5];
BYTE _back_2[5];
BYTE a16008[0x80];
ADDRESS a637A563;
ADDRESS a637A968;
ADDRESS a3000AC; // should always be 1
BOOL WINAPI bgarOn()
{
DWORD old;
VirtualProtect(a637A563, 5, PAGE_EXECUTE_READWRITE, &old);
VirtualProtect(a637A968, 5, PAGE_EXECUTE_READWRITE, &old);
{
unsigned char* p = reinterpret_cast<unsigned char*>(a637A563);
memcpy(_back_1,p,5);
*p = 0xe8;
p += 5;
int X = (int)f00127C0 - (int)p;
p -= 5;
*reinterpret_cast<DWORD*>(p+1) = X;
}
{
unsigned char* p = reinterpret_cast<unsigned char*>(a637A968);
memcpy(_back_2,p,5);
*p = 0xe8;
p += 5;
int X = (int)f00152930 - (int)p;
p -= 5;
*reinterpret_cast<DWORD*>(p+1) = X;
}
VirtualProtect(a637A563, 5, old, &old);
VirtualProtect(a637A968, 5, old, &old);
return TRUE;
}
BOOL WINAPI bgarOff()
{
DWORD old;
VirtualProtect(a637A563, 5, PAGE_EXECUTE_READWRITE, &old);
VirtualProtect(a637A968, 5, PAGE_EXECUTE_READWRITE, &old);
memcpy(a637A563,_back_1,5);
memcpy(a637A563,_back_2,5);
VirtualProtect(a637A563, 5, old, &old);
VirtualProtect(a637A968, 5, old, &old);
return TRUE;
}
void __declspec(naked) f00127C0()
{
__asm{
// 这里是内联汇编就不需翻译了
}
}
BOOL WINAPI Init()
{
int Ver;
*(int*)&a3000AC = 1;
HMODULE hMod = GetModuleHandle(L"acs.dll");
a16088 = (ADDRESS)GetProcAddress(hMod, (LPCSTR)0x191);
a16980 =(LPVOID)GetModuleHandleA("gfe.dll");
switch (Ver)
{
//条件if
return FALSE;
}
return TRUE;
}
VirtualProtect 修改内存属性 memcpy 复制内存 这些大楷我都懂,就是看不懂哪些变量是怎么申明的,在易语言怎是什么类型
可以用精益模块 或者 api 写成易语言格式 最好也备注
重点是 bgarOn 然后就是数据类型的申明 |
|
|