doc9009 Опубликовано 10 июля, 2013 Поделиться Опубликовано 10 июля, 2013 делаю инжект dll через инжектор winject, а ноль эмоций... по идее должна выскочить консоль с надписью hello, инжектор не ругается говорит мол все нормально.вот исходник, делал по уроку кодера:#include <Windows.h>#include <fcntl.h>#include <stdio.h>#include <io.h>DWORD WINAPI FarCry_thread(LPVOID);BOOL WINAPI Dllmain(HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved){if (fdwReason == DLL_PROCESS_ATTACH){ CreateThread(NULL, NULL, FarCry_thread, NULL, NULL, NULL); return true;}return false;}void CreateConsole(){int hConHandle = 0;HANDLE lStdHandle = 0;FILE *fp = 0;AllocConsole();lStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);hConHandle = _open_osfhandle(PtrToUlong(lStdHandle), _O_TEXT);fp = _fdopen(hConHandle, "w");*stdout = *fp;setvbuf(stdout, NULL, _IONBF, 0);}DWORD WINAPI FarCry_thread(LPVOID){CreateConsole();printf("HELLO!");Sleep(10000);FreeConsole();FreeLibraryAndExitThread(GetModuleHandle("farcry_inject.dll"), 0);} Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 10 июля, 2013 Поделиться Опубликовано 10 июля, 2013 Через СЕ инжектить пробовал? Если нет - попробуй. Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 10 июля, 2013 Автор Поделиться Опубликовано 10 июля, 2013 все равно ноль эмоций... хоть CE и написал, что dll внедрена. странно вообще Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 10 июля, 2013 Поделиться Опубликовано 10 июля, 2013 Пробуй заместо создания потока, вывести мессэдж бокс, тогда и узнаешь есть инжект или нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 10 июля, 2013 Автор Поделиться Опубликовано 10 июля, 2013 по ходу не проходит инжект... пробовал втыкать мессэдж бокс, но при инжекте не вылезло мое сообщение...BOOL WINAPI Dllmain(HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved){if (fdwReason == DLL_PROCESS_ATTACH){ //CreateThread(NULL, NULL, FarCry_thread, NULL, NULL, NULL); MessageBox(NULL, "test", "ds", MB_OK); return true;}return false;}что мне делать, есть советы?far cry у меня издательства от буки 1.04 версия крякнутая... ну думаю на такой старой игре навряли будет какая-либо защита от ижекта Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 10 июля, 2013 Автор Поделиться Опубликовано 10 июля, 2013 блин я уже мозг себе сломал... уже свой инжектор написал с привилегиями дебагера все равно нулевой результат... вот сурс dll http://rghost.ru/47338694 вот сурс инжектора http://rghost.ru/47338840 все писал в 2012 студии. инжектор писал в попыхах так, что не судите строго за косяки типа восстановления обычных прав приложения (debug disable) Ссылка на комментарий Поделиться на другие сайты Поделиться
VDV Опубликовано 10 июля, 2013 Поделиться Опубликовано 10 июля, 2013 блин я уже мозг себе сломал... уже свой инжектор написал с привилегиями дебагера все равно нулевой результат... вот сурс dll http://rghost.ru/47338694 вот сурс инжектора http://rghost.ru/47338840 все писал в 2012 студии. инжектор писал в попыхах так, что не судите строго за косяки типа восстановления обычных прав приложения (debug disable)попробуй инжектор PerX , код кодера уж точно не причем 1000%попробуй этот код кодера тоже:void CreateConsole(){int hConHandle = 0;HANDLE lStdHandle = 0;FILE *fp = 0;AllocConsole();SetConsoleTitle("Reverse_Console");lStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);hConHandle = _open_osfhandle (PtrToUlong(lStdHandle), _O_TEXT);fp = _fdopen(hConHandle , "w");*stdout = *fp;setvbuf(stdout , NULL, _IONBF , 0 );}DWORD WINAPI имя потока (LPVOID){CreateConsole();printf ("блаблабла" );for( ; ; ){}} Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 10 июля, 2013 Автор Поделиться Опубликовано 10 июля, 2013 попробовал все равно не работает хоть расшибись.... вроде все правильно, а выпендриваетсячто-то не то... 100% работающие логгеры d3d тоже не работают на всех играх у меня... а инжекторы всей кучей орут, что все нормально приинжектилось Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 11 июля, 2013 Автор Поделиться Опубликовано 11 июля, 2013 может инжект не проходит потому как у меня на всех pc на которых я проверял стоит win7 x64? Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 11 июля, 2013 Автор Поделиться Опубликовано 11 июля, 2013 блин, уже все перепробовал.... не проходит инжект и все... уже по рихтеру 1 в 1 все делал все равно. Скинь свою тестовую длл и инжектор я попробую, только dll с исходником сами понимаете... как вообще можно понять в чем у меня ошибка? в exe файлах при компиляции можно пошаговую отладку делать, а тут не катит. Ссылка на комментарий Поделиться на другие сайты Поделиться
serega11134 Опубликовано 12 июля, 2013 Поделиться Опубликовано 12 июля, 2013 А другие dll инжектит ? Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 12 июля, 2013 Автор Поделиться Опубликовано 12 июля, 2013 нет, текстурные логгеры, например, тоже не инжектит, ну как пишет, что все заинжектило, а на деле 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
serega11134 Опубликовано 12 июля, 2013 Поделиться Опубликовано 12 июля, 2013 Может программа неизвесная блокирует (антивирус) Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 12 июля, 2013 Автор Поделиться Опубликовано 12 июля, 2013 антивируса вообще нет... уже год без него сижу хД Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 12 июля, 2013 Поделиться Опубликовано 12 июля, 2013 Вижу 2 причины:1) Кривая версия Windows2) Что-то перехватывает инжект Ссылка на комментарий Поделиться на другие сайты Поделиться
serega11134 Опубликовано 12 июля, 2013 Поделиться Опубликовано 12 июля, 2013 Переустанави операционку Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 12 июля, 2013 Автор Поделиться Опубликовано 12 июля, 2013 Вижу 2 причины:1) Кривая версия Windows2) Что-то перехватывает инжект1) винда чистая неделю назад ставил, лицензия windows 7 ult устанавливал с коробки так сказать от майкрософта2) я не знаю, что может там еще перехватывать все повырубал... переустановлю завтра винду расскажу потом, что вышло Ссылка на комментарий Поделиться на другие сайты Поделиться
VDV Опубликовано 13 июля, 2013 Поделиться Опубликовано 13 июля, 2013 1) винда чистая неделю назад ставил, лицензия windows 7 ult устанавливал с коробки так сказать от майкрософта2) я не знаю, что может там еще перехватывать все повырубал... переустановлю завтра винду расскажу потом, что вышлопоставь НЕ лецензию так сказать Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 13 июля, 2013 Автор Поделиться Опубликовано 13 июля, 2013 (изменено) переустановил винду(поставил не лицензию) вот ссылка на этот дистр.[CENSORED] и все равно dll инжектятся, но эффекту ноль, как так? уже на 3 компах проверял тоже самое... окна на всех компах разные стоят Изменено 14 июля, 2013 пользователем Xipho Читай правила форума. На первый раз без преда. Ссылка на комментарий Поделиться на другие сайты Поделиться
serega11134 Опубликовано 13 июля, 2013 Поделиться Опубликовано 13 июля, 2013 (изменено) логер//////////////////////////////////////#include <windows.h>#include <fstream>#include <stdio.h>#include <vector>#include <conio.h>#include <d3d9.h>#include <d3dx9.h>#pragma comment( lib, "d3d9.lib" )#pragma comment( lib, "d3dx9.lib" )#pragma warning( disable : 4996 )using namespace std;//-------------------------------------------------------------------typedef struct _STRIDELOG{INT Base; UINT Min;UINT Num; UINT Start;UINT Prim;}STRIDELOG,*PSTRIDELOG;HRESULT ( WINAPI* oReset )( LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS* );HRESULT ( WINAPI* oEndScene )( LPDIRECT3DDEVICE9 );HRESULT ( WINAPI* oDrawIdP )( LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE,INT, UINT, UINT, UINT, UINT );STRIDELOG StrideLog;vector<STRIDELOG> STRIDE;vector<DWORD> BASETEX;D3DPRESENT_PARAMETERS PrP = {NULL};LPDIRECT3DBASETEXTURE9 BTEX = NULL;LPDIRECT3DDEVICE9 pDev = NULL;LPDIRECT3DTEXTURE9 Green = NULL;LPDIRECT3DTEXTURE9 pTx = NULL;DWORD dCrDev = NULL;LPDIRECT3D9 pDx = NULL;LPD3DXFONT pFont = NULL;D3DVIEWPORT9 Vpt;D3DLOCKED_RECT d3dlr;PDWORD VTab = NULL;DWORD Old = NULL;ofstream ofile;char dlldir[320];char strbuff[260];UINT iStride = 0;UINT iBaseTex = 0;bool Found = false;bool Startlog = false;void __cdecl add_log(const char *fmt, ...);//-------------------------------------------------------------------__declspec( naked )VOID WINAPI CREATEDEVICE( VOID ){__asm{PUSH EBPMOV EBP,ESPPUSH [EBP+0x20]PUSH [EBP+0x1C]PUSH [EBP+0x18]PUSH [EBP+0x14]PUSH [EBP+0x10]PUSH [EBP+0xC]PUSH [EBP+0x8]CALL [dCrDev]MOV EDX,[EBP+0x20]MOV EDX,[EDX]MOV [pDev],EDXPOP EBPRETN 0x1C}}//-------------------------------------------------------------------HRESULT WINAPI nDrawIdP( LPDIRECT3DDEVICE9 pDev, D3DPRIMITIVETYPE Type,INT Base, UINT Min, UINT Num, UINT Start, UINT Prim ){LPDIRECT3DVERTEXBUFFER9 Stream_Data;UINT Offset = 0;UINT Stride = 0;if(pDev->GetStreamSource( 0, &Stream_Data, &Offset, &Stride )==S_OK)Stream_Data->Release();if(Stride == iStride){pDev->GetTexture( 0, &BTEX );Found = false;for( UINT i = 0;i < BASETEX.size();i++ )if( BASETEX[i] == (DWORD)BTEX )Found = true;if( Found == false )BASETEX.push_back( (DWORD)BTEX );if( BASETEX[iBaseTex] == (DWORD)BTEX && Green ){pDev->SetTexture( 0, Green );pDev->SetRenderState( D3DRS_ZENABLE, FALSE );oDrawIdP( pDev, Type, Base, Min, Num, Start, Prim );pDev->SetRenderState( D3DRS_ZENABLE, TRUE );if( Startlog == true ){Found = false;for( UINT i = 0;i < STRIDE.size();i++ )if( STRIDE[i].Base == Base &&STRIDE[i].Min == Min &&STRIDE[i].Num == Num &&STRIDE[i].Start == Start &&STRIDE[i].Prim == Prim ){Found = true;break;}if( Found == false ){StrideLog.Base = Base;StrideLog.Min = Min;StrideLog.Num = Num;StrideLog.Start = Start;StrideLog.Prim = Prim;add_log( "(NumVertices == %i && PrimitiveCount == %i && Stride == %i)",Num, Prim, Stride );STRIDE.push_back( StrideLog );}}}}return oDrawIdP( pDev, Type,Base, Min, Num, Start, Prim );}//-------------------------------------------------------------------HRESULT WINAPI nEndScene( LPDIRECT3DDEVICE9 pDev ){pDev->GetViewport( &Vpt );RECT FRect = { Vpt.Width-250,Vpt.Height-300,Vpt.Width,Vpt.Height };if( Green == NULL )if( pDev->CreateTexture(8, 8, 1, 0, D3DFMT_A8R8G8B8,D3DPOOL_DEFAULT, &Green, NULL) == S_OK)if( pDev->CreateTexture(8, 8, 1, 0, D3DFMT_A8R8G8B8,D3DPOOL_SYSTEMMEM, &pTx, NULL) == S_OK)if( pTx->LockRect( 0, &d3dlr, 0, D3DLOCK_DONOTWAIT |D3DLOCK_NOSYSLOCK ) == S_OK ){for(UINT xy=0; xy < 8*8; xy++)((PDWORD)d3dlr.pBits)[xy] = 0xFF00FF00;pTx->UnlockRect( 0 );pDev->UpdateTexture( pTx, Green );pTx->Release();}if( pFont == NULL )D3DXCreateFontA( pDev, 16, 0, 700, 0, 0, 1, 0,0, DEFAULT_PITCH | FF_DONTCARE, "Calibri", &pFont );sprintf( strbuff, "Num of Textures: %i\nStride: %i\nBase Tex Num: %i\n\nSTRIDE LOGGER V1\n\n" \"Log Enable: %i\n\nNUM1: Stride++\nNUM2: Stride--\nNUM3: BaseTexNum++" \"\nNUM4: BaseTexNum--\nNUM0: Log On/Off", \BASETEX.size(), iStride, iBaseTex + 1, Startlog );if( pFont )pFont->DrawTextA( 0, strbuff, -1, &FRect,DT_CENTER|DT_NOCLIP, 0xFF00FF00);if( GetAsyncKeyState( VK_NUMPAD1 ) &1 ){iStride++;BASETEX.clear();iBaseTex = 0;}if( GetAsyncKeyState( VK_NUMPAD2 ) &1 )if( iStride > 0 ){iStride--;BASETEX.clear();iBaseTex = 0;};if( GetAsyncKeyState( VK_NUMPAD3 ) &1 )if(iBaseTex < BASETEX.size() - 1)iBaseTex++;if( GetAsyncKeyState( VK_NUMPAD4 ) &1 )if( iBaseTex > 0 )iBaseTex--;if( GetAsyncKeyState( VK_NUMPAD0 ) &1 ){Startlog = !Startlog;STRIDE.clear();}return oEndScene( pDev );}//-------------------------------------------------------------------HRESULT WINAPI nReset( LPDIRECT3DDEVICE9 pDev,D3DPRESENT_PARAMETERS* PresP ){if( pFont ) {pFont->Release();pFont = NULL;}if( Green ) {Green->Release();Green = NULL;}return oReset( pDev, PresP );}//-------------------------------------------------------------------VOID WINAPI THREAD( ){while( pDev == NULL )Sleep( 100 );VTab[16] = dCrDev;VirtualProtect( (PVOID)&VTab[16], 4, Old, &Old );VTab = (PDWORD)*(PDWORD)pDev;*(PDWORD)&oEndScene = VTab[42];*(PDWORD)&oReset = VTab[16];*(PDWORD)&oDrawIdP = VTab[82];while( 1 ){VTab[42] = (DWORD)nEndScene;VTab[16] = (DWORD)nReset;VTab[82] = (DWORD)nDrawIdP;Sleep( 100 );}}//-------------------------------------------------------------------void __cdecl add_log (const char *fmt, ...){if(ofile != NULL){if(!fmt) { return; }va_list va_alist;char logbuf[256] = {0};va_start (va_alist, fmt);_vsnprintf (logbuf+strlen(logbuf),sizeof(logbuf) - strlen(logbuf), fmt, va_alist);va_end (va_alist);ofile << logbuf << endl;}}//-------------------------------------------------------------------BOOL WINAPI DllMain( HMODULE hModule,DWORD dwReason, LPVOID lpReserved ){if( dwReason == DLL_PROCESS_ATTACH ){DisableThreadLibraryCalls( hModule );GetModuleFileNameA( hModule, dlldir, 320 );dlldir[strlen(dlldir)-3] = 0;strcat(dlldir,"txt");ofile.open(dlldir, ios::app);add_log("\nxDD Log");pDx = Direct3DCreate9( D3D_SDK_VERSION );if( pDx != NULL ){VTab = (PDWORD)*(PDWORD)pDx;pDx->Release();dCrDev = (DWORD)VTab[16];VirtualProtect( (PVOID)&VTab[16], 4, 0x40, &Old );VTab[16] = (DWORD)CREATEDEVICE;CreateThread( NULL, NULL, (LPTHREAD_START_ROUTINE)THREAD, NULL, NULL, NULL );}}return TRUE;}инжектор///////////////////////////////////////////#include <Windows.h> // Windows API#include <TlHelp32.h> //Связано с процессами#include <iostream> // Для вывода консоли#include <io.h> //Проверять фаил на наличие dllDWORD GetProcessByName(char * process_name){HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);PROCESSENTRY32 process;DWORD proc_id = 0;if(Process32First(snapshot, &process)){while (Process32Next(snapshot, &process)){if(_stricmp(process.szExeFile, process_name) == 0){proc_id = process.th32ProcessID;break;}}}CloseHandle(snapshot);return proc_id;}bool FileExist(char * name){return _access(name, 0) != -1;}bool Inject(DWORD pID, char * path){HANDLE proc_handle;LPVOID RemoteString;LPVOID LoadLibAddy;if(pID == 0)return false;proc_handle = OpenProcess(PROCESS_ALL_ACCESS ,false, pID);if (proc_handle == 0)return false;LoadLibAddy = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");RemoteString = VirtualAllocEx(proc_handle, NULL, strlen(path), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);WriteProcessMemory(proc_handle, RemoteString, path, strlen(path), NULL);CreateRemoteThread(proc_handle, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddy, RemoteString, NULL, NULL);CloseHandle(proc_handle);return true;}int main(){printf("-------------------------------CONSOLE INJECTOR---------------------------------\n" );//**************************************************************************************************char dll_name[32];char path[256];while (FileExist(path) == 0 ){printf("Enter dll name : " );scanf("%s", dll_name);GetFullPathName(dll_name, sizeof(path), path, 0);if(FileExist(path)){printf("dll found \n ");//break;}else{printf("dll not found \n ");}//***************************************************************************************************char process_name[32];printf("Enter Process Name : " );scanf("%s", process_name);DWORD pID = GetProcessByName(process_name);printf("Waiting %s for start ...... \n", process_name);for(;;Sleep(50)){if(pID == 0)pID = GetProcessByName(process_name);if(pID != 0) break;}printf("%s Process found (pid %X)! \n" , process_name , pID);//*****************************************************************************************************printf("Preparing dll for injection \n");if(Inject(pID, path)){printf("dll successfully injected !!!!!!!! \n" );system("PAUSE");}else{printf("CRITICAL ERROR ???????? \n" );Sleep(500);}}}#include <Windows.h> // Windows API#include <TlHelp32.h> //Связано с процессами#include <iostream> // Для вывода консоли#include <io.h> //Проверять фаил на наличие dllDWORD GetProcessByName(char * process_name){HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);PROCESSENTRY32 process;DWORD proc_id = 0;if(Process32First(snapshot, &process)){while (Process32Next(snapshot, &process)){if(_stricmp(process.szExeFile, process_name) == 0){proc_id = process.th32ProcessID;break;}}}CloseHandle(snapshot);return proc_id;}bool FileExist(char * name){return _access(name, 0) != -1;}bool Inject(DWORD pID, char * path){HANDLE proc_handle;LPVOID RemoteString;LPVOID LoadLibAddy;if(pID == 0)return false;proc_handle = OpenProcess(PROCESS_ALL_ACCESS ,false, pID);if (proc_handle == 0)return false;LoadLibAddy = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");RemoteString = VirtualAllocEx(proc_handle, NULL, strlen(path), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);WriteProcessMemory(proc_handle, RemoteString, path, strlen(path), NULL);CreateRemoteThread(proc_handle, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddy, RemoteString, NULL, NULL);CloseHandle(proc_handle);return true;}int main(){printf("-------------------------------CONSOLE INJECTOR---------------------------------\n" );//**************************************************************************************************char dll_name[32];char path[256];while (FileExist(path) == 0 ){printf("Enter dll name : " );scanf("%s", dll_name);GetFullPathName(dll_name, sizeof(path), path, 0);if(FileExist(path)){printf("dll found \n ");//break;}else{printf("dll not found \n ");}//***************************************************************************************************char process_name[32];printf("Enter Process Name : " );scanf("%s", process_name);DWORD pID = GetProcessByName(process_name);printf("Waiting %s for start ...... \n", process_name);for(;;Sleep(50)){if(pID == 0)pID = GetProcessByName(process_name);if(pID != 0) break;}printf("%s Process found (pid %X)! \n" , process_name , pID);//*****************************************************************************************************printf("Preparing dll for injection \n");if(Inject(pID, path)){printf("dll successfully injected !!!!!!!! \n" );system("PAUSE");}else{printf("CRITICAL ERROR ???????? \n" );Sleep(500);}}} Изменено 13 июля, 2013 пользователем Coder Код нужно пихать под спойлер и в тэг CODE Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 13 июля, 2013 Автор Поделиться Опубликовано 13 июля, 2013 все проблема решена неожиданным способом... Решил видео записать, где собирался показать как у меня ничего не работает и тут заработало! Дело было я думаю в косячной 2012 студии, после ее обновления сразу все нормально стало. Вот видос рас уже записал.http://youtu.be/GqNFqWztz2A Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 Наверное плохо что ссылку кинул на трекер .Вот студия 2012 не рекомендую так как она очень сырая пока что, пользуйся 2010. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 Какая еще сырая? У меня 2012 студия прекрасно работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 у меня вывод только один, все нормально стало только после установки 3-го обновления на студию... лично мое мнение, да 2012 хороша тем, что код наглядней выглядит, подсказки сделали более лучше, но факт есть факт я убил 4 дня думая над тем, что же у меня такое, а проблема оказалась там, где я её не ожидал... Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 Наверное плохо что ссылку кинул на трекер .Вот студия 2012 не рекомендую так как она очень сырая пока что, пользуйся 2010.Действительно, что за бред?2012-я релизный продукт, и она исправно работает с самого первого релиза. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения