 |
Создаем адрес сканер для Пб - Разработка ПО для Point Blank - Бюро разработчиков Zhyk.Ru: создание чит-программ и прочего ПО для Point Blank |
20.08.2012, 17:45
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 28.04.2012
 Сообщений: 5
 Популярность: -168
 Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 3 сообщениях
|
Создаем адрес сканер для Пб
Всем привет!
Я хотел бы вам рассказать о том,как создать свой адрес сканер для пб!
Начнем!
Создаем проект .dll
Создаем заголовочные файлы:
Data.h
Functions.h
Создаем файлы исходного кода:
DllMain.cpp
В DllMain.cpp вписываем
Код:
#include "Functions.h"
#include "Data.h"
//#include "License.h"
using namespace std;
//By Boomber™ for zhyk.ru
typedef HRESULT (WINAPI* oEndScene) ( LPDIRECT3DDEVICE9 MegoFrost);
oEndScene pEndScene;
HRESULT WINAPI EndScene (LPDIRECT3DDEVICE9 MegoFrost)
{
_asm pushad;
_asm popad;
return pEndScene(MegoFrost);
}
typedef HRESULT (WINAPI* oFrostNab)(LPDIRECT3DDEVICE9 Frost, D3DPRESENT_PARAMETERS* pPresentationParameters);
typedef HRESULT (WINAPI* oEndScene)(LPDIRECT3DDEVICE9 Frost);
typedef HRESULT (WINAPI* oDrawIndexedPrimitive)(LPDIRECT3DDEVICE9 Frost, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount);
oFrostNab pFrostNab;
//oEndScene pEndScene;
oDrawIndexedPrimitive pDrawIndexedPrimitive;
HRESULT WINAPI FrostNab(LPDIRECT3DDEVICE9 Frost,D3DPRESENT_PARAMETERS* pPresentationParameters)
{
return pFrostNab(Frost,pPresentationParameters);
}
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 Frost, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount)
{
return pDrawIndexedPrimitive(Frost, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
}
BOOL HookFrost(void)//хукаем фрост
{
DWORD* vtbl=0;
DWORD hD3D9=(DWORD)LoadLibraryA("d3d9.dll");
DWORD table=FindPattern(hD3D9,0x128000,(PBYTE)"\xC7\x06\x00\x00\x00\x00\
x89\x86\x00\x00\x00\x00\x89\x86","xx????xx????xx");
memcpy(&vtbl,(void *)(table+2),4);
pFrostNab=(oFrostNab)DetourCreate((PBYTE)vtbl[16],(PBYTE)FrostNab,5);
pEndScene=(oEndScene)DetourCreate((PBYTE)vtbl[42],(PBYTE)EndScene,5);
pDrawIndexedPrimitive=(oDrawIndexedPrimitive)DetourCreate((PBYTE)vtbl[82],(PBYTE)myDrawIndexedPrimitive,
5);
return FALSE;
}
VOID StartHookFrost()//хукаем фрост
{
while(1)
{
if(GetAsyncKeyState(VK_HOME)&1)
{
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)HookFrost, NULL, NULL, NULL);
goto end;
}
}
end:return;
}
BOOL WINAPI DllMain(HMODULE hDll, DWORD dwReason, LPVOID lpReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
if(GetModuleHandleW(L"PointBlank.exe.exe"))
{
HideModule(hDll);
CreateThread(0,0,(LPTHREAD_START_ROUTINE)StartHookFrost,0,0,0);
Hack.killFrost();//вызов метода убийства фроста
//License();//проверка лицензии
remove("C:\\Signature_Finder.txt");
FILE * a=fopen("C:\\Signature_Finder.txt","w");
//вывод в текстовик
fprintf(a,"показ хп за 1 команду 0x");
fprintf(a,"%x",Hack.HP1);
fprintf(a,"\n");
fprintf(a,"показ хп за 2 команду 0x");
fprintf(a,"%x",Hack.HP2);
fprintf(a,"\n");
fprintf(a,"анлим патроны 0x");
fprintf(a,"%x",Hack.MaxBull);
fprintf(a,"\n");
fprintf(a,"телепорт ");
fprintf(a,"%x",Hack.Speed);
fprintf(a,"\n");
fprintf(a,"антиотдача1 0x");
fprintf(a,"%x",Hack.Antiotd1);
fprintf(a,"\n");
fprintf(a,"антиотдача2 0x");
fprintf(a,"%x",Hack.Antiotd2);
fprintf(a,"\n");
fprintf(a,"точность 0x");
fprintf(a,"%x",Hack.tochnost);
fprintf(a,"\n");
fprintf(a,"длинный нож 0x");//9B включение FC выключение
fprintf(a,"%x",Hack.dn);
fprintf(a,"\n");
fprintf(a,"антиурон 0x");
fprintf(a,"%x",Hack.Antidamage);
fprintf(a,"\n");
fprintf(a,"быстрый респ1 0x");
fprintf(a,"%x",Hack.fastresp1);
fprintf(a,"\n");
fprintf(a,"быстрый респ2 0x");
fprintf(a,"%x",Hack.fastresp2);
fprintf(a,"\n");
fprintf(a,"скорострел 0x");
fprintf(a,"%x",Hack.skorostrel);
fprintf(a,"\n");
fprintf(a,"антимигание1 0x");
fprintf(a,"%x",Hack.antimig1);
fprintf(a,"\n");
fprintf(a,"антимигание2 0x");
fprintf(a,"%x",Hack.antimig2);
fprintf(a,"\n");
fprintf(a,"антимигание3 0x");
fprintf(a,"%x",Hack.antimig3);
fprintf(a,"\n");
fprintf(a,"мгновенная перезарядка 0x");//писать F5 для включения, F4 для отключения
fprintf(a,"%x",Hack.reload);
fprintf(a,"\n");
fprintf(a,"прыжок в воздухе1 0x");
fprintf(a,"%x",Hack.jump1);
fprintf(a,"\n");
fprintf(a,"прыжок в воздухе2 0x");
fprintf(a,"%x",Hack.jump2);
fprintf(a,"\n");
fprintf(a,"прыжок в воздухе3 0x");
fprintf(a,"%x",Hack.jump3);
fprintf(a,"\n");
fprintf(a,"зумхак 0x");
fprintf(a,"%x",Hack.zoom);
fprintf(a,"\n");
fprintf(a,"урон 0x");//03 включение fc выключение
fprintf(a,"%x",Hack.damage);
fprintf(a,"\n");
fprintf(a,"радиус взрыва 0x");//[ebp-79]
fprintf(a,"%x",Hack.grena);
fprintf(a,"\n");
fprintf(a,"управляемый взрыв 0x");
fprintf(a,"%x",Hack.boom);
fprintf(a,"\n");
fprintf(a,"координаты взрыва 0x");
fprintf(a,"%x",Hack.coord_boom);
fprintf(a,"\n");
fprintf(a,"подъем оружия на расстоянии 0x");
fprintf(a,"%x",Hack.lift);
fprintf(a,"\n");
fprintf(a,"ВК вкл. 0x");
fprintf(a,"%x",Hack.VK_SWITCH_ON);
fprintf(a,"\n");
fprintf(a,"ВК Основное и песты. 0x");
fprintf(a,"%x",Hack.VK_PEST);
fprintf(a,"\n");
fprintf(a,"ВК ножи. 0x");
fprintf(a,"%x",Hack.VK_KNIFE);
fprintf(a,"\n");
fprintf(a,"ВК гранаты. 0x");
fprintf(a,"%x",Hack.VK_GRENADE);
fprintf(a,"\n");
fprintf(a,"ВК дополнительное. 0x");
fprintf(a,"%x",Hack.VK_SPEC);
fprintf(a,"\n");
fprintf(a,"Антикик 0x");
fprintf(a,"%x",Hack.kik);
fprintf(a,"\n");
fclose(a);
MessageBoxA(0,"Сканер запущен","http://zhyk.ru™",64);
system("C:\\Signature_Finder.txt");
ExitProcess(0);
}
}
return TRUE;
}
Теперь перейдем к Data.h,вписываем в него:
Код:
class Gamehack
{
public:
VOID killFrost()
{
if(GetModuleHandleW(L"frostcollector.dll"))
{
DWORD frostadr = (DWORD)GetProcAddress(GetModuleHandleW(L"frostcollector.dll"),"frostFunc"); //убийство фроста
DWORD retfrostfunc = frostadr +0x163;
for(int i=frostadr;i<retfrostfunc;i++) { MEMwrite((void *)(i),(void *)"\x90",1);}
}
}
DWORD MaxBull;
DWORD Speed;
DWORD HP1;
DWORD HP2;
DWORD Antiotd1;
DWORD Antiotd2;
DWORD tochnost;
DWORD Antidamage;
DWORD fastresp1;
DWORD fastresp2;
DWORD skorostrel;
DWORD antimig1;
DWORD antimig2;
DWORD antimig3;
DWORD reload;//F5 для включениe, F4 отключение
DWORD jump1;
DWORD jump2;
DWORD jump3;
DWORD zoom;
DWORD damage;//03 включение fc выключение
DWORD grena;//87 включение fc выключение
DWORD boom;//87 включение fc выключение
DWORD lift;
DWORD VK_KNIFE;
DWORD VK_GRENADE;
DWORD VK_PEST;
DWORD VK_SPEC;
DWORD VK_SWITCH_ON;
DWORD kik;
DWORD dn;//9B включение FC выключение
DWORD coord_boom;//90 включение F8 выключение
Gamehack()//конкуструктор класса.
{
MaxBull = FindPattern(0x401000,0x4c8000,(PBYTE)"\x8B\x45\xFC\x5E\x8B\xE5\x5D\xC3\x55\x8B\xEC\x83\xEC\x34\x89\x4D\xCC\x8B\x45\xCC\x8B\x88\x00\x00\x00\x00\x89\x4D\xF8\x83\x7D\xF8\x00\x75\x2A\x6A\x00\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\x6A\x00\xFF\x15\x00\x00\x00\x00\x83\xC4\x10\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\xFF\x15\x00\x00\x00\x00\x83\xC4\x08","xxxxxxxxxxxxxxxxxxxxxx????xxxxxxxxxxxx????x????xxxx????xxxx????x????xx????xxx");
Speed = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xF8\x8B\xE5\x5D\
xC2\x04\x00\x8B\xFF\xD5\xF4\x62\x00\xE2\xF4\x62\
x00\xEF\xF4\x62\x00\xFC\xF4","xxxxxxxxxxxxxxxxxxxxxxxxx");
HP1 = FindPattern(0x401000,0x4c8000,(PBYTE)"\x0F\x84\x00\x00\x00\x00\
x8B\x85\x00\x00\x00\x00\x8B\x48\x10\xE8\x00\x00\
x00\x00\x50\x8B\x8D\x00\x00\x00\x00\x8B\x49\x10\
xE8\x00\x00\x00\x00\x50\x8B\x0D\x00\x00\x00\x00\
xE8\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\x68\
x00\x00\x00\x00","xx????xx????xxxx????xxx????xxxx????xxx????x????xx????x????"
);
HP2 = FindPattern(0x401000,0x4c8000,(PBYTE)"\x0F\x85\x00\x00\x00\x00\
x8D\x4D\x93\x89\x4D\x94\x6A\x00\x6A\x00\x8D\x4D\
xB8\xE8\x00\x00\x00\x00\xC7\x85\x00\x00\x00\x00\
x00\x00\x00\x00\x8B\x95\x00\x00\x00\x00\x83\xC2\
x01\x89\x95\x00\x00\x00\x00\x8B\x85\x00\x00\x00\
x00\x8A\x08\x88\x8D\x57\xFF\xFF\xFF\x83\x85\x5C\
xFF\xFF\xFF\x01\x80\xBD\x57\xFF\xFF\xFF\x00\x75\
xE2\x8B\x95\x00\x00\x00\x00\x2B\x95\x00\x00\x00\
x00\x89\x95\x00\x00\x00\x00\x8B\x85\x00\x00\x00\
x00\x50\x68\x00\x00\x00\x00","xx????xxxxxxxxxxxxxx????xx????????xx????xxxxx????xx????xxxxxxxxxxxxxxxxxxxxxxxxxx????xx????xx????xx????xx????");
Antiotd1= FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xF8\x8B\xE5\x5D\
xC3\xCC\xCC\xCC\xCC\xCC\x55\x8B\xEC\x83\xEC\x2C\
x89\x4D\xD4\xF3\x0F\x10\x05\x00\x00\x00\x00\xF3\
x0F\x11\x45\xF8\x8B\x45\xD4\x8B\x88\x00\x00\x00\
x00\x8B\x55\xD4\x8B\x82\x00\x00\x00\x00\x8B\x11\
x8B\xC8\x8B\x82\x00\x00\x00\x00\xFF\xD0\xD9\x5D\
xFC","xxxxxxxxxxxxxxxxxxxxxxxxx????xxxxxxxxxx????xxxxx????xxxxxx????xxxxx");
Antiotd2 = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xF8\x8B\xE5\x5D\
xC3\xCC\xCC\xCC\xCC\xCC\x55\x8B\xEC\x83\xEC\x18\
x89\x4D\xE8\xF3\x0F\x10\x05\x00\x00\x00\x00\xF3\
x0F\x11\x45\xFC\x8B\x45\xE8\x8B\x88\x00\x00\x00\
x00\x8B\x55\xE8\x8B\x82\x00\x00\x00\x00\x8B\x11\
x8B\xC8\x8B\x82\x00\x00\x00\x00\xFF\xD0","xxxxxxxxxxxxxxxxxxxxxxxxx????xxxxxxxxxx????xxxxx????xxxxxx????xx");
tochnost = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xFC\x8B\xE5\x5D\
xC3\xCC\xCC\xCC\xCC\x55\x8B\xEC\x83\xEC\x28\x89\
x4D\xDC\x8B\x45\xDC\x8B\x88\x00\x00\x00\x00\x89\
x4D\xF4\x83\x7D\xF4\x00\x74\x4E\x8B\x55\xDC\x8B\
x82\x00\x00\x00\x00\x89\x45\xF0\x8B\x4D\xF0\x8B\
x91\x00\x00\x00\x00\x89\x55\xEC\x8B\x45\xEC\x8B\
x88\x00\x00\x00\x00\x89\x4D\xE8\x83\x7D\xE8\x01\
x75\x24","xxxxxxxxxxxxxxxxxxxxxxxxx????xxxxxxxxxxxxxx????xxxxxxxx????xxxxxxxx????xxxxxxxxx"
);
Antidamage = FindPattern(0x401000,0x4c8000,(PBYTE)"\x8B\x45\xFC\x8B\xE5\x5D\
xC2\x04\x00\xCC\xCC\xCC\xCC\xCC\x55\x8B\xEC\x83\
xEC\x44\x89\x4D\xBC\x8D\x45\xF4\x50\x8B\x4D\xBC\
x8B\x89\x00\x00\x00\x00\xFF\x15\x00\x00\x00\x00\
xD9\x45\xF4","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx????xx????xxx");
fastresp1 = FindPattern(0x401000,0x4c8000,(PBYTE)"\xF3\x0F\x10\x45\xE8\xF3\
x0F\x11\x45\xC0\x8B\x55\xC4\xF3\x0F\x10\x45\xC0\
xF3\x0F\x11\x82\x00\x00\x00\x00\xA1\x00\x00\x00\
x00\x8B\x88\x00\x00\x00\x00\x89\x4D\xBC\xF3\x0F\
x10\x45\xEC\xF3\x0F\x11\x45\xB8\x8B\x55\xBC\xF3\
x0F\x10\x45\xB8\xF3\x0F\x11\x82\x00\x00\x00\x00\
xF3\x0F\x10\x05\x00\x00\x00\x00\xF3\x0F\x11\x45\
xE8\xF3\x0F\x10\x05\x00\x00\x00\x00\xF3\x0F\x11\
x45\xEC","xxxxxxxxxxxxxxxxxxxxxx????x????xx????xxxxxxxxxxxxxxxxxxxxxxxxx????xxxx????xxxxxxxxx????xxxxx");
fastresp2 = FindPattern(0x401000,0x4c8000,(PBYTE)"\xF3\x0F\x10\x45\xEC\xF3\
x0F\x11\x45\xB8\x8B\x55\xBC\xF3\x0F\x10\x45\xB8\
xF3\x0F\x11\x82\x00\x00\x00\x00\xF3\x0F\x10\x05\
x00\x00\x00\x00\xF3\x0F\x11\x45\xE8\xF3\x0F\x10\
x05\x00\x00\x00\x00\xF3\x0F\x11\x45\xEC\x8D\x45\
xE8\x50\x68\x00\x00\x00\x00\x8B\x4D\xF8\x51\xFF\
x15\x00\x00\x00\x00\x83\xC4\x0C\x8D\x55\xEC\x52\
x68\x00\x00\x00\x00","xxxxxxxxxxxxxxxxxxxxxx????xxxx????xxxxxxxxx????xxxxxxxxxx????xxxxxx????xxxxxxxx????");
skorostrel = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xFC\x8B\xE5\x5D\
xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x55\
x8B\xEC\x83\xEC\x14\x89\x4D\xEC\x8B\x45\xEC\x8B\
x88\x00\x00\x00\x00\xE8\x00\x00\x00\x00\xD9\x5D\
xFC\x8B\x4D\xEC","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx????x????xxxxxx");
antimig1 = FindPattern(0x401000,0x4c8000,(PBYTE)"\x0F\x10\x45\xE8\xF3\x0F\
x11\x45\xB0\x8B\x45\xB4\xF3\x0F\x10\x45\xB0\xF3\
x0F\x11\x80\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\
x00\x8B\x91\x00\x00\x00\x00\x89\x55\xAC\xF3\x0F\
x10\x45\xEC\xF3\x0F\x11\x45\xA8\x8B\x45\xAC\xF3\
x0F\x10\x45\xA8\xF3\x0F\x11\x80\x00\x00\x00\x00\
x8B\xE5\x5D\xC3","xxxxxxxxxxxxxxxxxxxxx????xx????xx????xxxxxxxxxxxxxxxxxxxxxxxxx????xxxx");
antimig2 = FindPattern(0x401000,0x4c8000,(PBYTE)"\xB0\xF3\x0F\x11\x80\x00\
x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x8B\x91\x00\
x00\x00\x00\x89\x55\xAC\xF3\x0F\x10\x45\xEC\xF3\
x0F\x11\x45\xA8\x8B\x45\xAC\xF3\x0F\x10\x45\xA8\
xF3\x0F\x11\x80\x00\x00\x00\x00\x8B\xE5\x5D\xC3\
xCC\xCC\xCC\xCC\xCC\x55\x8B\xEC\x6A\xFF","xxxxx????xx????xx????xxxxxxxxxxxxxxxxxxxxxxxxx????xxxxxxxxxxxxxx");
antimig3 = FindPattern(0x401000,0x4c8000,(PBYTE)"\xEC\xF3\x0F\x11\x45\xA8\
x8B\x45\xAC\xF3\x0F\x10\x45\xA8\xF3\x0F\x11\x80\
x00\x00\x00\x00\x8B\xE5\x5D\xC3\xCC\xCC\xCC\xCC\
xCC","xxxxxxxxxxxxxxxxxx????xxxxxxxxx");
reload = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x5D\xF4\x8B\x4D\x80\
xE8\x00\x00\x00\x00\x0F\xB6\xC8\x85\xC9\x74\x0C\
xD9\x45\xF4\xDC\x0D\x00\x00\x00\x00\xD9\x5D\xF4\
xE9\x00\x00\x00\x00\x8B\x55\x80","xxxxxxx????xxxxxxxxxxxx????xxxx????xxx");
jump1 = FindPattern(0x401000,0x4c8000,(PBYTE)"\x74\x05\xE9\x00\x00\x00\
x00\x8B\x45\xF0\x8B\x88\x00\x00\x00\x00\x89\x4D\
xFC\x8B\x55\xFC\x33\xC0\x83\x7A\x2C\x03\x0F\x94\
xC0\x0F\xB6\xC8\x85\xC9\x74\x05\xE9\x00\x00\x00\
x00","xxx????xxxxx????xxxxxxxxxxxxxxxxxxxxxxx????");
jump2 = FindPattern(0x401000,0x4c8000,(PBYTE)"\x74\x05\xE9\x00\x00\x00\
x00\x8B\x4D\xF0\xE8\x00\x00\x00\x00\x0F\xB6\xD0\
x85\xD2\x74\x6D\x8B\x45\xF0\x8B\x88\x00\x00\x00\
x00\x83\xE1\x04\xF7\xD9\x1B\xC9\xF7\xD9\x0F\xB6\
xD1\x85\xD2","xxx????xxxx????xxxxxxxxxxxx????xxxxxxxxxxxxxx");
jump3 = FindPattern(0x401000,0x4c8000,(PBYTE)"\x75\x2F\x8B\x4D\xF0\x8B\
x91\x00\x00\x00\x00\x89\x55\xF8\x8B\x4D\xF8\xE8\
x00\x00\x00\x00\x0F\xB6\xC0\x85\xC0\x74\x14\x8B\
x4D\xF0\x8B\x91\x00\x00\x00\x00\x89\x55\xF4\x8B\
x4D\xF4\xE8\x00\x00\x00\x00\x8B\xE5\x5D\xC3","xxxxxxx????xxxxxxx????xxxxxxxxxxxx????xxxxxxx????xxxx");
zoom = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xFC\x8B\xE5\x5D\
xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\
xCC\xCC\x55\x8B\xEC\x83\xEC\x10","xxxxxxxxxxxxxxxxxxxxxxxxxx"
);
damage = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xEC\x8B\xE5\x5D\
xC2\x04\x00\x8D\x49\x00\xF8\xFD\x62\x00\x86\xFE"
,"xxxxxxxxxxxxxxxxxx");
grena = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xFC\x8B\xE5\x5D\
xC3\x55\x8B\xEC\x83\xEC\x34\x56\x89\x4D\xCC\x8B\
x45\xCC\x8B\x88\x00\x00\x00\x00\x89\x4D\xF8\x83\
x7D\xF8\x00","xxxxxxxxxxxxxxxxxxxxxx????xxxxxxx");
lift = FindPattern(0x401000,0x4c8000,(PBYTE)"\xD9\x45\xFC\x8B\xE5\x5D\
xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\
xCC\x55\x8B\xEC\x8B\x45\x0C\xD9\x00\x8B\x4D\x10\
xD8\x21\x8B\x55\x08","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
VK_KNIFE=FindPattern(0x401000,0x4c8000,(PBYTE)"\xC7\x41\x00\x00\x00\
x00\x00\x8B\x95\x00\x00\x00\x00\xC7\x42\x00\x00\
x00\x00\x00\x8B\x85\x00\x00\x00\x00\xC7\x40\x00\
x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x89\x8D\
x00\x00\x00\x00\x8B\x8D\x00\x00\x00\x00\xE8\x00\
x00\x00\x00\x89\x85\x00\x00\x00\x00\x8B\x95\x00\
x00\x00\x00\x52","xx?????xx????xx?????xx????xx?????xx????xx????xx????x????xx????xx????x");
VK_GRENADE=FindPattern(0x401000,0x4c8000,(PBYTE)"\xC7\x42\x00\x00\x00\
x00\x00\x8B\x85\x00\x00\x00\x00\xC7\x40\x00\x00\
x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x89\x8D\x00\
x00\x00\x00\x8B\x8D\x00\x00\x00\x00\xE8\x00\x00\
x00\x00\x89\x85\x00\x00\x00\x00\x8B\x95\x00\x00\
x00\x00\x52","xx?????xx????xx?????xx????xx????xx????x????xx????xx????x");
VK_PEST = FindPattern(0x401000,0x4c8000,(PBYTE)"\xC7\x40\x00\x00\x00\x00\
x00\x8B\x8D\x00\x00\x00\x00\xC7\x41\x00\x00\x00\
x00\x00\x8B\x95\x00\x00\x00\x00\xC7\x42\x00\x00\
x00\x00\x00\x8B\x85\x00\x00\x00\x00\xC7\x40\x00\
x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x89\x8D\
x00\x00\x00\x00\x8B\x8D\x00\x00\x00\x00\xE8\x00\
x00\x00\x00\x89\x85\x00\x00\x00\x00\x8B\x95\x00\
x00\x00\x00\x52","xx?????xx????xx?????xx????xx?????xx????xx?????xx????xx????xx????x????xx????xx????x");
VK_SPEC = FindPattern(0x401000,0x4c8000,(PBYTE)"\xC7\x40\x00\x00\x00\x00\
x00\x8B\x0D\x00\x00\x00\x00\x89\x8D\x00\x00\x00\
x00\x8B\x8D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\
x89\x85\x00\x00\x00\x00\x8B\x95\x00\x00\x00\x00\
x52\xE8\x00\x00\x00\x00\x83\xC4\x04\x33\xC9","xx?????xx????xx????xx????x????xx????xx????xx????xxxxx");
VK_SWITCH_ON = FindPattern(0x401000,0x4c8000,(PBYTE)"\x74\x34\x8B\x85\x00\x00\
x00\x00\xC7\x40\x00\x00\x00\x00\x00\x8B\x8D\x00\
x00\x00\x00\xC7\x41\x00\x00\x00\x00\x00\x8B\x95\
x00\x00\x00\x00\xC7\x42\x00\x00\x00\x00\x00\x8B\
x85\x00\x00\x00\x00\xC7\x40\x00\x00\x00\x00\x00\
x8B\x0D\x00\x00\x00\x00\x89\x8D\x00\x00\x00\x00\
x8B\x8D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x89\
x85\x00\x00\x00\x00\x8B\x95\x00\x00\x00\x00\x52\
xE8\x00\x00\x00\x00","xxxx????xx?????xx????xx?????xx????xx?????xx????xx?????xx????xx????xx????x????xx????xx????xx????");
kik = FindPattern(0x401000,0x4c8000,(PBYTE) "\x0F\x85\x00\x00\x00\x00\x8B\x4D\xE4\xC7\
x81\x00\x00\x00\x00\x00\x00\x00\x00\x8B\x15\x00\
x00\x00\x00\x8B\x82\x00\x00\x00\x00\x83\xE0\x08\
x83\xF8\x08\x0F\x94\xC1\x0F\xB6\xD1\x85\xD2\x75\
x3C\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\xE8\
x00\x00\x00\x00","xx????xxxxx????????xx????xx????xxxxxxxxxxxxxxxxx????x????x????");
dn= FindPattern(0x401000,0x4c8000,(PBYTE) "\xD9\x45\xFC\x8B\xE5\x5D\xC3\xCC\xCC\xCC\
xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x55\x8B\
xEC\x83\xEC\x08\x89\x4D\xF8\x8B\x45\xF8\x8B\x88\
x00\x00\x00\x00\x8B\x55\xF8\x8B\x82\x00\x00\x00\
x00\x8B\x11\x8B\xC8\x8B\x82\x00\x00\x00\x00","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx????xxxxx????xxxxxx????");
boom =FindPattern(0x401000,0x4c8000,(PBYTE) "\xD9\x45\xFC\x8B\xE5\x5D\xC3\x55\x8B\xEC\
x83\xEC\x10\x89\x4D\xF0\x8B\x45\xF0\x8B\x88\x00\
x00\x00\x00\x8B\x55\xF0","xxxxxxxxxxxxxxxxxxxxx????xxx");
coord_boom=FindPattern(0x401000,0x4c8000,(PBYTE) "\xD9\x45\xF8\x8B\xE5\x5D\xC3\xCC\xCC\xCC\
xCC\xCC\xCC\x55\x8B\xEC\x83\xEC\x10\x89\x4D\xF0"
,"xxxxxxxxxxxxxxxxxxxxxx");
}
}Hack;//объект Hack типа Gamehack
Вписываем в Functions.h
Код:
#include "windows.h"
#include "stdio.h"
#include <time.h>
#include <d3dx9.h>
#include <iostream>
#include "stdlib.h"
#include <fstream>
BOOL bCompare(const BYTE*pData,const BYTE*bMask,const char*szMask)
{
for(;*szMask;++szMask,++pData,++bMask)
if(*szMask=='x'&&*pData!=*bMask)
return false;
return(*szMask)==NULL;
}
DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE*bMask,char*szMask)//Эта функция позволяет нам по уже заранее известным байтам найти нужный адрес
{
for(DWORD i=0; i < dwLen; i++)
if(bCompare((BYTE*)(dwAddress+i),bMask,szMask))
return(DWORD)(dwAddress+i);
return 0;
}
void MEMwrite(void *adr, void *ptr, int size)
{
DWORD OldProtection;
VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection);
memcpy(adr,ptr,size);
VirtualProtect(adr,size,OldProtection, &OldProtection);
}
void *DetourCreate(BYTE *src, const BYTE *dst, const int len)
{
BYTE *jmp;
DWORD dwback;
DWORD jumpto, newjump;
VirtualProtect(src,len,PAGE_READWRITE,&dwback);
if(src[0] == 0xE9)
{
jmp = (BYTE*)malloc(10);
jumpto = (*(DWORD*)(src+1))+((DWORD)src)+5;
newjump = (jumpto-(DWORD)(jmp+5));
jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = newjump;
jmp += 5;
jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = (DWORD)(src-jmp);
}
else
{
jmp = (BYTE*)malloc(5+len);
memcpy(jmp,src,len);
jmp += len;
jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = (DWORD)(src+len-jmp)-5;
}
src[0] = 0xE9;
*(DWORD*)(src+1) = (DWORD)(dst - src) - 5;
for(int i = 5; i < len; i++)
src[i] = 0x90;
VirtualProtect(src,len,dwback,&dwback);
return (jmp-len);
}
void EraseHeaders(HINSTANCE hModule1)
{
PIMAGE_DOS_HEADER pDoH;
PIMAGE_NT_HEADERS pNtH;
DWORD i, ersize, protect;
if (!hModule1) return;
// well just to make clear what we doing
pDoH = (PIMAGE_DOS_HEADER)(hModule1);
pNtH = (PIMAGE_NT_HEADERS)((LONG)hModule1 + ((PIMAGE_DOS_HEADER)hModule1)->e_lfanew);
ersize = sizeof(IMAGE_DOS_HEADER);
if ( VirtualProtect(pDoH, ersize, PAGE_READWRITE, &protect) )
{
for ( i=0; i < ersize; i++ )
*(BYTE*)((BYTE*)pDoH + i) = 0;
}
ersize = sizeof(IMAGE_NT_HEADERS);
if ( pNtH && VirtualProtect(pNtH, ersize, PAGE_READWRITE, &protect) )
{
for ( i=0; i < ersize; i++ )
*(BYTE*)((BYTE*)pNtH + i) = 0;
}
return;
}
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
typedef struct _ModuleInfoNode
{
LIST_ENTRY LoadOrder;
LIST_ENTRY InitOrder;
LIST_ENTRY MemoryOrder;
HMODULE baseAddress;
unsigned long entryPoint;
unsigned int size;
UNICODE_STRING fullPath;
UNICODE_STRING name;
unsigned long flags;
unsigned short LoadCount;
unsigned short TlsIndex;
LIST_ENTRY HashTable;
unsigned long timestamp;
} ModuleInfoNode, *pModuleInfoNode;
typedef struct _ProcessModuleInfo
{
unsigned int size;
unsigned int initialized;
HANDLE SsHandle;
LIST_ENTRY LoadOrder;
LIST_ENTRY InitOrder;
LIST_ENTRY MemoryOrder;
} ProcessModuleInfo, *pProcessModuleInfo;
#define UNLINK(x) (x).Blink->Flink = (x).Flink; \
(x).Flink->Blink = (x).Blink;
int HideModule( HMODULE hMod )
{
ProcessModuleInfo *pmInfo;
ModuleInfoNode *module;
_asm
{
mov eax, fs:[18h] // TEB
mov eax, [eax + 30h] // PEB
mov eax, [eax + 0Ch] // PROCESS_MODULE_INFO
mov pmInfo, eax
}
module = (ModuleInfoNode *)(pmInfo->LoadOrder.Flink);
while(module->baseAddress && module->baseAddress != hMod){
module = (ModuleInfoNode *)(module->LoadOrder.Flink);}
if(!module->baseAddress){
return 0;}
UNLINK(module->LoadOrder);
UNLINK(module->InitOrder);
UNLINK(module->MemoryOrder);
UNLINK(module->HashTable);
memset(module->fullPath.Buffer, 0, module->fullPath.Length);
memset(module, 0, sizeof(ModuleInfoNode));
return 1;
}
Ну вот и все,в принципе наш сканер готов,но в чем загвоздка  ?
А загвоздка тут:
Нужно обновить паттерн для правильности поиска адресов  
И еще один сюрпрайз))
Добавляем привязку для большей крутости 
Создаем License.h и пишем в него
Код:
VOID License()//привязка
{
//==============Лицензия================
DWORD FreeBytesAvailable;
DWORD TotalNumberOfBytes;
DWORD TotalNumberOfFreeBytes;
BOOL GetDiskFreeSpaceFlag = GetDiskFreeSpaceExA("c:\\",(PULARGE_INTEGER)&FreeBytesAvailable,(PULARGE_INTEGER)&
TotalNumberOfBytes,(PULARGE_INTEGER)&TotalNumberOfFreeBytes);
char NameBuffer[100];
char FileBuffer[100];
LPDWORD sz,fs;
DWORD drive_sn;
GetVolumeInformationA(NULL,NameBuffer,100,&drive_sn,sz,fs,FileBuffer,100);
DWORD INFO_DICK = drive_sn+ TotalNumberOfBytes+GetSystemMetrics(0);
const DWORD Keys[100] = {123,1682744229,0xee3df256,
0xee3df255,//пример ключа
for (int i = 0;i<100;i++)
{
if(Keys[i]==INFO_DICK)
{
return;
}
}
char text[60];
sprintf(text,"Ключ : %x\nSkype автора:",INFO_DICK);
MessageBoxA(0,text,"DLL не активирована!",MB_ICONHAND);
ExitProcess(0);
}
В исходнике уберите "//" возле того,что отвечает за лицуху 
Пробуйте)
ПыСы.Сорри за оформление,делал на скорую руку.
Последний раз редактировалось Boomber™; 20.08.2012 в 17:47.
|
|
|
Пользователь сказал cпасибо:
|
|
20.08.2012, 18:14
|
#2
|
|
|
|
Старший сержант
|
 Регистрация: 18.02.2011
 Сообщений: 232
 Популярность: 8824
 Сказал(а) спасибо: 43
Поблагодарили 801 раз(а) в 240 сообщениях
|
Re: Создаем адрес сканер для Пб
а зачем тут хукать директ?
|
|
|
20.08.2012, 18:18
|
#3
|
|
|
|
Пехотинец
|
 Регистрация: 26.05.2010
 Сообщений: 89
 Популярность: 3087
 Сказал(а) спасибо: 3
Поблагодарили 666 раз(а) в 268 сообщениях
|
Re: Создаем адрес сканер для Пб
|
|
|
20.08.2012, 18:25
|
#4
|
|
|
|
Разведчик
|
 Регистрация: 28.04.2012
 Сообщений: 5
 Популярность: -168
 Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 3 сообщениях
|
Re: Создаем адрес сканер для Пб
Оо , тут отписались цари
ПыСы. Славик,дай пожалуйста скуп в лс. Если что,то распространять не буду,ну если ты скажешь мне
ну и так не буду ^^
|
|
|
20.08.2012, 18:35
|
#5
|
|
|
|
Сержант
|
 Регистрация: 12.04.2011
 Сообщений: 142
 Популярность: 3904
 Сказал(а) спасибо: 279
Поблагодарили 361 раз(а) в 174 сообщениях
|
Re: Создаем адрес сканер для Пб
slava-zis,
Спроси у автора этого чуда, похоже он отлично разбирается в С++ 
P.S не знаю зачем это все чудо делать, если у тебя и так будут готовые паттерны...
|
|
|
20.08.2012, 18:37
|
#6
|
|
|
|
Разведчик
|
 Регистрация: 28.04.2012
 Сообщений: 5
 Популярность: -168
 Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 3 сообщениях
|
Re: Создаем адрес сканер для Пб
|
|
|
22.08.2012, 11:08
|
#7
|
|
|
|
Разведчик
|
 Регистрация: 27.07.2012
 Сообщений: 1
 Популярность: -175
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Создаем адрес сканер для Пб
Копипаст. Автор Жуков!
|
|
|
22.08.2012, 13:37
|
#8
|
|
|
|
Разведчик
|
 Регистрация: 22.02.2012
 Сообщений: 49
 Популярность: 2418
 Сказал(а) спасибо: 123
Поблагодарили 79 раз(а) в 56 сообщениях
|
Re: Создаем адрес сканер для Пб
________________
Украина не победима... Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кто имел дело с ring0 пишите в лс...
Последний раз редактировалось smile33; 22.08.2012 в 13:40.
Причина: Добавлено сообщение
|
|
|
22.08.2012, 16:28
|
#9
|
|
|
|
Разведчик
|
 Регистрация: 07.09.2011
 Сообщений: 16
 Популярность: 22
 Сказал(а) спасибо: 4
Поблагодарили 13 раз(а) в 10 сообщениях
|
Re: Создаем адрес сканер для Пб
А если байты адресов функций сменятся ? сканер будит находить адреса?
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
Цитата: |
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
|
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
|
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
22.08.2012, 17:39
|
#10
|
|
|
|
Сержант
|
 Регистрация: 12.04.2011
 Сообщений: 142
 Популярность: 3904
 Сказал(а) спасибо: 279
Поблагодарили 361 раз(а) в 174 сообщениях
|
Re: Создаем адрес сканер для Пб
alex29star,
Кашено нет, он по маске находит, если такой последовательности байтов он не найдет функция выдаст 0
|
|
|
22.08.2012, 17:58
|
#12
|
|
|
|
Сержант
|
 Регистрация: 12.04.2011
 Сообщений: 142
 Популярность: 3904
 Сказал(а) спасибо: 279
Поблагодарили 361 раз(а) в 174 сообщениях
|
Re: Создаем адрес сканер для Пб
alex29star,
Лично у меня паттерн работает ~ 3-5 обнов
|
|
|
24.08.2012, 20:55
|
#13
|
|
|
|
Разведчик
|
 Регистрация: 07.09.2011
 Сообщений: 16
 Популярность: 22
 Сказал(а) спасибо: 4
Поблагодарили 13 раз(а) в 10 сообщениях
|
Re: Создаем адрес сканер для Пб
кстати исходник рабочий, ток байты там рабочие на анлимпатроны ,а остальные надо обновлять
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
Цитата: |
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
|
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
|
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось alex29star; 24.08.2012 в 20:57.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] Сканер чата
|
Half Blood |
Общение и обсуждение Perfect World |
0 |
30.09.2011 10:11 |
Сканер
|
hope18666 |
Боты, скрипты и прочий софт для Aion |
1 |
08.11.2010 19:15 |
гео бот и сканер
|
dead91 |
Общение и обсуждение Perfect World |
3 |
11.09.2010 00:51 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 16:29.
|
 |