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

partoftheworlD

Помогаторы
  • Публикаций

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

  • Посещение

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

    135

Весь контент partoftheworlD

  1. Нет, для такой проверки нужны лучи трассировки и это фитча движка.
  2. Никак. Хотя, стоп, есть же z буфер. Но это не проверка видимости, просто значение действующее на все предметы, которое говорит устройству кого рисовать, а кого нет.
  3. 1. Да 2. Нет 3. Поиск по форуму, есть статья по отвязке камеры.
  4. partoftheworlD

    Встраиваем C декомпилятор в CE 6.8.3

    Вывод декомпилятора похож на снеговика в x64dbg.
  5. Для начала необходимо установить WDK (для Windows 7 SDK с windbg). После установки, открываем папку где находится IDA, заходим в папку cfg, открываем файл ida.cfg. Ищем строку DBGTOOLS раскомментируем её и прописываем путь до отладчика windbg x86(убедитесь что путь введен до x86 отладчика как написано в документации, x64 не работает), если установка wdk производилась без изменения директории, то пишем: DBGTOOLS = "C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x86\\"; В 7-ке: DBGTOOLS = "C:\\Program Files (x86)\\Windows Kits\\8.0\\Debuggers\\x86\\"; Сохраняем и закрываем. Теперь необходимо будет поднять сервер отладчика, для этого пишем чтобы поднять x64 сервер для отладки с помощью IDA x64 : "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbgsrv" -t tcp:port=5555 или 32 битный сервер для отладки с помощью IDA x32 "C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\dbgsrv" -t tcp:port=5555 -t указывает, что будет использоваться один из протоколов подключения типа tcp, npipe, 1394, com ,ssl. Выбираем tcp:port и указываем любой свободный порт. Теперь сервер запущен и идем в IDA для подключения к windbg, переходим во вкладку Debugger->Attach->windbg debugger: Откроется такое окно и прописываем в Connection string tcp:port=5555 Если все сделали правильно, откроется окно со всеми процессами
  6. Все правильно работает, ты просто тип используешь 4 байта, а надо 8. Думаю стоило бы для начала разобраться с типами переменных.
  7. А что если значение переменной обычный счетчик срабатывания кода? При достижении определенного количества срабатывает сборщик мусора.
  8. Для начала необходимо запустить демон докера: systemctl start docker Создаем rootfs mkdir ~/Desktop/rootfs && cd ~/Desktop/ Если это делается на рабочей системе, а не с live cd, то необходимо установить pacstrap pacman -S arch-install-scripts pacstrap -cdGM rootfs filesystem pacman Делаем различные настройки, типа cp /etc/pacman-mirrors.conf ~/Desktop/rootfs/etc/pacman-mirrors.conf Импортируем созданный образ в докер. tar -C rootfs -c . | docker import - manjaro_docker Запускаем docker run -it manjaro_docker /bin/bash Необходимо будет установить ключи для пакмана pacman-key –-init pacman-key --populate archlinux manjaro И зеркала: pacman-mirrors -c Russia Выходим. Принимаем изменения docker commit ${containerid} manjaro_dk И используем образ в Dockerfile FROM manjaro_dk RUN pacman -Syyuu --noconfirm base-devel RUN pacman -Scc –noconfirm … Экспорт: docker export NAME | gzip > NAME.gz
  9. partoftheworlD

    Создание Manjaro base образа для Docker

    Systemd (иначе забуду) Сборка как обычно docker build --rm -t NAME . А при запуске обязательно надо указать --privileged иначе файловая система не создастся, ничего не запустится. В сам Dockerfile надо прописать: RUN echo -e "123\n123" | passwd root VOLUME ["/sys/fs/cgroup"] CMD ["/usr/sbin/init"] Пароль нужен, чтобы войти в систему, без него не хочет логинится, ну а последние 2 строчки запускают systemd
  10. partoftheworlD

    Создание Manjaro base образа для Docker

    Способ не самый лучший из-за жирности контейнера, чистая база манджаро весит 660МБ. Если есть необходимость в арчеподобности и ауре, то лучше взять archlinux/base весит 444МБ, но он голый и нужно время, чтобы настроить под свои нужды, хотя бы аур и всякие ништяки. Жаль, что systemctl не робит, надо будет поискать на счет него что-нибудь.
  11. partoftheworlD

    Нет возможности выбора отладчика

    Отладчик выбирается до присоединения к процессу.
  12. Это было великолепное задание, я прям удовлетворен. Советую всем попробовать эту игру, это отличная практика, где можно попробовать свои силы в разных сферах. От поиска и изменения значений до понимания работы прокси сервера, перехвата пакетов, модификации, генерации ключей и целочисленного переполнения.
  13. Знание модификатора переменной на этапе реверса поможет найти проблемы в коде или новый функционал для читов. Для примера, если программист не указал модификатор переменной, то компилятор решит использоваться signed по стандарту, это может привести к проблемам, например к целочисленному переполнению, если в коде, не будет соответствующей проверки. Для начала посмотрим на таблицу, чтобы понять в чем разница. Как вы видите, разница в диапазонах. А теперь посмотрим на примере одного и того же кода на c++, различие в инструкциях signed и unsigned модификаторов. Signed | Unsigned push rbp | push rbp mov rbp,rsp | mov rbp,rsp mov DWORD PTR [rbp-0x4],edi | mov DWORD PTR [rbp-0x4],edi cmp DWORD PTR [rbp-0x4],0x62 | cmp DWORD PTR [rbp-0x4],0x62 jg 4004cc <test_signed(int)+0x1a> | ja 4004c9 <test_signed(unsigned int)+0x17> mov eax,DWORD PTR [rbp-0x4] | mov eax,DWORD PTR [rbp-0x4] lea edx,[rax+0x32] | add eax,0x19 mov eax,DWORD PTR [rbp-0x4] | add eax,eax add eax,edx | jmp 4004c9 <test_signed(unsigned int)+0x17> jmp 4004cc <test_signed(int)+0x1a> | pop rbp pop rbp | ret ret | Первое это конечно же условные прыжки: jg, jge, jl, jle = прыжки основанные на signed сравнении (Они проверяют SF флаг) ja, jae, jb, jbe = прыжки основанные на unsigned сравнении (Они проверяют CF флаг) Второе инструкции( на примере умножения и деления) imul + idiv = signed mul + div = unsigned Это примеры для самых основных команд, которые встречаются чаще всего, хотите больше? Добро пожаловать в документацию . На практике это дает возможность, делать отрицательное/огромное значение, там где не должно их быть. И в случае невнимательности программистов, что-то пойдет не так, но будет весело.
  14. Стек вызовов* Просто в стеке еще могут быть разные значения, а то научишь, что вверху стека будет лежать адрес откуда игра прыгнула и будут её искать где-то в середине функции.😄 Сейчас такие люди, что им надо все уточнять и по несколько раз.
  15. В первой половине видео ты рассказывал про условный бряк/трассировку, но далее в видео она не использовалась, так как фильтровать инструкции со множеством адресов таким способом?
  16. Некоторые игры/анти-читы(например VAC) проверяют целостность некоторого списка winapi функций, вот тебе и бан за хук. Любая игра с анти-читом на стороне сервера в 80% случаев имеет проверку целостности кода.
  17. Однажды я уже рассказывал как обойти проверку целостности руками, но это долго, нудно, да и кому вообще надо?! Для начала необходимые утилиты: x64dbg, CrySearch/CE, любой компилятор. Нашли адрес отвечающий за патроны, ставим на него бряк на запись, выходи на пишущую инструкцию, ставим бряк на доступ размером 1 байт в памяти на эту инструкцию и ждем срабатывания. После срабатывания в заголовке x64dbg будет написан ID потока. Переходим во вкладку "Потоки", здесь нам необходим только адрес начала: Теперь переходим к автоматизации, вся суть этого обхода в получении всех потоков и сравнении адреса начала, т.е если адрес начала равен 0x7FF730E2449D, то убиваем поток. Вот и весь обход. if (reinterpret_cast<DWORD64>(thread->Win32StartAddress) == (reinterpret_cast<DWORD64>(mainModule) + 0x4490)) { HANDLE hThread = OpenThread(THREAD_TERMINATE, FALSE, threadId); TerminateThread(hThread, 1); CloseHandle(hThread); } 0x4490 это относительный виртуальный адрес адреса начала потока.
  18. p.s в настройках сканирования выбрать модуль в котором надо искать сигнатуру.
  19. В одиночных играх конечно такой способ будет лучше, но в онлайне за хук и бан может прилететь.
  20. Не во всех играх видовая матрица от -1 до 1
  21. Конечно, но пусть запускают хоть 10 потоков, просто в программе надо указать их начальные адреса, а так программу включил и она в цикле будет отключать потоки при их создании(если они пересоздаются). Но конкретно в этой игре, все проверки в одном потоке.
  22. Во время решения keygenme пришлось писать ужасный код из-за того, что python работает со знаковыми целочисленным значениями и возник вопрос, как его можно оптимизировать для работы с без знаковыми значениями без включения сторонних модулей. Сам код: tmp = [96, -129, 20, -58, 60, 4, -234, 178, 180, 3, 66, -184, -73, 33, 8, 28] for i in tmp: print(hex((i & ((1 << 64)) - 1) & 0xFF)[2:], end='')
  23. Это ведь Frostbite, там все связано, просто найди координаты камеры и руками найди указатель, по ходу восстановления смещений найдешь все что нужно, только на одном из пунктов поиска будем несколько адресов, которые будут указывать на структуру игрока (Список игроков и локальная структура). Так же есть дампер классов, который для твоих целей подойдет идеально.
×

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

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