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

gmz

Разработчики (+)
  • Постов

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

  • Посещение

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

    26

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

  1. 13 часов назад, Antonshka сказал:

    Подскажите, какова общая схема создания и использования трейнера/приложения, который работает по средствам написанной dll.

    1 в DllMain DLL_PROCESS_ATTACH кодишь инжектор и создание локал потока на Main
    2 проверка GetModuleHandleW - модуль игры не найден - инжект и return 0 а если найден - локал поток на Main и return 1
    3 инжектор K32EnumProcesses/K32GetModuleBaseNameW/lstrcmpiW/OpenProcess/VirtualAllocEx/GetModuleFileNameW/WriteProcessMemory/CreateRemoteThread/LoadLibraryW
    4 кодишь чит в Main
    5 можешь переименовать dll в cpl для запуска почти как ехе или rundll32.exe hack.dll,0

     

  2. 35 минут назад, Antonshka сказал:

    В 64 битном приложении, RSP до и после вызова всегда одинаковый. Никакой автоматизации нет.

    там статик стек, например:

    testz:
    struc .stack
    resq 4
    .5 resq 1
    alignb 16
    resq 1
    endstruc
    sub rsp,.stack_size
      
    mov ecx,1
    mov edx,2
    mov r8d,3
    mov r9d,4
    mov dword[rsp+.5],5
    call [xxxxxxxx]
      
    mov ecx,1
    call [xxxxx]
    
    add rsp,.stack_size
    ret

    где .5 макс количество параметров апи

     

    • Понравилось 1
    • Плюс 1
  3. 13 часов назад, RenW сказал:

    Может быть, есть ещё какие-то методы разобраться с .exe и .dll? 

    подкл в игру х64dbg, ctrl+g > VirtualProtect ставишь брек, инжект хак или жми опцию - в стеке в 1 адресе увидишь код (может и не длл) который работает с опцией а в rcx адрес. жмешь ф9 и смотришь все адреса.

     

    13 часов назад, RenW сказал:

    Так как я не особо понимаю, с чем завязана такая система приватных читов, я хочу добиться большей информации. 

    там веротяно после логина подгруз длл а потом инжект через LoadLibraryA или LoadLibraryW или VirtualAllocEx+иниц (посл вариант оч маловероятно)
     

    14 часов назад, RenW сказал:

    И.. если вся информация содержится в .dll то, можно ли чем-нибудь другим подключить его к игре и всё? Либо же написать свой инжектор... 

    длл там может использоватся как переходник. например ехе пишет в нее в опред. место 1 для вкл какой то опции тд тп

     

    10 часов назад, RenW сказал:

    ESP сильно волнует, ведь оно очень важно, а я понятия не имею, как его вытащить из программы, если изменения будут приходить с сервера

    есп похож на игровой, вероятно 1 байт патч

     

    11 часов назад, imaginary сказал:

    тогда даже все изменения для кода игры могут присылаться с сервера

    иии тогда придется все кодить с 0 даж на основе этой инфы :D

     

  4. Borderlands GoldKeys

    Просмотр файла

    Borderlands Game of the Year Enhanced x64

    Borderlands 2 x32

    Borderlands The Pre Sequel x32

    Borderlands 3 Ultimate Edition x64

     

     

    Запустить игру, инжект - ключи безлимит.

    Для отключения - нажать Pause

    Написан на fasm


     

    • Плюс 2
  5. В 25.10.2019 в 21:07, Hack сказал:

    HMODULE kernel32 = GetModuleHandleA("kernel32.dll");

    pGetModuleHandleA = (_GetModuleHandleA)GetProcAddress(kernel32, "GetModuleHandleA");

    pGetProcAddress = (_GetProcAddress)GetProcAddress(kernel32, "GetProcAddress");

    это и похоже - что бы было больше текста? :D

    (LPTHREAD_START_ROUTINE)GetModuleHandleA
    (LPTHREAD_START_ROUTINE)GetProcAddress

     

  6. 20 часов назад, Razi сказал:

    Меняется ли базовый адрес exe файла на 64 bit ОС, если запускать exe файл в режиме совместимости 32 bit?

    открой файл в CFFExplorer -> Optional header -> DllCharacteristics > если там галка на "Dll can move" - меняется

     

    20 часов назад, Razi сказал:

    Сделал трейнер с базовым адресом 0x400000 и не знаю сможет ли он считывать правильные значения на 64 bit ОС, при запуске exe файла игры в 32 bit. 

    если в игре вкл ASLR - нет

  7. 1 час назад, TimaS сказал:

        if (!strcmp(mEntry.szModule, modName))  // тут показывает ошибку 

    lstrcmpi или _wcsicmp

     

    1 час назад, TimaS сказал:

    !strcmp(pEntry.szExeFile, proc)) //  тут показывает ошибку 

    lstrcmpi или _wcsicmp

     

  8. 39 минут назад, MadVlad сказал:

    Эту функцию использовать в конце хук-функции? И где взять аргумент для неё? Или перехватить её и в ней делать ReleaseFont?

    без параметров хук. потом проверяешь font на 0 и если не 0 - достаешь из font указатель на ReleaseFont

     

    44 минуты назад, MadVlad сказал:

    вопрос насчёт координат

    хз пробуй как флоат

    • Плюс 1
  9. 19 часов назад, MadVlad сказал:

    Игра вылетает, если к примеру изменить размер окна, сделать окно неактивным а потом его активировать. В чём дело - понятия не имею.

    надо reset хук и там делать ReleaseFont +font в 0

     

    В 27.06.2019 в 22:28, MadVlad сказал:

    Ищу сигнатуру функции EndScene

    это лучше хук на коде игры - макс надежно на любой версии ос

     

    • Плюс 1
  10. В 19.05.2019 в 13:08, Hack сказал:

    Есть способ проще и быстрее? 

    Спойлер

     

    
    mov rax,[.exeBase]
    mov ecx,[.exeSize]
    add rcx,rax
    
    .Scan:
    
    cmp byte[rax+0],0x31
    jnz @f
    cmp byte[rax+1],0x31
    jnz @f
    cmp byte[rax+2],0x31
    jnz @f
    cmp byte[rax+3],0x31
    jnz @f
    cmp byte[rax+5],0x31
    jnz @f
    mov [OptionA],rax
    @@:
    
    cmp byte[rax+0],0x32
    jnz @f
    cmp byte[rax+1],0x32
    jnz @f
    cmp byte[rax+2],0x32
    jnz @f
    cmp byte[rax+3],0x32
    jnz @f
    cmp byte[rax+7],0x32
    jnz @f
    mov [OptionB],rax
    @@:
    
    inc rax
    cmp rax,rcx
    jnz .Scan
    

     

    только если все сразу. а так обычно спец функция на 0x31 ?? 0x31 0x31 ?? 0x31

     

    В 19.05.2019 в 19:50, partoftheworlD сказал:

    , с AVX2 - 40-55 мс

    1 байт срав. на авх? Lol

     

  11. 12 часов назад, barsuuk сказал:

    после выполнения кс зависает и вылетает. Скорее всего ошибка в том что я не туда лезу))

    иниц функции пропустил. наверно оно будет работать если вызвать на push ebp и если передать правильно каких то 2 параметра..

     

  12. 14 часов назад, faik003 сказал:

    Блин, у меня складывается впечатление, что либо не читают мои посты перед тем, как ответить, либо я чего-то не понимаю.

    ну Lol

     

    int test1(){
    __rdtsc();
    __rdtsc();
    __rdtsc();
    return 1;
    }
    
    void test2(){
    __rdtsc();
    }
    
    DWORD_PTR Hook = (DWORD_PTR)test1;
    DWORD_PTR Func = (DWORD_PTR)test2;
    DWORD_PTR temp;
    static BYTE Call[] = {0xE8,0x00,0x00,0x00,0x00,0x90};
    *(DWORD*)(Call+1) = (Func-5)-Hook;
    VirtualProtect((LPVOID)Hook,sizeof Call,PAGE_EXECUTE_READWRITE,&temp);
    memcpy((LPVOID)Hook,Call,sizeof Call);
    VirtualProtect((LPVOID)Hook,sizeof Call,temp,&temp);

     

    • Понравилось 1
    • Плюс 1
×
×
  • Создать...

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

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