Долгими мучениями дизасемблера чужого кода (игрушки) нашел адрес где хранится IDirect3DDevice9 игры щас решил заняться тем что попробовать нарисовать что-то в окне этой игры.. для этого написал dll ....почему-то даже текст не полчучатеся нормально ввести... он ли бо мигает либо искажается как-то и в итоге игра валится с ошибкой IDirect3DDevice9::Present failed делал это так
| Код | void MYinit(); void MYExit(); bool stop=false; IDirect3DDevice9 *myDevicePointer = *(IDirect3DDevice9**)0x06737268; BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH:MYinit();break; case DLL_THREAD_ATTACH:break; case DLL_THREAD_DETACH:break; case DLL_PROCESS_DETACH:MYExit();break; } return TRUE; } DWORD IDThread; void render(); HANDLE HThread; void MYinit() { HThread=CreateThread(NULL, 0 ,(LPTHREAD_START_ROUTINE)render, NULL, NULL, &IDThread); } #define FVF_COLOR (D3DFVF_XYZ | D3DFVF_DIFFUSE) #define FVF_NORMAL_TEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1) struct CUSTOMVERTEX { FLOAT x, y, z; // from the D3DFVF_XYZRHW flag DWORD color; // from the D3DFVF_DIFFUSE flag }; void render() { CUSTOMVERTEX vertices[] = { { 0.0f, 0.5f, 0.3f, D3DCOLOR_XRGB(0, 0, 255), }, { 0.0f, 0.4f, 0.2f, D3DCOLOR_XRGB(0, 255, 0), }, { 0.0f, 0.3f, 0.1f, D3DCOLOR_XRGB(255, 0, 0), }, };
LPD3DXFONT g_Font = NULL; //font object D3DXFONT_DESC FontDesc = {24, 0, 400, 0, false, DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_PITCH, L"Arial"}; RECT FontPosition; FontPosition.top = 330; FontPosition.left = 330; FontPosition.right = 330+640; FontPosition.bottom = 330+480; D3DXCreateFontIndirect(myDevicePointer,&FontDesc,&g_Font); while(!stop) { myDevicePointer->BeginScene(); g_Font->DrawText(NULL, L"Текстик....", -1, &FontPosition, DT_CENTER, 0xffffffff);
myDevicePointer->EndScene(); Sleep(1); } } void MYExit() { stop=true; }
|
|