Перейти к содержанию

serega11134

Пользователи
  • Постов

    22
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные serega11134

  1. Я почти ничего не понял. Может ты имел ввиду, написать хак самому себе и никому не отдавать? Ну а последнее предложение вообще бред. Смысл чтения? Чтобы хакнуть что-то, нужно это модифицировать. Даже пресловутый ESP, где вроде бы все завязано на чтении координат из памяти - все равно, чтобы всё это отображалось на экране нужна запись в память (в d3d9.lib, чтобы dHook был).

    Или я не понял сути сообщения?

     Ну а последнее предложение вообще бред

     

    Делаеш  d3d окно которое накладывается на игру, играеш в окне  скриншоты чистые сколько не снимай.Все отображается в виртуальном окне а с игры 

    ты только читаеш.

  2. U are quite right. 

    Я не то чтобы не умею их искать... Я это умею делать, но в самой игре стоит какой-то неведомая защита. Ну или... Я не знаю какие еще могут быть варианты.

    Ты сначала покажи что ломаеш СТИМ или просто.

  3. Хотелось бы обратится к администраторам :

     

    Ну не надо опускать всех низко!

    Тут все начинающие

    Хотелось бы привести пример 

     

     

    http://www.unknowncheats.me/forum/

     

    Американцы этого не стесняются !!!!!!!

  4. VAC  как и другой античит не чего не видет  если нет в базе, ИГРАЕМ уже два года . Главное собрать на своем ПК и не давать не кому!!!!!!!! И не внедрятся в процесс а читать из него.

  5.  Надо найти здоровье, через него выйти на базовый адрес Player_Base а дальше через смещения  

     Переход между игроками :  DWORD EntityLoopDistance = 0x10;

     

     Это смещения на адреса ESP:

     DWORD dw_mTeamOffset = 0x1f0;  

     DWORD dw_Health = 0xE0;               
     DWORD dw_Pos = 0x304;
     
    CSS sours !
  6. Примерно так :   

     

     DWORD EntityLoopDistance = 0x10;
     DWORD dw_vMatrix = 0x005A5730; 
     
    //-------------------------------------------//
     DWORD Player_Base = 0x00;              
     DWORD dw_mTeamOffset = 0x1f0;  
     DWORD dw_Health = 0xE0;               
     DWORD dw_Pos = 0x304;   
     DWORD EntityPlayer_Base = 0x00; 
     DWORD dw_angRotation = 0x00;

  7. #include <Windows.h>
    #include <gdiplus.h>
    #include "resource.h"
    #include "Inject.h"

    #include <string>
    #include <fstream>
    #include <iostream>
    using namespace std;

    int a;
    int date;
    char Buf1[255] = "";
    char buf[256] = "Re" ;
    static HWND Edit1;

    #pragma comment (lib, "gdiplus.lib")
    using namespace Gdiplus;
    GdiplusStartupInput gdi;
    ULONG_PTR gdi1;
    char* pName = "";
    char* pName1 = "";

    char* dll_name = "";
    DWORD pID = 0;
    bool isGame = false;
    bool isInjected = false;
    HMODULE hDll;
    #define width 320
    #define height 320
    HINSTANCE hInst;
    static HWND hCombo;
    HRGN hRgn;
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    void OnPaint(HDC hdc)
    {
    Graphics graphics(hdc);
    SolidBrush brush(Color(255, 0, 255, 0));
    SolidBrush brush1(Color(255, 255, 255, 0));
    FontFamily fontFamily(L"Times New Roman");
    Font font(&fontFamily, 14, FontStyleRegular, UnitPixel);
    PointF pointF(10.0f, 20.0f);
    Bitmap* picture = Bitmap::FromResource(GetModuleHandle(NULL), MAKEINTRESOURCEW(101));
    graphics.DrawImage(picture, 0, 0);
    delete [] picture;
    graphics.DrawString(L"Dll Injector!", -1, &font, pointF, &brush);

    if(isGame)
    {
    graphics.DrawString(L"\nИгра найдена", -1, &font, pointF, &brush1);
    }
    else
    {
    graphics.DrawString(L"\nИгра не найдена", -1, &font, pointF, &brush);
    }
    if(isInjected)
    {
    graphics.DrawString(L"\n\n\n\n\nИнжектировано", -1, &font, pointF, &brush1);
    }
    else
    {
    graphics.DrawString(L"\n\n\n\n\nНет Инжекта", -1, &font, pointF, &brush);
    }
    }

    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
    HWND hWnd;
    MSG msg;
    WNDCLASS w;
    memset(&w,0,sizeof(w));
    w.style = NULL;
    w.lpfnWndProc = WndProc;
    w.hIcon = LoadIcon(hInstance, IDI_WARNING);
    w.hInstance = hInstance;
    w.lpszClassName = "C Windows";
    RegisterClass(&w);
    hWnd = CreateWindow("C Windows","Injector", WS_OVERLAPPEDWINDOW
    & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX,
    10, 10, height, width, NULL, NULL, hInstance, NULL);

    GdiplusStartup(&gdi1, &gdi, NULL);
    ShowWindow(hWnd,nCmdShow);
    SetTimer(hWnd, 0, 200, NULL);
    while(GetMessage(&msg,NULL,0,0))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    return msg.wParam;
    }
    LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wparam,LPARAM lparam)
    {
    HDC hdc;
    PAINTSTRUCT ps;
    RECT rect;
    RECT rc;

    HDC hdcMem;
    HBITMAP hbeMem;
    HANDLE hOld;

    if (msg == WM_DESTROY )
    {

    PostQuitMessage(0);
    return 0;
    }
    switch (msg)
    {
    case WM_CREATE:
    CreateWindow("BUTTON", "Open.dll ", WS_CHILD | WS_VISIBLE ,170, 190, 70 , 25,hWnd ,(HMENU) 1, NULL, NULL);
    Edit1 = CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER|ES_MULTILINE, 170, 40, 100, 20, hWnd,(HMENU) Edit1, hInst, NULL);
    //CreateWindow("BUTTON", ".... ", WS_CHILD | WS_VISIBLE ,270, 190, 70 , 25,hWnd ,(HMENU) 2, NULL, NULL);
    hCombo = CreateWindow("combobox", "", WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST|CBS_HASSTRINGS , 10, 190, 150, 350, hWnd, 0, hInst , NULL);



    HANDLE hSnap;
    hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hSnap == NULL)
    {
    MessageBox(NULL,"Process not found", MB_OK, MB_ICONERROR);
    }
    PROCESSENTRY32 proc;
    if (Process32First(hSnap, &proc))
    {
    SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM)proc.szExeFile);

    while (Process32Next(hSnap, &proc))
    {
    SendMessage(hCombo, CB_ADDSTRING, 0, (LPARAM)proc.szExeFile);

    }



    }

    CloseHandle(hSnap);
    break;

    case WM_COMMAND:
    switch (wparam)
    {
    case 1:
    {
    MessageBox(NULL, Buf1 , "Выбрано", MB_OK);
    }

    /*case 2:
    {

    }
    break;*/
    }
    break;
    case WM_SIZE:
    GetWindowRect(hWnd, &rc);
    OffsetRect(&rc, - rc.left, - rc.top);
    DeleteObject(hRgn);
    hRgn = CreateRoundRectRgn(rc.left, rc.top, rc.right, rc.bottom, (rc.right - rc.left) / 20, (rc.bottom - rc.top) / 20);
    SetWindowRgn(hWnd, hRgn, TRUE);
    break;
    case WM_TIMER:




    date = SendMessage(hCombo, CB_GETCURSEL, 0, 0L);
    SendMessage(hCombo, CB_GETLBTEXT, (WPARAM)date, (LPARAM)Buf1);
    GetWindowText(Edit1, buf, 256);

    pName = Buf1 ;

    pName1 = buf ;

    GetClientRect(hWnd, &rect);
    GetProcessByName(pName, &pID);



    if(pID > 0 )
    {
    isGame = true;


    if(!isInjected)
    {



    Inject(pID, dll_path);
    isInjected = true;

    }
    }
    else
    {
    isGame = false;
    isInjected = false;

    }



    InvalidateRect(hWnd, &rect, false);

    break;
    case WM_PAINT:
    {
    hdc = BeginPaint(hWnd, &ps);
    hdcMem = CreateCompatibleDC(hdc);
    hbeMem = CreateCompatibleBitmap(hdc, width, height);
    hOld = SelectObject(hdcMem, hbeMem);
    OnPaint(hdcMem);
    BitBlt(hdc, 0 , 0 , width, height, hdcMem, 0, 0, SRCCOPY); //width, height
    SelectObject(hdcMem, hOld);
    DeleteObject(hbeMem);
    DeleteDC(hdcMem);
    EndPaint(hWnd, &ps);
    }
    break;
    default:
    return DefWindowProc(hWnd, msg, wparam, lparam);
    }

    }

    Пишу инжектор

  8. логер

    //////////////////////////////////////


    #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 EBP
    MOV EBP,ESP
    PUSH [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],EDX
    POP EBP
    RETN 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> //Проверять фаил на наличие dll

    DWORD 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> //Проверять фаил на наличие dll

    DWORD 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);
    }

    }

    }

  9. template <class T> T ReadMemoryAddress(DWORD address)

    {

    static char buffer[1024];

    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, NULL);

    ReadProcessMemory(hProcess, (LPCVOID) address, &buffer, sizeof(buffer), NULL);

    CloseHandle(hProcess);

    return reinterpret_cast<T> (buffer) ;

    }

    bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)

    {

    for(;*szMask;++szMask,++pData,++bMask)

    if(*szMask=='x' && *pData!=*bMask)

    return 0;

    return (*szMask) == NULL;

    }

    DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)

    {

    for(DWORD i=0; i<dwLen; i++)

    if (bCompare(ReadMemoryAddress<BYTE*>(dwAddress + i),bMask,szMask))

    return (DWORD)(dwAddress+i);

    return 0;

    }

    Улучшаем свой первый EXE трейнер на C++ (видео урок #10)

    Coder

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.