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

partoftheworlD

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

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

  • Посещение

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

    168

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

  1. Ищется так же как и любое другое значение в памяти. Не можешь найти скорость, значит ищи, то что можешь, например координаты, от них можно восстановить код и выйти на кусок кода работающий с расчетом координат, от него выходишь на дистанцию, от дистанции на скорость, от скорости на forward vector и т.д.
  2. Обычно это вектор единичной длины(если по простому - шаг проделываемый объектом), который используется для вычисления позиции за определенное количество времени и может принимать в себя разные параметры, типа ускорения, скорости и т.д.
  3. Это самые основы, которые даже есть в видео-уроках, а именно стек вызовов и многоуровневые указатели(ручной способ).
  4. Это и так самое простое, проще только идти в песочницу и лепить куличики.
  5. Сейчас нашлось свободных 10 минут, вот что нашел. В игре используется типичный switch/case, как первый вариант фильтрации просто использовать номера кейсов "если номер кейса равен n, то положить указатель в ...". Второй вариант продолжить искать инструкции формирующие указатель, он будет уровнем выше. И из-за этого раздули тему на целый десяток сообщений.
  6. Да очень просто, восстановлю алгоритм получения указателей и буду с помощью цикла получать только то, что мне нужно, а не перебирать все подряд и отсеивать с помощью исключений. Тем более поиск указателей не так уж и сложен, чем разбираться во внутреннем устройстве SEH.
  7. partoftheworlD

    Задачка по IDA и Python

    https://raw.githubusercontent.com/EiNSTeiN-/idapython/master/examples/ex_graph.py
  8. partoftheworlD

    Задачка по IDA и Python

    Подключение к питону происходит с помощью: import idc import idautils import idaapi У меня есть наработки некоторые, возможно что-то пригодится. В выводе получим Надо будет поправить пару строк, чтобы выводилась не функция целиком, а как при трассировке: for j in [i for i in self.range_reverse(current_function.endEA, current_function.startEA)]: Если нужно, вечером могу поискать, где-то был код для постройки графов.
  9. Деобфусцировал код игры и посмотрел какие значения принимает функция рисования этой полоски, а после поиском нашел значение (изменилось/не изменилось)
  10. Визуальное значение проходит через эту инструкцию, останется только зареверсить. F3 0F 11 6E 1C C6 46 24 01 48 8B C7
  11. partoftheworlD

    [ PC Hunter ] Load Driver Error!

    Когда же люди научатся читать журналы изменений.
  12. partoftheworlD

    как задать условие на трассеровку?

    смотришь в документации объявленный счетчик срабатываний брейкпоинтов( $breakpointcounter), выбираешь вкладку трассировка, выбираешь тип трассировки с заходом или без захода в вызовы, появляется окошечко и туда вписываешь любые условия, для остановки, если остановка случилась, то что необходимо сделать и т.д. Вот пример, трассировка начнется, если счетчик срабатываний инструкции будет больше 1000. Вот еще пример, дампера значений с инструкции, там про трассировку с условием более подробно и надеюсь понятно написано.
  13. partoftheworlD

    как задать условие на трассеровку?

    Есть видео уроки, а так же книги , а так же документация, так что информации полно. Например, OALabs. Уроки и книги по крутым инструментам для отладки обычно у малварщиков, а как применить их, это уже дело фантазии, в случае чего, существует туева хуча уроков по ollydbg в том числе и на русском, если знаешь olly, то проблем с использованием x64dbg не будет. Интерфейс у них похожий, плюс есть поддержка различных языков, так что даже методом "тыка" можно разобраться за минут 30. CE представляет из себя комбаин из всего что только есть, но вот реализация не самая удачная и тут встает единственный вопрос, готов ли ты тратить на какое-то дело некое количество времени, чтобы написать костыли в CE, когда существует готовое решение, делающее то, что тебе нужно в один клик.
  14. partoftheworlD

    как задать условие на трассеровку?

    Как вариант, не заниматься ерундой, а использовать специально заточенные для отладки инструменты. Например, в x64dbg этот счетчик остановок вынесет в отдельную переменную ($breakpointcounter) для доступа к ней, или Windbg. CE не подойдет для чего-то серьезного как ни крути.
  15. partoftheworlD

    Трейнер Plants Vs Zombies GOTY Edition 1.2.0.1095

    Создай отдельный аккаунт на Mega, чисто для трейнеров, там будет доступно 50гб и ссылки на файлы не полетят, пока аккаунт или файл не удалишь. Есть
  16. partoftheworlD

    как задать условие на трассеровку?

    Вроде бы у CE не счетчика остановок, поэтому придется делать свой с помощью скрипта. cmp [debugCounter],#99 jne doSomething ... inc [debugCounter] jmp original_code doSomething: ... inc [debugCounter] jmp original_code
  17. Читать больно. А на счет трейнеров и их качества, условия использования не оговариваются, а значит трейнеры, таблицы и прочий софт, написанный разработчиками, распространяется "как есть" т.е. работоспособность не гарантируется вообще, так что при использовании трейнеров, таблиц и прочего софта пользователь использует все на свой страх и риск. Так что мне прямо удивительно видеть людей, которые требуют качества за бесплатно, так еще и возмущаются что, что-то не так работает или не работает совсем(не только ты, с того же пг полно подобного типа людей). Предлагаю закрыть и почистить топик, так как это достаточно глупое обсуждение.
  18. partoftheworlD

    Субтитры в UE3/4

    FText является классом, для каждого субтитра устанавливается свое время отображения.
  19. Статьи придется растянуть ещё на 1-2 т.к. я свалился с температурой. Но сегодня не об этом, для начала нам необходимо вспомнить структуру построения диалогов. [B01_P_INTRO_01_000 SoundNodeWave] SpokenText="Ты очнулся, очень хорошо - я не знала, сколько ты проваляешься. Эти транквилизаторы в конце концов перестали действовать." Comment="NOTES[], TRIGGER[], GLOSSARY[]" bMature=False Subtitles[0]=(Text="Ты очнулся, очень хорошо - я не знала, сколько ты проваляешься. Эти транквилизаторы в конце концов перестали действовать.") Необходимо обратить внимание на идентификатор, а точнее на SoundNodeWave, в прошлой статье я забыл указать, что это класс UE3, по сути это звуковой узел, работающий с локализацией, который содержит данные об воспроизводимом файле, а также его характеристиках. Но для нашей цели, а именно увеличения времени показа субтитров, надо обратить внимание на массив Subtitles, а дальше просто, посмотреть в документацию. смотрим на структуру array<SubtitleCue> Линия текста субтитров и время, которое субтитры должны отображаться. Из примера выше: Text="Ты очнулся, очень хорошо - я не знала, сколько ты проваляешься. Эти транквилизаторы в конце концов перестали действовать." Вот мы и нашли способ для увеличения времени показа субтитров, имея на руках только гугл и файлы локализации. Да, он относительно долгий (нам надо будет переписать все субтитры, а их там 598 файлов). Можно конечно скрипт написать, который подправит все, но должен же быть способ проще. Но насколько я понял по локализации, то проблема в быстрых субтитрах именно в ней, в нормальной английской версии, субтитры разделены на группы, а в русской все в одной строке. Eng: [B01_P_INTRO_01_000 SoundNodeWave] SpokenText="Good, you're awake - I wasn't sure how long you'd be under. Those tranquilizers wore off fast." Subtitles[0]=(Text="Good, you're awake - ") Subtitles[1]=(Text="I wasn't sure how long you'd be under. ") Subtitles[2]=(Text="Those tranquilizers wore off fast.") bManualWordWrap=True Comment="NOTES[], TRIGGER[], GLOSSARY[]" bMature=False Rus: [B01_P_INTRO_01_000 SoundNodeWave] SpokenText="Ты очнулся, очень хорошо - я не знала, сколько ты проваляешься. Эти транквилизаторы в конце концов перестали действовать." Comment="NOTES[], TRIGGER[], GLOSSARY[]" bMature=False Subtitles[0]=(Text="Ты очнулся, очень хорошо - я не знала, сколько ты проваляешься. Эти транквилизаторы в конце концов перестали действовать.") В следующей статье, мы будет находить объект SoundNodeWave, реверсить его структуру, восстанавливать в ReClass и писать скрипт в CE, который будет подсовывать в массив SubtitleCue указанное нами время. Или оставить это моим читателям как домашнее задание?
  20. Для 10-15 людей, которые сидят на системе, которую уже 11 лет как не поддерживают? Может еще стоит указывать про то, что Windows 2000 и 98 тоже не поддерживается? Надеюсь это была шутка. Мне кажется, если используешь настолько устаревшую систему, то надо предполагать, что на ней мало что будет запускаться, тем более написанное в 2016 году.
  21. Подозрительно все это, трейнер основанный на сигнатурах не работает в более старой версии системы, а на новой работает.
  22. Однажды я уже рассказывал как обойти проверку целостности руками, но это долго, нудно, да и кому вообще надо?! Для начала необходимые утилиты: 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 это относительный виртуальный адрес адреса начала потока.
  23. Почитав документацию на MSDN
  24. partoftheworlD

    TrainMe 1.10

    Он снимается как upx, достаточно поставить бряк на popad. Распакованная версия, но без зачистки сегментов ASPackа https://dropmefiles.com/pz7Lo
×

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

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