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

Лидеры


Популярный контент

Показан контент с высокой репутацией за 10/12/19 во всех областях

  1. 1 балл
    MapleStory Revision: GMS v58 download - https://yadi.sk/d/uy1tlAoliFok0QMapleStory.exe - unpacked themida [ unpacked - AlisaCodeDragon ] <----------------------------------------------------------------------------------> Protection Crushers Reverse Engineering witch's hammer Team Exploring Dark Side of the Web <---------------------------------------------------------------------------------->
  2. 1 балл
    (С сегодняшнего дня все статьи будут идти в 2-х экземплярах, постом в блоге и в pdf версии, чтобы скрины в случае чего не полетели) Прошла уже неделя с момента релиза TraineMe, думаю все кто хотел уже поковыряли программу и уже пора выпустить решебник. Итак начнем. Используемые программы: Ghidra, CE. x64dbg, CherryTree.(Гидра была выбрана по 2-м причинам, первая она мне больше нравится, а вторая декомпилятор с этим файлом у гидры генерировал более понятный код, чем hex-rays.) Задание 1 m_fnEncodeValue(this ,param_2,m_fHealth ,AllocatedMemory,0); m_fnEncodeValue(this ,param_2,m_fAttack ,AllocatedMemory,1); m_fnEncodeValue(this ,param_2,m_fHealth ,AllocatedMemory,2); Здоровье передается в функцию m_fnEncodeValue в hex 1000.f = 0x447A0000 линия 1 и 3 Реверсим...Ставим бряк по адресу TraineMe.0+12E6 в x64dbg: bp TraineMe.0+12e6 Чтобы узнать, что лежит в регистрах и сделать код в функции m_fnEncodeValue более читаемым. После восстановления видим, что существует 2 массива для работы со здоровьем с общей структурой т.е.: PlayersArray[idx * 4] = KeysArray[idx * 4] ^ m_fLoadedHealth Сам ключ вычисляется довольно просто: srand(time64(0)) //Задаем seed для последующей генерации "рандомных" чисел с помощью rand() m_wPseudorandom = rand() KeysArray[idx * 4] = (m_wPseudorandom + (m_wPseudorandom * 0x93275ab3) >> 0x3f) * 0xdeadbeef + 1 Обратите внимание на код, который был показан выше, а точнее на последний аргумент: m_fnEncodeValue(this ,param_2,m_fHealth ,AllocatedMemory,0); m_fnEncodeValue(this ,param_2,m_fAttack ,AllocatedMemory,1); m_fnEncodeValue(this ,param_2,m_fHealth ,AllocatedMemory,2); 0, 1, 2 указывает на используемый индекс в структуре, которая была выделена во время нажатия кнопки “Start Game” 0 - текущее значение 1 - урон (???) 2 - статичное значение, скорее всего максимальное значение здоровья Эти значения могут пригодится для одного из способов создания бессмертия. Немного о выделении памяти, в этом traineme существует 2 основных выделения памяти под структуры на 48 и 24 байт. Все основные вычисления проводятся в той что по-больше. Задание 2 Выполнив первое задание, мы без проблем можем обнаружить единственную нужную инструкцию. После быстрого анализа кода с помощью трассировок, найти участок кода, где здоровье вычитается(а на деле прибавляется.), не составит труда. А теперь вспомним о значение 50, которое мы находили в первом задании. Весь алгоритм вычисления урона: srand(time64(0)) damage_multiplier = rand() / 32767.00000000 //приводим множитель к 1 damage = 50.f * damage_multiplier ^ 0x80000000 // 50.0 * 0.67 = 33.5 ^ 0x80000000 = -33.5 // // Загружается и расшифровывается значение здоровья (health) // health += damage //1000.0 += -33.5 damage = 0 damage_multiplier = 0 Задание 3 Довольно сложное задание, для тех, кто никогда/мало работал с GDI, поэтому ответ есть в этом видео: 01. Основные графики Windows. Изучаем GDI. Pen, Brush, Rectangle. Ну и табличка прилагается. TraineMe.CT RE--TraineMe.pdf
  3. 1 балл
    Не очень уловила смысл вопроса ибо ответ в шапке темы) *S.T.A.L.K.E.R - Anomaly 1.5.0 BETA 3.0* )))
  4. 1 балл
    A Knights Quest Просмотр файла Использование: Запускаем сначала игру, а в главном меню игры (либо в уже начатой)запускаем трейнер. Переключение интерфейса с eng на rus правой клавишей мыши по панели трейнера. Добавил LIRW Добавлено 10/13/19 Категория Трейнеры для PC игр  
  5. 1 балл

    Версия 1.0 Codex

    5 раз скачали

    Использование: Запускаем сначала игру, а в главном меню игры (либо в уже начатой)запускаем трейнер. Переключение интерфейса с eng на rus правой клавишей мыши по панели трейнера.
×

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

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