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

ARM4ND0

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

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

  • Посещение

  • Победитель дней

    32

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

  1. Там же все либы стандартные (за исключением детурс), в чём проблема пустой проект создать и сорец в него засунуть?

    Копи-пастишь код, добавляешь нужные библиотеки(DirectX9 & Detours) и все. :sleep:

    Я тебе исходник дал, от тебя требуется только включить нужные либы в "твой" проект и компилировать.

  2. Автор - Strife


    #pragma comment (lib, "d3dx9.lib")
    #pragma comment (lib, "d3d9.lib")
    #include <Windows.h>
    #include <d3d9.h>
    #include <d3dx9.h>
    #include <iostream>
    #include <fstream>
    #include <detours.h>
    using namespace std;
    #define HOOK(func,addy) o##func = (t##func)DetourFunction((PBYTE)addy,(PBYTE)hk##func)
    #define STRIDE 0
    #define NUMVERTS 1
    #define PRIMCOUNT 2
    #define STARTINDEX 3
    #define LOGVALUES 4
    #define ES 0
    #define DIP 1
    #define SSS 2
    void Log(char* fmt, ...);
    void ModelRecLoggerMenu();
    struct ModelRecLogger_t
    {
    char* type;
    int value;
    bool isLogging;
    };
    ModelRecLogger_t model[5] = {
    {"Stride:", 0, false},
    {"NumVert:", 0, false},
    {"PrimCount:", 0, false},
    {"StartIndex:", 0, false},
    {"LOG ALL VALUES", 0, false}
    };
    unsigned int g_uiTimer = NULL;
    unsigned int g_uiStride = NULL;
    LPD3DXFONT g_pFont = NULL;
    LPD3DXLINE g_pLine = NULL;
    D3DVIEWPORT9 g_ViewPort;
    LPDIRECT3DTEXTURE9 g_pTexRed = NULL;
    LPDIRECT3DTEXTURE9 g_pTexOrange = NULL;
    const BYTE red[ 58 ] = {
    0x42, 0x4D, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00,
    0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00
    };
    const BYTE orange[ 58 ] = {
    0x42, 0x4D, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00,
    0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0xFF, 0x00
    };
    //---------------------------------------------------------------------------------------------------------------------------------
    typedef HRESULT (WINAPI* tSetStreamSource)(LPDIRECT3DDEVICE9 pDevice,UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride);
    tSetStreamSource oSetStreamSource;
    typedef HRESULT (WINAPI* tEndScene)(LPDIRECT3DDEVICE9 pDevice);
    tEndScene oEndScene;
    typedef HRESULT (WINAPI* tDrawIndexedPrimitive)(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE PrimType,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount);
    tDrawIndexedPrimitive oDrawIndexedPrimitive;
    //---DrawString--------------------------------------------------------------------------------------------------------------------
    void DrawString(int x, int y, DWORD color, const char *fmt, ...)
    {
    RECT FontPos = { x, y, x + 120, y + 16 };
    char buf[1024] = {'\0'};
    va_list va_alist;
    va_start(va_alist, fmt);
    vsprintf(buf, fmt, va_alist);
    va_end(va_alist);

    g_pFont->DrawText(NULL, buf, -1, &FontPos, DT_NOCLIP, color);
    }
    //---DrawRectangle-----------------------------------------------------------------------------------------------------------------
    void DrawRectangle(float x, float y, float w, int h)
    {
    D3DXVECTOR2 vLine1[2];
    D3DXVECTOR2 vLine2[2];
    D3DXVECTOR2 vLine3[2];
    D3DXVECTOR2 vLine4[2];
    vLine1[0].x = x;
    vLine1[0].y = y;
    vLine1[1].x = x;
    vLine1[1].y = y+h;
    vLine2[0].x = x+w;
    vLine2[0].y = y;
    vLine2[1].x = x+w;
    vLine2[1].y = y+h;
    vLine3[0].x = x;
    vLine3[0].y = y;
    vLine3[1].x = x+w;
    vLine3[1].y = y;
    vLine4[0].x = x;
    vLine4[0].y = y+h;
    vLine4[1].x = x+w;
    vLine4[1].y = y+h;
    g_pLine->SetWidth(2);
    g_pLine->SetAntialias(false);
    g_pLine->SetGLLines(false);
    g_pLine->Begin();
    g_pLine->Draw(vLine1, 2, 0xFF0000FF);
    g_pLine->Draw(vLine2, 2, 0xFF0000FF);
    g_pLine->Draw(vLine3, 2, 0xFF0000FF);
    g_pLine->Draw(vLine4, 2, 0xFF0000FF);
    g_pLine->End();
    }
    //---Hooked DirectX Functions-------------------------------------------------------------------------------------------------------
    HRESULT WINAPI hkEndScene(LPDIRECT3DDEVICE9 pDevice)
    {
    if(g_pTexRed == NULL) D3DXCreateTextureFromFileInMemory(pDevice, (LPCVOID)&red, sizeof(red), &g_pTexRed);
    if(g_pTexOrange == NULL) D3DXCreateTextureFromFileInMemory(pDevice, (LPCVOID)&orange, sizeof(orange), &g_pTexOrange);

    if(g_pFont == NULL) D3DXCreateFont(pDevice, 15, 0, FW_BOLD, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Verdana", &g_pFont);
    if(g_pLine == NULL) D3DXCreateLine(pDevice, &g_pLine);
    pDevice->GetViewport(&g_ViewPort);
    if(g_pFont != NULL && g_pLine != NULL){
    ModelRecLoggerMenu();
    if(g_uiTimer > GetTickCount()){
    DrawString(g_ViewPort.Width/2,g_ViewPort.Height/2, 0xFF00FF00, "Values Saved");
    }
    }
    return oEndScene(pDevice);
    }
    HRESULT WINAPI hkDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE PrimType,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount)
    {
    __asm nop
    HRESULT hRet = oDrawIndexedPrimitive(pDevice, PrimType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
    bool bIsLogging = false;
    for(int i = 0; i < 4; i++){
    if(model[i].isLogging == true){
    bIsLogging = true;
    break;
    }
    }
    if(bIsLogging){
    if((model[STRIDE].isLogging == true ? model[STRIDE].value : g_uiStride) == g_uiStride &&
    (model[NUMVERTS].isLogging == true ? model[NUMVERTS].value : NumVertices) == NumVertices &&
    (model[PRIMCOUNT].isLogging == true ? model[PRIMCOUNT].value : primCount) == primCount &&
    (model[STARTINDEX].isLogging == true ? model[STARTINDEX].value : startIndex) == startIndex)
    {
    pDevice->SetRenderState( D3DRS_ZENABLE,false );
    pDevice->SetRenderState( D3DRS_FILLMODE,D3DFILL_SOLID );
    pDevice->SetTexture( 0, g_pTexOrange );
    oDrawIndexedPrimitive(pDevice, PrimType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
    pDevice->SetRenderState( D3DRS_ZENABLE, true );
    pDevice->SetRenderState( D3DRS_FILLMODE,D3DFILL_SOLID );
    pDevice->SetTexture( 0, g_pTexRed );
    }
    }
    return hRet;
    }
    HRESULT WINAPI hkSetStreamSource(LPDIRECT3DDEVICE9 pDevice,UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride)
    {
    __asm nop
    if(StreamNumber == 0){
    g_uiStride = Stride;
    }
    return oSetStreamSource(pDevice, StreamNumber, pStreamData, OffsetInBytes, Stride);
    }
    //-----------------------------------------------------------------------------------------------------------------------------------
    void Log(char* fmt, ...)
    {
    char buf[1024] = {0};
    va_list va_alist;
    ofstream output;
    va_start(va_alist, fmt);
    vsnprintf(buf, sizeof(buf), fmt, va_alist);
    va_end(va_alist);
    output.open("D3D9 Model Logger.txt", ios::app);
    if(output.fail()) return;
    output << buf << endl;
    output.close();
    }
    //--Credits to DrUnKeN ChEeTaH--------------------------------------------------------------------------------------------------------
    LRESULT CALLBACK MsgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){return DefWindowProc(hwnd, uMsg, wParam, lParam);}
    void DX_Init(DWORD* table)
    {
    WNDCLASSEX wc = {sizeof(WNDCLASSEX),CS_CLASSDC,MsgProc,0L,0L,GetModuleHandle(NULL),NULL,NULL,NULL,NULL,"DX",NULL};
    RegisterClassEx(&wc);
    HWND hWnd = CreateWindow("DX",NULL,WS_OVERLAPPEDWINDOW,100,100,300,300,GetDesktopWindow(),NULL,wc.hInstance,NULL);
    LPDIRECT3D9 pD3D = Direct3DCreate9( D3D_SDK_VERSION );
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory( &d3dpp, sizeof(d3dpp) );
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
    LPDIRECT3DDEVICE9 pd3dDevice;
    pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&pd3dDevice);
    DWORD* pVTable = (DWORD*)pd3dDevice;
    pVTable = (DWORD*)pVTable[0];
    table[ES] = pVTable[42];
    table[DIP] = pVTable[82];
    table[SSS] = pVTable[100];
    DestroyWindow(hWnd);
    }
    //------------------------------------------------------------------------------------------------------------------------------------
    void ModelRecLoggerMenu()
    {
    static int menuIndex = 0;
    static int incrementBy = 1;
    DrawString(10, 10, 0xFFFFFFFF, "In/Decrement By: %i", incrementBy);

    for(int i = 0; i < 5; i++){
    if(i == menuIndex){
    DrawRectangle(8, 23+(i*15), 140, 18);
    }
    DrawString(10, 25+(i*15), model[i].isLogging==true?0xFF00FF00:0xFFFF0000, "%s", model[i].type);
    if(i != LOGVALUES){
    DrawString(100, 25+(i*15), model[i].isLogging==true?0xFF00FF00:0xFFFF0000, "%i", model[i].value);
    }
    }

    if(GetAsyncKeyState(VK_UP)&1) menuIndex--;
    if(GetAsyncKeyState(VK_DOWN)&1) menuIndex++;
    if(GetAsyncKeyState(VK_LEFT)&1) model[menuIndex].value-=incrementBy;
    if(GetAsyncKeyState(VK_RIGHT)&1) model[menuIndex].value+=incrementBy;
    if(GetAsyncKeyState(VK_DELETE)&1)model[menuIndex].isLogging = !model[menuIndex].isLogging;
    if(GetAsyncKeyState(VK_INSERT)&1)model[menuIndex].value = 0;
    if(GetAsyncKeyState(VK_NEXT)&1){
    incrementBy *= 10;
    if(incrementBy > 1000){
    incrementBy = 1;
    }
    }
    if(GetAsyncKeyState(VK_END)&1){
    for(int i = 0; i < 4; i++){
    model[i].isLogging = false;
    }
    }
    if(model[LOGVALUES].isLogging == true){
    model[LOGVALUES].isLogging = false;
    g_uiTimer = GetTickCount() + 2000;
    Log("Stride: %i | NumVerts: %i | PrimCount: %i | StartIndex: %i",
    model[STRIDE].isLogging == true ? model[STRIDE].value : -1,
    model[NUMVERTS].isLogging == true ? model[NUMVERTS].value : -1,
    model[PRIMCOUNT].isLogging == true ? model[PRIMCOUNT].value : -1,
    model[STARTINDEX].isLogging == true ? model[STARTINDEX].value : -1);
    }
    if(menuIndex > 4) menuIndex = 0;
    if(menuIndex < 0) menuIndex = 4;
    if(model[menuIndex].value < 0) model[menuIndex].value = 0;
    }
    //------------------------------------------------------------------------------------------------------------------------------------
    DWORD WINAPI MyThread(LPVOID)
    {
    DWORD VTable[3] = {0};
    while(GetModuleHandle("d3d9.dll")==NULL){
    Sleep(250);
    }
    DX_Init(VTable);
    HOOK(EndScene,VTable[ES]);
    HOOK(DrawIndexedPrimitive,VTable[DIP]);
    HOOK(SetStreamSource,VTable[SSS]);
    return 0;
    }
    BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpvReserved)
    {
    if(dwReason == DLL_PROCESS_ATTACH){
    CreateThread(0,0,MyThread,0,0,0);
    }
    return TRUE;
    }

  3. Кстати говоря, выбери другую инструкцию, так как фильтр не нужен..

    EDIT.

    Скачал игру за 10 минут, вот тебе бессмертие..


    [ENABLE]
    alloc(newmem,2048)
    label(returnhere)
    label(originalcode)

    newmem:
    mov [esi+00001CB8],(float)2000
    originalcode:
    movss xmm0,[esi+00001CB8]
    jmp returnhere

    "saintsrowthethird_dx11.exe"+3B6314:
    jmp newmem
    nop
    nop
    nop
    returnhere:


    [DISABLE]
    "saintsrowthethird_dx11.exe"+3B6314:
    movss xmm0,[esi+00001CB8]
    dealloc(newmem)
    //Alt: db F3 0F 10 86 B8 1C 00 00

    • Плюс 1
  4. Взломал и здоровье игрока тоже, осталось стамина (выносливость)

    Нашел адрес на здоровье, сделал скрипт, но при включении скрипта игрок бессмертен и враги тоже. Как сделать что-бы только игрок был бессмертен

    Используй поиск по форуму. mustresist.png

  5. походу нельзя взломать здоровье и стамину

    Вообще-то можно. Я когда-то ломал эту игру, но осталось таблица с 2 опциями - здоровье и телепорт. Не знаю какая у вас версия, но вот- HP_"SaintsRowTheThird.exe"+3A7BE4, Coordinates - "SaintsRowTheThird.exe"+3925DC

  6. Здравствуйте геймхакеры. Решил обмануть игру Assassin's Creed v1.0.2.1. Решил взломать жизнь метательные ножи и ещё что нибудь. У меня вопрос, сверху с левой стороны есть линии возле глаза, это жизнь или нет.

    94d1553d00a383885adbc060049952f9.jpg
  7. Эм...Прости, но я не понимаю что ты здесь написал. Причем здесь динамика прицела?

    Да уж, сложно понять, что он там написал))

    Coder прав. Самый легкий способ найти адрес отвечающий за скорость игрока, найти координаты и поискать в структуре.

  8. Здравствуйте геймхакеры. Я купил дисковод наконец то. Сейчас играю в игру Red Orchestra 2 Герои Сталинграда, нашёл трейнер +3 h4x0r с функциями

    INSERT — Включить трейнер

    NUMPAD1 — неограниченный боекомплект

    NUMPAD2 — неограниченное здоровье

    NUMPAD3 — NO RELOAD

    HOME — отключить всё.

    Скачал но не знаю как его запустить. Помогите.

    Заходи на сайт h4x0r'a (sicheats.com), зарегистрируйся и дальше найдешь инструкцию.

  9. Здравствуйте геймхакеры. В игре Dead Space 1 решил попробовать изменить управления кнопок с wasd на стрелки, чтобы взломать её. Хотел сделать как написал live_4_ever но не получается. Помогите пожалуйста.

    Ээм.. а с дефолтным управлением никак не получается взломать ? :D

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

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

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