Для чего патчится клиент при запуске инжекта?

General Injection issues

Moderators: Murderator+, Murderator

Post Reply
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Для чего патчится клиент при запуске инжекта?

Post by J17 »

Поковырял я тут немного исходники инжекта, которые когда-то выложил Yoko...
При запуске клиента, происходит его патчинг вот таким способом:

Code: Select all

for(int i = 0; i < num_elements; i++)
{
    DWORD oldProtect;
    if(VirtualProtect(reinterpret_cast<LPVOID>(elem->m_address),
            elem->m_length, PAGE_READWRITE, &oldProtect) == 0)
    {
        api_error("Failed to patch (page protection)");
        error = 1;
        break;
    }
    CopyMemory(reinterpret_cast<unsigned char *>(elem->m_address),
        elem->m_buffer, elem->m_length);
    elem++;
}

В этом цикле изменяются несколько байтов, описанные в Ignition.cfg.
После пропатчивания устанавливаются хуки на сокеты.
По идее, всё должно работать и без этого пропатчивания (или я чего-то недопонимаю?)... Для чего оно нужно?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Дык инже же надо как-то перехватывать трафик между клиентом и сервером. Я думаю, эти правки с этим и связаны. Чтобы клиент отправлял трафик не серверу, а инже, и получал от нее.
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

Наверное, всё-таки это для чего-то другого. Патчем изменяются только три байта - в 3 байта, мне кажется, вряд ли можно уместить перехват трафика... Инжект, вроде, вмешивается в протокол через хуки на сокеты.
Fall0ut
Expert!
Posts: 46
Joined: 2005-01-19 11:58:09

Post by Fall0ut »

Ну так раз уж интирестно...

1) Патчиться крипт то бишь чтоб инжект получил трафик от клиента в чистом виде а не шифрованый.... (поэтому так мало байтиков патчим +) сообсвенно а нам много и не надо (С))
2) Да патчиться таблица импорта клиента и в адреса всок функций пишуться адреса инжектовских функций чтоб собсвенно говоря
а)Получать трафик от клиента
б)"Заставлять" клиент думать что пришел трафик
в)Эмулировать приход трафика..
3)Инжекшан это собсвенно говря injection.dll а не ЕХЕ... так что вот... это так если кому интиресно... а ЕХЕ это загрузчик библиотеки (самого инжекта) в адресное пространтсво клиента и патчер крипта... вотс...
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

Fall0ut wrote:1) Патчиться крипт то бишь чтоб инжект получил трафик от клиента в чистом виде а не шифрованый....

То бишь, расшифровкой трафика занимается только клиент, а инжект берет уже всё готовое? Если так, то зачем на главной закладке инжекта нужно выбрать Encryption?..
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

патчинг это пережиток старины
преданья старины былинной

инжект вырос из небольшой нашлёпки на программу Ignition, смыслом которой было снимать энкрипт с протокола для фришардов.

ну а если уже идёт чистый поток, почему бы его не читать?

а если читать то почему бы и не изменять?

ну и так далее.
вполне реально не делать никаких патчингов а расшифровывать/зашифровывать протокол полностью.
но так уж исторически сложилось что инжект частично делает шифрование, а частично отключает его в клиенте.
Fall0ut
Expert!
Posts: 46
Joined: 2005-01-19 11:58:09

Post by Fall0ut »

Да новые технологии довно можно использовать только надо оно кому?... сомневаюсь...
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

надо
мне например
новая версия которую я начал делать с нуля когда-то воплощает все новые технологии что я знаю, в том числе отсутствие патчей, но за неимением времени я пока разработку забросил
J17
Posts: 69
Joined: 2005-01-16 13:44:08
Location: Moscow
Contact:

Post by J17 »

Супер!
А есть ли надежда, что разработка продолжится?
Может быть, нужна помощь?
Post Reply