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

mrPTyshnik

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

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

  • Посещение

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

    1

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

  1. "Find out what writes to this address" если это не данные, а код который исполняется, думаю тут ничего отображаться и не будет.
    Надо реверсить игру, смотреть как работает код который ты патчишь 

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

    Но если ты устанавливаешь хук так:
    1) Определить длины начальных инструкций в целевой функции через дизассемблер длин

    2) Выделить буфер под трамплин и настроить его: скопировать байты из проанализированной функции в конец буфера с трамплином. Настроить адрес функции myDllFunc и рассчитать адрес прыжка в тело оригинальной функции с учетом скопированных байтов.
    3) Заменить скопированные байты в оригинальной функции для прыжка на трамплин

    тело трамплина:

    trampoline:
    call myDllFunc();
    orig_intructions
    jmp original_func_addr+sizeof(orig_intructions)



    То проблем быть не должно

     

  3. В 15.04.2020 в 16:36, edx сказал:

     

    Чего я не так делаю?

     

    1) найди код в игре который вызывает эту функцию и хорошенько присмотрись
    2) через asm вставки(если работаешь на x32) ИЛИ через отдельный *.asm файл(если в x64) повтори один в один вызов этой функции из своей DLL

    Параметры функции могут передаваться через стек, а могут через регистры. Возможно ты что-то упускаешь


    + Еще вариант:
    Поставь бряк на эту функцию и посмотри как туда передаются параметры с реальными данными когда сама игра вызывает эту функцию

     

  4.  

     

    но лучше конечно использовать инжектируемую библиотеку в процесс.

    По поводу передачи данных - обычный FileMapping

    1) Создаешь FileMapping в основном приложении
    2) При инжекте, инжектируемая dll открывает этот FileMapping
    3) Читаешь/пишешь в цикле, тут главное согласовать структуры данных, например:

    typedef struct MyRedneckProtocol {

    BYTE ControlCode;
    Vector3 Coord1;

    Vector3 Coord2;
    int resultCode;

    }
    эта структуру одинакова в dll и в основном приложении.
     

    Метод грубый и лучше бы конечно использовать пайп.

  5. uses CheatsHolder_FULL;
    
    begin
    	WriteLn( CryptSign('90 90 90 90 90 90 90 90 90', 'AnyConst'));//получаем шифрованное значение - JniLo^|t1wy3xnc}A^?C_wsdJn
    	
    	//расшифровываем:
    	WriteLn( DecryptSign('JniLo^|t1wy3xnc}A^?C_wsdJn', 'AnyConst'));//выведет 90 90 90 90 90 90 o0 90 90
    	ReadLn;
    end.


    в реальном трейнере необходимо оставить только часть которая расшифровывает сигнатуру(строку):

    uses CheatsHolder_FULL;
    
     
    begin
    	WriteLn( DecryptSign('JniLo^|t1wy3xnc}A^?C_wsdJn', 'AnyConst'));//вывод на экран 90 90 90 90 90 90 o0 90 90
        ReadLn;
    end.


    DecryptSign с байтами FF FF работает некорректно, в расшифрованной строке аномалии(если будешь использовать, придется фиксить)
    Ну и приглядитесь к выводу "90 90 90 90 90 90 o0 90 90" ?

  6. Канал Кенга (https://www.youtube.com/channel/UCmyAh5Rwmr-migt1SyVd5Mw) тоже выпилили

    Возможные аналоги для просвещения народа: https://vimeo.com , https://viuly.io
    канал Dmitry K. пока держится

  7. 5 минут назад, Senpai сказал:

    https://cloud.mail.ru/public/5XUN/Nm3JbMGn4 этот юзал инжектор? (там сурс)

    Инжектор собрал из этого сорца, верно
    Если ты собирал инжектор под x64 то в D7 нету возможности компилить под x64 - отсюда невозможность загрузить либу - так я думал пока не столкнулся с проблемой загрузки твой x32 библиотеки в x32 процесс(любой). Хотя библиотеки, которые собирал я у себя(под x32 и под x64) в DLP 10.2 Berlin работают отлично при таком инжекте. 
    Отсюда вытекает:
    Скорее всего настройки компилятора D7 надо рыть

    При инжекте твоей либы попытка вызова адреса 0D9646B0 
     8AnGPNdHjb3ELr.png

    L21v1JQI8ed35A.png

  8. 1) читать через системные процессы которые имеют хендл с нужными правами(system, svchost.exe, lsass.exe, csrss.exe) 
    2) каким-то образом загрузить либу в процесс и читать напрямую
    3) драйвера(свой или юзать уязвимые). Тут много вариаций:
    MmCopyVirtualMemory
    KeStackAttachProcess + RtlCopyMemory

    MmMapIoSpace
    Замаппить в юзермод приложение \Device\PhysicalMemory ну или просто изменить header_Object у этого объекта чтобы из юзера можно было бы открыть.
    Скорее всего, на Win8 + эти RPM/WPM никак не трогают(я имею ввиду нету ядерных хуков, так как KPP). Возможно ставят каллбак на открытие процесса ->> OpenProcess не имеет должных привилегий, поэтому и RPM/WPM не могут работать. 
    Можно нейтрализовать калбеки и вызывать функции без проблем, либо из драйвера(своего или чужого) получить хендл для процесса игры с нужными правами(в идеале с PROCESS_ALL_ACCESS) и спокойно работать(malwarefox driver) - хоть и не так безопасно. 

  9. 7 часов назад, partoftheworlD сказал:

    привет 2007 год. Сейчас у большинства мультиплеерных игр файлы подписываются цифровой подписью.

     

    Не могу понять, причем здесь это. Речь шла о подмене dll которая не разрабатывается крайтековцами, а именно ddraw.dll. То есть, подмена системной библиотеки которая не имеет цифровой подписи.
    zANyRBJIBEwqd2.png


    Такой метод работает и его продают. Могу предположить что MailRuALLOWCheat проверяет по имени либу и пропускает дальше. А могли бы запоминать хеши оригинала и проверять при старте. 

    • Смешно 1
  10. Недавно в телеге YCT слили один "приват". Суть обхода этого "привата"  - как говорил один классик "надо что бы игра грузила dll-ки читов как свои" ?. Це методика имеет название dll-hijacking. Переименовываешь либу хака в ddraw.dll и кладешь рядом с игрой Warface\Bin32Release, запуск. Мб уже пофиксили, пробуй

  11. 1 минуту назад, maks17990 сказал:

    Подскажи как мне его найти то что меня интересует через что именно искать через Cheat Engine или же dnSpy

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

  12. 12 минут назад, maks17990 сказал:

    Скрин а дальше что то не понял что сделать 

    Запустилось норм

    Ну то что игра вроде как работает(если я тебя правильно понял) - очень хорошо, даже странно.
    Теперь тебе надо найти тот метод, который тебя интересует и запатчить. Чистый код перед тобой, вперед!))
     

  13. 6 минут назад, maks17990 сказал:

     Просто нужно научится искать самому добавлять или убирать что нужно . Вы же поможете мне научится ? Пожалуйста!!!

    Всё есть в интернете, учить никогда не собираюсь, т.к. сам плаваю на поверхности этой темы. Гугли

  14. 1 минуту назад, maks17990 сказал:

    Скрин  Немного все равно не понял. Но не беда ючусь и очень хочу научиться 

    скрин не несет никакой полезной информации
    ты ту либу, которую я скинул по ссылке закинь в папку с игрой и переименуй в Assembly-CSharp.dll, а старую ACSH.dll сохрани, мало ли что. И попробуй запустить игру. 
     Даже интересно стало, скушает лоадер юнити такое или нет))

  15. 7 минут назад, maks17990 сказал:

    что это означает 

    82QDn40SjLPqqm.png

    Vm6vJ3LIDwBEdm.png
    Это значит что файл защищен.
    Ты же не думаешь что в проекте будут ориентироваться по таким названиям:
    KAxVPMxhMJWB5m.png
    Это рандомные названия для запутывания "исследователей"

    • Плюс 1
  16. 3 часа назад, Xipho сказал:

    Имелось в виду, наверное, AssemblyCSharp.dll (вроде так), которая присутствует во всех юнити играх.

    да, я допустил ошибку в аббревиатуре. Все верно. В большинстве случаев, достаточно просто анализа кода на С# и иногда моно диссектора. 

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

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

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