ПолезностиИсключительно для полезных тем из других разделов. Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.
htozdes, какие функции у тебя перехвачены? Нам то нужны самые заветные, AddNetworkQue и т.д. недумаю что фрост проверяет хут какой нибудь там прорисовки чего то.
Да и вообще нафиг хватать более 100 функций если все основное управление клиентом можно производить пакетами?
И еще, когда юзал сплайсинг - длл у меня была сделана на делфи.
Когда перешел на VisualStudio и заюзал другой метод, баны сразу прекратились. Возможно библиотека AdvApiHook мистера покойного Rema слишком общеизвестная и фрост выкупал просто по наличию определенной последовательности машинного кода загруженного в память процесса Л2.
AddNetworkQueue иногда не срабатывает.
Был у нас местный сервак, где защита была сделана через
правку на лету той-же engine.dll. Уже не помню точно,
но патчилась таблица вызовов обработки пакетов и еще чего-то.
Пришлось перехватывать неэкспортируемую функцию, которые
вызывают все функции разбора пакетов.
Функция обработки хука выглядела страшно -
void UserHookerParseServerPacket(DWORD SavedEAX, PDWORD StackPtr)
{
DWORD SavedRet=0;
DWORD SavedArg0=0;
DWORD SavedArg4=0;
static char str[200];
char *name;
if (StackPtr) SavedRet=*(StackPtr)-(DWORD)hEngineDll+0x2550000;
if (StackPtr+1) SavedArg0=*(StackPtr+1); //Parent_Class_Addr
if (StackPtr+2) SavedArg4=*(StackPtr+2); //parse mask
if (SavedRet == 0x28C591F) name="MacroList";
else if ((SavedRet >= 0x28C5932) && (SavedRet <= 0x28C5A41)) name=0;
else if (SavedRet == 0x28C9AAA) name="SkillList";
else if (SavedRet == 0x28C9B3A) name=0;
else if (SavedRet == 0x28CA290) name="SayPacket2";
else if (SavedRet == 0x28CA31F) name=0;
else if (SavedRet == 0x28CB0B0) name="ShortCutInit";
else if ((SavedRet >= 0x28CB0F4) && (SavedRet <= 0x028CB28B)) name=0;
Но это было давно...
А сейчас вот на офе, при переходе на Фрею изменился формат
пакета CharInfo. Не кардинально, но изменился - Скорость бега стал браться неправильно. Я по дампу пакета нашел и подправил код.
Но может где есть уже описание пакетов Фреи ?
Дальше... Название предметов я надеюсь в будущем брать из клиента
а не из настроечных файлов, а то некоторых нет.
Надеюсь на функцию -
(FARPROC&) UObject__GetName = GetProcAddress(hCore, "?GetName@UObject@@QBEPBGXZ");
И последнее. Может откроете тайну рисования непосредственно в окне клиента. А то в отдельном окошечке приходится карту рисовать.
htozdes, какие функции у тебя перехвачены? Нам то нужны самые заветные, AddNetworkQue и т.д. недумаю что фрост проверяет хут какой нибудь там прорисовки чего то.
Да и вообще нафиг хватать более 100 функций если все основное управление клиентом можно производить пакетами?
И еще, когда юзал сплайсинг - длл у меня была сделана на делфи.
Когда перешел на VisualStudio и заюзал другой метод, баны сразу прекратились. Возможно библиотека AdvApiHook мистера покойного Rema слишком общеизвестная и фрост выкупал просто по наличию определенной последовательности машинного кода загруженного в память процесса Л2.
блин а какая разница делфи/си? ) сплайсинг он и в африке сплайсинг - Е9 и 4 байта адреса куда прыгать в начале функции - явный признак поставленого на нее хука
пока нашел другой метод хука,работает, осталось потестить на предмет банов)
Добавлено через 6 минут
Цитата:
Сообщение от Эдвадко
И последнее. Может откроете тайну рисования непосредственно в окне клиента. А то в отдельном окошечке приходится карту рисовать.
Morfik, сплайсинг по моему не обязательно через джамп делается, можно и через кал (но тогда потребуется дополнительный код в начале нашей функции) и через пуч + рет (но этот вариант занимает 6 байт а не 5 в начале перехватываемой функции)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Morfik, сплайсинг по моему не обязательно через джамп делается, можно и через кал (но тогда потребуется дополнительный код в начале нашей функции) и через пуч + рет (но этот вариант занимает 6 байт а не 5 в начале перехватываемой функции)
В любом случае норм функции с E9 (джамп) и 15FF(колл) не начинаються вообщем спалить сам факт хука несложно.
Morfik, с джампа возможно, а вот калом и уж тем более пучем спокойно, хотя да, спалить не сложно если знать где искать, а вот если не знать хер спалишь
я например одну функцию хукаю не в начале а посередине ибо там данные в более удобной форме, и вот посмотрел бы я как фрост это палить будет не зная конекретно где я хук поставил
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Последний раз редактировалось xkor, 30.07.2010 в 04:27.
xkor, при желании думаю не сложно спалить. Почему бы фросту не проверять все тело критических функций на предмет совпадения с оригиналом, ну так чек сумму какую нибудь сверял бы куска кода.
Добавлено через 6 минут Morfik, ты не хотел бы еще немного поработать над стабильностью работы своей программы, а то я и много знакомых ее недавно купили в панике обновления 20.07 но теперь ей не пользуемся. С ней ну слишком часто клиент л2 падает с критом (субьективно с аси критует гораздо реже). Видимо в длл ты что то не предусмотрел.
Добавлено через 6 минут Morfik, ты не хотел бы еще немного поработать над стабильностью работы своей программы, а то я и много знакомых ее недавно купили в панике обновления 20.07 но теперь ей не пользуемся. С ней ну слишком часто клиент л2 падает с критом (субьективно с аси критует гораздо реже). Видимо в длл ты что то не предусмотрел.
Пока не напишут больше конкретики с какими опциями и с каким текстом крита летают - помоч наврятли смогу.
И вообще это не место для ее обсуждения так что сори за оффтоп
Последний раз редактировалось Morfik, 30.07.2010 в 13:40.
Morfik, с джампа возможно, а вот калом и уж тем более пучем спокойно, хотя да, спалить не сложно если знать где искать, а вот если не знать хер спалишь
я например одну функцию хукаю не в начале а посередине ибо там данные в более удобной форме, и вот посмотрел бы я как фрост это палить будет не зная конекретно где я хук поставил
А ты когда хук делаешь VirtualProtect и т.п. зовешь?
Если да, то могут легко спалить захучив его. Более того тестить то они могут на любой ОС, в часности на x32, где хук можно и в драйвер засунуть.
Цитата:
xkor, при желании думаю не сложно спалить. Почему бы фросту не проверять все тело критических функций на предмет совпадения с оригиналом, ну так чек сумму какую нибудь сверял бы куска кода.
Не знаю как в самом фросте, но вот код линеечных функций немного динамический. Т.е. там суются nop'ы в случайные места, каждый раз в разные.