Тема: Актуально Обход шифрования пакетов
Показать сообщение отдельно
Старый 19.11.2024, 20:59  
Dino
Проф. продавец
Аватар для Dino
OFFLINE
Регистрация: 23.07.2012
Сообщений: 2,402
Благодарностей:
894 всего
Мнения: + 4257
Репутация: 2680

Цитата:
Сообщение от Diantro Посмотреть сообщение
А-а, я думал можно без ассембли как-то обойтись. Вот так получилось. Выглядит и правда аккуратней.

Код:
void __declspec(naked) sendNetMessageTrampoline(void* thisPtr, DWORD zero1, const char* packetTypePtr, const char* packetContentPtr, DWORD length, DWORD zero2) {
    __asm {
        push ebp
        mov ebp, esp
        sub esp, 0x18
        jmp[jmpBackAddrSendNetMessage]
    }
}
Трамплин лучше динамически создавать, например доработав класс. А так тебе придется под каждый хук добавлять отдельную naked функцию... Желательно бы еще и дизассемблер длин прицепить, чтобы количество байт в прологе просчитывалось автоматически.
А еще лучше воспользоваться готовым решением типа
MinHook

Добавлено через 45 минут
асм вставки надо вообще избегать, пользоваться ими только где это действительно необходимо. В x64 тебе пришлось бы колхозить через .asm файл, а это то еще веселье)

Последний раз редактировалось Dino; 19.11.2024 в 21:46. Причина: Добавлено сообщение
 
Ответить с цитированием
Сказали спасибо:
Diantro (19.11.2024)