Добро пожаловать! Игровой форум WLUX.NET - Игры, Читы, Скрипты, Статьи, Софт, Курсы.

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

Добро пожаловать гость!

Приветствуем вас на нашем форуме! Мы очень рады вас видеть и с большим удовольствием поделимся всей информацией нашего форума!

Мы уважаем своих пользователей и так же ждем от вас приятного общения.

Система наград, ежедневное пополнения тем!

Общайся, получай награды.

Статьи, гайды, софт

У нас вы можете скачать бесплатно читы для игр. Полезные гайды на любые темы и схемы заработка. Есть раздел халявы!

FAQ по форуму

Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

  • Добро пожаловать на сайт - wlux.net!

    FAQ по форуму

    1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа

    2. Сообщения учитываються в следующих разделах: Читать

    3.Что-бы скачать вложение нужно 2 сообщения.

    4.Личные переписки работают только с Администрацией форума

    5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта

    6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!

    5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

C++ Гайд Как в EFT получить информацию о игроке (K/D, LVL, etc...)

wlux.net Оффлайн

wlux.net

Где волчьи уши, там волчьи зубы.
Команда форума
LV
7
 
20.06.2022
23 845
218
36
Награды
10
Пол
Муж.

Репутация:

  • Автор темы
  • Администратор
  • Модератор
  • Команда форума
  • #1
Опираясь на статью

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

я разобрался как же все таки получать эти данные, ведь статья больше обобщенная.

У нас есть функция которая декриптит ответ от сервера посредством AES \uE2BC.\uE001, посмотрев как фукнция работает изнутри, можно заметить что она использует только static fields, и статические функции, так что класс в котором она вызывается можно не искать а просто в rcx запихать 0
DecryptFunc.png

Так же нам нужна декомпрессия, потому что зашифрованный запрос приходит закомпрессированный ZLIB, и в фукнции \uE2BC.\uE007 можно увидеть как в игре она декомпрессируется и выплевывает нашу расшифрованную строку.
Decompress.png

Нам потребуется функция E001 и статик функция DecompressNonAlloc, а так же что бы наша E001 приняла наши данные, нужно сформировать mono_array.
C++:
unity_string get_decrypted_responce( char* data, int length )
{
    auto mono_array_new = reinterpret_cast< __int64( * )( uintptr_t domain, uintptr_t byteclass, __int64 size ) >( mono_base + 0xB3E50 ); //B3E50
    auto mono_domain = *( uintptr_t* ) ( mono_base + 0x499C78 );
    auto mono_byte_class = *( uintptr_t* ) ( mono_base + 0x4A21B0 );
    auto mono_array_addr_with_size = reinterpret_cast< uintptr_t ( * )( uintptr_t, int, __int64 ) > ( mono_base + 0xB39E0 );

    auto decompress_no_alloc = reinterpret_cast< uintptr_t ( * )( uintptr_t array_address, int size, uintptr_t null ) >( decompress_zlib_address );
    auto uE001 = reinterpret_cast< uintptr_t ( * )( uintptr_t cipherText, uintptr_t, unity_string* ) >( decrypt_address );
  
    auto Crypted_array = mono_array_new ( mono_domain, mono_byte_class, length );//создаем array
    LI_FN ( memcpy ).get ( )( ( void* ) mono_array_addr_with_size ( Crypted_array, sizeof ( uint8_t ), 0 ), data, length );

    unity_string crypt = unity_string(xorstr_(L"aes"));
    uintptr_t result = uE001 ( 0, Crypted_array, &crypt );
    uintptr_t result_text = decompress_no_alloc ( result, data, 0 );
    return (unity_string)result_text;
}

С декриптом покончено, но что бы декриптить что то, это что то надо получить. А без правильно сформированного запроса мы не получим данные, которые надо декриптить.
запрос идет на ссылку

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


Проанализировав хедеры запроса продебажив UnityWebRequests.SetRequestHeader я нашел 5 необходимых хедеров.

Код:
User-Agent: UnityPlayer/2019.4.39f1 (UnityWebRequest/1.0, libcurl/7.80.0-DEV)
Content-Type: application/json
App-Version: EFT Client 0.14.6.0.29862
GClient-RequestId: 24 (не особо важен но я без него иногда получал не валид ответ)
Cookie: PHPSESSID=вашphpsessid

так же в теле запроса должен быть JSON, с аккаунт айдишником
JSON:
{"accountId":"айди"}

PHPSESSID можно получить вызвав \uE2C3.get_PhpSessionId, функция статическая, так что проблем с ней не возникнет.
accountId можно получить из самого игрока, ObservedPlayerView + 0x50, это unity_string*
на этом все.
 

Поиск по форуму

shape1
shape2
shape3
shape4
shape7
shape8
Верх