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

Лидеры


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

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

  1. 2 балла
    Cheat Engine 7.0 Beta 2 Скачать https://cheatengine.org/download/beta/07252019/CheatEngine70Beta2.exe
  2. 2 балла

    Версия 1.0 Beta

    2 раза скачали

    Cheat Engine 6.8.3 Cheat Engine Extensions "User actions logger 1.0 Beta" Repository: https://bitbucket.org/MasterGH/ce-lua-user-actions-logger/src/master/ Author: MasterGH Donations: paypal, mastergh.developer@gmail.com Site: https://gamehacklab.ru/ Youtube channel: https://www.youtube.com/gamehacklabru VK: https://vk.com/gamehacklab How to install: Put files in main directory to chate engine Version: Beta 1.0 (22.018.2019) + Add output base information about user actions + Add GHL panel Files: autorun->User actions logger.lua autorun->GHLLogo.lua autorun->forms->GHLLogo.frm На русском: "User actions logger 1.0 Beta" Репозиторий: https://bitbucket.org/MasterGH/ce-lua-user-actions-logger/src/master/ Автор: MasterGH Donations: paypal, mastergh.developer@gmail.com Сайт: https://gamehacklab.ru/ Youtube канал: https://www.youtube.com/gamehacklabru VK: https://vk.com/gamehacklab Как установить: Распаковать файлы в директория Cheat Engine Версия: Beta 1.0 (22.018.2019) + Добавлены базовые действия в логи + Добавлены ссылки на ресурс game hack lab Файлы: autorun->User actions logger.lua autorun->GHLLogo.lua autorun->forms->GHLLogo.frm
  3. 1 балл
    Версия игры: 1.2 Файл для патча: sotes.exe Непобедимость... 00096734: 8B 89 00096735: 45 7D 00098240: 8B 89 00098241: 7E 6E 0009BAA9: 8B 89 0009BAAA: 8B 9A 0009BAAB: 84 6E 0009BAAC: 00 02 Вечная мана... 0009BB49: 8B 89 0009BB49: 43 4B Максимум денег... 0019CD58: 76 77 0019CD61: BC 14
  4. 1 балл
    На винде вообще не стоит ничего отлаживать(горький опыт), когда-то надо было сайт отладить, делал по этой статье на убунте в виртуалке. https://medium.com/@nikoloza/how-to-debug-remote-ios-device-using-chrome-devtools-f44d697003a7 Все работало. До сих пор работает.(без джейлбрейка)
  5. 1 балл
    addr = 0x1581500 result = readInteger(addr) print(string.format('[0x%x] = %d', addr, result)) for i = 0x01, 0xFFFFFFFF do writeInteger(addr, i) --print(string.format('%d written at address 0x%x', i, addr)) end
  6. 1 балл
    1. Инструкция, как и написал @Xipho работает в миссии по-видимому и по вот этой проверке: mov rax,[rcx+00000658] // защита от нулевого значения test rax,rax // Т.е. сработала инструкция или нет jz _ExitGMD // И появился ли адрес в [rcx+00000658] но это указатель на структуры всех НПС скорее всего, потому-что фильтр свой/чужой это: 2. Автор скрипта юзает не здоровье, а УРОН судя по записям: maxss xmm1,[fSmallval] /////////////////////// minss xmm1,[fBigVal] /////////////////////// fSmallval: dd (float)0.0001 fBigVal: dd (float)-16800.0 Ну а так информации в выложенном коде предостаточно, чтобы восстановить работу скрипта, если поменялась версия игры. ЗЫ: Конечно от здоровья - реверс кода скорее всего.
  7. 1 балл
    Вот и настало время для 2й части реверсинга данной игры Сегодня будет рассмотрен Packet Editing В качестве основной идеи выступает данное видео Ну что же, начнем... Для начала необходимо найти ф-ию отправки пакета на сервер игры Эта ф-ия существует во всех онлайн играх. На примере Perfect World, она выглядит вот так В ф-ию передается 2 аргумента 1й аргумент это указатель на массив байтов который передается серверу В качестве второго аргумента выступает размер пакета в байтах Выглядит все это примерно так byte data[] = { 0x0 , 0xfc, 0xbc }; int len = 3; SendPacket(data, 3); Таким образом можно отправлять серверу пакеты для выполнения каких-либо действий внутри игры Но для того чтобы что-то сделать в игре, надо знать какой пакет мы должны отправить заранее И для этого ниже будет представлен хук, который покажет какие пакеты отправляются от клиента на сервер Приступим к самому хуку для чтения пакетов Сам хук довольно прост, и ничем особым не выделяется, кроме того, что хук будет перед вызовом memmove //Main dll thread jmpBack = (DWORD)DetourFunction((BYTE*)(Module + 0x419ACF), (BYTE*)PacketHook); //Hook part __declspec(naked) void PacketHook() { __asm { mov hookedPacket, ecx mov hPacketSize, esi } memcpy(hpacket, (void*)hookedPacket, 256); i = 0; if (hpacket[0] == 0x0 && hpacket[1] == 0x0 && hPacketSize == 41) //Movement 41 len { printf("Movement Packet: "); printf("Y: %.3f X: %.3f Z: %.3f ", *(float*)(hpacket+2), *(float*)(hpacket + 6), *(float*)(hpacket + 10)); printf("Counter %02x \n", hpacket[16]); } else if (hpacket[0] == 0x07 && hpacket[1] == 0x00 && hPacketSize == 25) //Stop Move { printf("Stop Hero Packet: "); printf("Y: %.3f X: %.3f Z: %.3f \n", *(float*)(hpacket + 2), *(float*)(hpacket + 6), *(float*)(hpacket + 10)); } else if (hpacket[0] == 0x03 && hpacket[1] == 0x00 && hpacket[2] == 0x01 && hPacketSize == 3) //Attack Packet { printf("Standart Attack Packet\n"); } else if (hpacket[0] == 0x02 && hpacket[1] == 0x00 && hPacketSize == 6) //Select Target packet { printf("Select target: 0x%06x\n", *(int*)(hpacket+3)); } printf("Incoming Packet: "); for (i; i < hPacketSize; i++) { printf("%02x ", hpacket[i]); } printf("\n"); _asm jmp jmpBack } Собственно это весь хук который нужен для чтения Некоторые пакеты я уже расшифровал К примеру пакет движения У каждого пакета в игре есть некий ID - это ровно 2 байта Для перемещения это 00 00 Остановка персонажа 07 00 Обычная атака 03 00 и т.д. В пакете движения передаются координаты перемещения персонажа в данный момент Что касается чтения пакетов, с этим все, больше тут придумывать нечего Настало время сделать свою отправку пакета на сервер //SendPacket Prototype using Send_t = void(__thiscall*)(DWORD*,DWORD*, int); auto* fnc_Send = reinterpret_cast<Send_t>(Module + 0x419A40); if (GetAsyncKeyState(VK_NUMPAD8) & 0x1) { std::ifstream inFile("C:\\Users\\Administrator\\Documents\\Visual Studio 2017\\Projects\\PW\\Debug\\Send.txt"); std::vector<uint8_t> data; data.reserve(512); unsigned int temp; while (!inFile.eof()) { inFile >> std::hex >> temp; data.push_back(temp); } std::copy(data.begin(), data.end(), hSendPacket); printf("Sent: "); for (j; j < data.size(); j++) printf("%02x ", (int)data[j]); printf("\n"); DWORD* Packet = (DWORD*)&hSendPacket; DWORD BaseValue = *reinterpret_cast<DWORD *>(0x00E444A4); DWORD* Base = (DWORD*)(*reinterpret_cast<DWORD*>(BaseValue + 0x20)); int packsize = data.size(); fnc_Send(Base, Packet, packsize); } У ф-ии 3 аргумента, т.к в регистре ecx перед вызовом ф-ии должен быть еще 1 указатель Теперь и отправка пакета готова, можно начать эксперементировать Для примера возьму пакет использования 3ей ячейки в инвентаре, в которой лежит предмет 28 00 00 01 02 00 26 2c 00 00 28 00 - использование предмета 02 - ячейка в инвентаре 02 26 - ID предмета, которое можно посмотреть и свериться 11302 - 0x2C26 Ну а теперь когда найден пакет, можно попробовать отправить его на сервер с помощью написанного выше кода На этом данная статья заканчивается. Примерно такие же действия можно сделать и с другими онлайн играми и автоматизировать некоторые действия
  8. 0 баллов
    if (password = MachineID) { UnzipFile(smth); OpenCheat(); }
  9. 0 баллов
    Отличная попытка, ФСБ.
×

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

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