PDA

Просмотр полной версии : LG


mira
30.05.2011, 12:13
Ктонить смарел че в леймгварде накрутили новых версиях? Ранше апдейтер запускал бин. Щас апдейтер запускает л2.ехе, тот выполняет какието маневры пресекающие инжект и грузит бин. Причем запускает его както нестандартно

Nickers
30.05.2011, 13:20
И че, не обходится? Виртуалку запускай.

mira
30.05.2011, 13:36
Да мне нежно занижектить надо а необходить ниче, и без инжекции во все процессы.
На вм разве лейм работает еще)

supernewbie
30.05.2011, 14:06
это где такой лейм?

mira
30.05.2011, 14:39
это где такой лейм?

overworld например, да и на большинсве фришек он щас.

supernewbie
30.05.2011, 14:53
я хз, у меня норм инжектится на оверворлд

Добавлено через 1 минуту
правда с отправкой какая-то лажа, но щас не до этого

фрост совсем ахренел...

Добавлено через 4 минуты
ну блин наф ты меня заставил на оверворлд зайти, теперь придется отправку там фиксить...

mira
30.05.2011, 15:39
Так ты скорей всего инжектиш в уже запущеный процесс или какойнить wininit

supernewbie
30.05.2011, 15:50
ну, а ты как инжектишь?

mira
30.05.2011, 16:01
Лоадером

supernewbie
30.05.2011, 16:03
ну и зря

Denever
30.05.2011, 18:33
Если вы говорите про _l2.overworld.su то этот сервер держит сам разработчик LameGuard - Ubus ICQ: 348778607 :)

mira
30.05.2011, 18:37
а про него. разобралса чяе там за хитрость)

destructor
30.05.2011, 21:54
ну рассказывай

kuzenbot
30.05.2011, 22:00
и правда рассказывай, люди ждут )):confused:я дестра уже в доску достал с этим сервером ))

SeregaZ
30.05.2011, 22:05
ну ну... расскажет он :) нельзя рассказывать, завтра админ поменяет алгоритм и трындец. пусть думает что никто еще не догадался где собака порылась.

destructor
30.05.2011, 22:06
там уже менять особо некуда

mira
31.05.2011, 01:29
апдейтю оверворлд посмотрим что там. на PvPWorld вроде норм

Добавлено через 29 минут
УХХАХАХА маньяки))) вообще весь SendPacket заменили прямо в объекте
видимо надоело им сплайсить функцию врезая шифровалки
щас там просто прыжок в полиморфа - вот и весь сендпакет

Добавлено через 2 минуты

588072D4: E9A7C01400jmp 58953380h
588072D9: B9E8D333CAmov ecx, CA33D3E8h
588072DE: E2A0 loop 58807280h
588072E0: 9D popfd
588072E1: 46 inc esi
588072E2: 06 push es
588072E3: 0E push cs
588072E4: B707 mov bh, 07h
588072E6: 85556D test edx, [ebp+6Dh]
588072E9: 00D4 add ah, dl
588072EB: F25C repnz pop esp
588072ED: E496 in al, 96h

довольно непривычное начало сендпакета, неговоря уже про адреса =))

xkor
31.05.2011, 01:35
щас там просто прыжок в полиморфа - вот и весь сендпакетчто никак не защищает от установки ловушки перед этим прыжком)

mira
31.05.2011, 01:37
что никак не защищает от установки ловушки перед этим прыжком)
да нет канечно, просто позабавила их новинка

supernewbie
31.05.2011, 09:58
пакеты отправлять то можешь? а то у меня хня какая-то

Nickers
31.05.2011, 10:51
Епт куда я нуб лезу... 1) Вы ведь про ПХ ж? 2) Вы про подключение или про Шифрацию??

mira
31.05.2011, 10:58
Не пробывал. Мне надо переписывать процедуру перехвата исходящих иза такова поворота)

а какие симптомы?

supernewbie
31.05.2011, 11:03
крайне плачевные, эти ребята палят вызовы, причём очень удачно

mira
31.05.2011, 11:03
Причем тут пх. 1) У меня его никогда не было 2)пх мертв и память о нем поддерживают лиш фришки с 200 онлайна

supernewbie
31.05.2011, 11:05
догадки две и обе они ещё плачевнее, чем симптом

Добавлено через 1 минуту
есть 2 разновидности реакции на вызовы из длл, в 1 клиент закрывается, в 2 сбиывается шифр..

ну вернее вызов то идет есесна из енжини, короче мой вызов)

mira
31.05.2011, 11:13
Не пробывал. Мне надо переписывать процедуру перехвата исходящих иза такова поворота)

а какие симптомы?

крайне плачевные, эти ребята палят вызовы, причём очень удачно

хукни апи getthreadcontext луше в нативе и глянь вызывают ли его при сенде

Добавлено через 7 минут
Я бы там 100500 сделал бы проверку тоже, 2 вариант - лезть глубже в стек (кривой путь) проверять адреса возврата на точное соответствие рутинам - тоже гемор/тормоза +легко проверить

supernewbie
31.05.2011, 11:18
хук поставил туда, терь ваще клиент закрывается

Добавлено через 1 минуту
а щас не закрылся, странна

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

ну даже если они палят поток, то как сделать вызов из потока игры?

а если стек? мне че его подделывать придется?)

они там совсем ахренели)

mira
31.05.2011, 11:42
Я говорю хукни в нтдлл то что вызывает геттредконтекст, так какоито околоядерный аналог ntххх. если он вызываетса сам знаеш че делать ну или в асю стукни

Добавлено через 7 минут
Или getcurrentthreadid например. Че им мешает юзать в качестве одного из ключей шифра ид потока. Он в системе уникален и в рамках сессии

supernewbie
31.05.2011, 11:51
ыыы, юзают падлы

не то хукал)

getthreadcontext юзают)

че он возвращает то?

mira
31.05.2011, 11:59
Не заморачивайся. Запомни ид потока в оконной процедуре клиента и возвращай его ид или контекст в хуке

Добавлено через 3 минуты
Если проверка не глубокая то прокатит. Если глубокая билди фейковый из контекста твоего потока + клиента

supernewbie
31.05.2011, 12:05
как узнать контекст потока? а то че ему возвращать та

Добавлено через 1 минуту
и ваще какие параметры то там, вроде функции хендл и вар поинтер передают да, во вторую надо пихнуть поинтер на контекст или че там

mira
31.05.2011, 12:09
Напиши мне из микрософт описание функи я непомню наугад

supernewbie
31.05.2011, 12:10
да уже нашёл, там NtGetContextThread(h:Handle; var c:_CONTEXT); stdcall;

mira
31.05.2011, 12:15
Ну вот узнаеш хандл оконного треда клиента и в хуке вызываеш гетконтекст но с хандлом потока клиента

Добавлено через 2 минуты
И соответственно защите вернетса контекст легинтный. Но желательно также проверять откуда вызван гетконтекст. Гдето такая подмена может быть невтему и все рухнет)

supernewbie
31.05.2011, 12:23
я говорю, он вызывает его 1 раз, хз для чего
по-моему ему ваще на контекст пох

Добавлено через 3 минуты
мб на зв поставить ещё..

mira
31.05.2011, 12:25
Если не при каждом сенде значит пох. Хукай геткуренттредид еще

Добавлено через 1 минуту
Зв тоже проверяй, они это любят)

supernewbie
31.05.2011, 12:28
вызывают вместе 1 раз оба их, зачем - я хз..

GetCurrentProcessId че-та ваще не могу в экспорте нтдлла найти

mira
31.05.2011, 12:33
Хотя тоже не факт что чето даст. Геттредконтекст можно вообще можно сделать парой асм инструкций или получить ид ниче не вызывая)
и соответсвенно узнать всю поднаготную о потоке но это уже недокументированый прием и разрабам следует этого избегать

Добавлено через 3 минуты
А ее там и нет) глянь че в кернеле. Там пара маневров которые мона сделать самому без вызова. Контекст потока всегда лежит в регистре самого потока а в нем и ид

supernewbie
31.05.2011, 12:35
в каком регистре?

mira
31.05.2011, 12:43
Да непомню дизасемблируй кернеловский геткуренттредид. Там чето типа lea ххх, es: edi
это загрузка контекста указателя на структуру TEB (Thread environment block)

supernewbie
31.05.2011, 12:44
блин, этот геткуренттредид вызывают постоянно, и не один поток)

mira
31.05.2011, 12:56
Если они так читают теб то те проще из потока клиента вызывать.. В теб 1фиг понятно че за нить своя/чужая

Добавлено через 9 минут
Так в хуке вызови оригинал. Проверь если вызвани из твоего потока значит проверка и суй ему ид клиентсково.

Добавлено через 57 секунд
Для других нитей прозрачно сделай

destructor
31.05.2011, 12:59
там проверка стека, очень простая
if $2000000 < retaddr <$2050000 then читар!!1 //както так.

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

mira
31.05.2011, 13:04
Это раз они не ограничились проверкой стека, про него знает каждый 2ой читерок.
А кроме проверки контекста и ид потока больше нет метод узнать whois. Такчто поспорю

supernewbie
31.05.2011, 13:10
там проверка стека, очень простая
if $2000000 < retaddr <$2050000 then читар!!1 //както так.

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

Добавлено через 31 секунду
как что-то вызывать из конкретного потока??

Добавлено через 2 минуты
слушайте у меня идея..

mira
31.05.2011, 13:12
1 способ хукнуть поток гденить и выбирать по принцыпу сообщений задания из очереди на отправку. Надежно но навернеяка очень медленно,пока он дойдет до хука может быть чемто занет или ваще в вайте

destructor
31.05.2011, 13:18
А кроме проверки контекста и ид потока больше нет метод узнать whois. стартовый адрес потока?)

mira
31.05.2011, 13:19
2. Через
стоптред-гетконтекст-сетконтекст(с еип моей процедуры)-резюме-стоптред-сетконтекст(старый)-резюме.
Быстрый но чреват крашами и рядом проблем

destructor
31.05.2011, 13:19
быть чемто занет или ваще в вайтетогда линейка повиснет:)

mira
31.05.2011, 13:33
Стартовые адреса итд это из контекста. Как ты еще узнаеш?

Добавлено через 2 минуты
Не повиснет. В хуке проверяеш есть ли в очереди пакеты. Если есть шлеш и продолжаеш. Если нет сразу продолжаеш

Добавлено через 8 минут
Я про то что поток клиента сам может ждать например wm_message и пока чето его не толнет непрокрутит хук

Добавлено через 2 минуты
Такчто хз луше попробывать прикрыть свой тред или инвалидно юзать нужный.

supernewbie
31.05.2011, 13:45
аще капец

mira
31.05.2011, 13:49
Ну еще минивариант проверять адрес строки формата которые "cddc" они в енгине по фиксед адресам а у нас из мемори манагера делфи )

supernewbie
31.05.2011, 13:50
ну строка давно у всех в енжини ;)

они кстати реально её проверяют

mira
31.05.2011, 13:57
Ну че невыходит каменный цветок?)

supernewbie
31.05.2011, 14:02
ну я вот намудрил такую хрень...

создавать заслипеный поток, сувать ему в ecx UnetworkHandler и грить ему чтобы начинал с какого-нибудь метода посылающий пакет, но че-то не выходит, видимо не кладеца в ecx..

пытался код процедуры сующий в есх ютневоркхендлер засовывать в енжини, все равно че-то ему не нраица

Добавлено через 1 минуту
выглядит это так..

p1:=GetProcAddress(hEngine, '?RequestItemList@UNetworkHandler@@UAEHXZ');
thh:=CreateThread(nil, 0, @p1, nil, CREATE_SUSPENDED, c);
GetThreadContext(thh,con);
con.Ecx:=UNetworkHandler;
SetThreadContext(thh,con);
ResumeThread(thh);

mira
31.05.2011, 14:06
В чем отличие от вызова из другова потока? Не пробывал вызывать скажем не сендпакет а рутины сами типа реквесттаргеткансел?

supernewbie
31.05.2011, 14:09
чтобы начинал с какого-нибудь метода посылающий пакет
пробовал

mira
31.05.2011, 14:13
Там разве нече больше ненадо кроме есх? Да и если защита проверит поток она офигеет же))

Добавлено через 3 минуты
Ну если защита палит вызов из этих рутин то явно проверяют тред а не стек итд. Я к сожелению ненаю правила вызова этих функов ибо не юзал.

supernewbie
31.05.2011, 14:19
тока есх и усё им нужен, ну и есесна свои параметры там, иды какие-нибудь
а как ты определил что не стек? можно же отследить адреса возвратов? или нельзя?

mira
31.05.2011, 14:33
Они запарятса делать проверку адреса возврата на несколько уровней вниз. Первый еще ладно он в есп, остальные как попало в зависимости от числа параметров. У тя первый адрес возврата будет в рутину клиента

supernewbie
31.05.2011, 14:53
Они запарятса делать проверку адреса возврата на несколько уровней вниз
да? может там опять есть че-то типо ZwGetCurrentThreadAllRetAddress или ваще ZwGetSomeL2Cheater из какого-нибудь кернела тридцать два!
откуда мне знать)

mira
31.05.2011, 15:53
Нада попробывать вызвать из родного потока в любом случае для теста а далее будет видно че проверяют примерно.

supernewbie
31.05.2011, 16:25
надо бы..

mira
31.05.2011, 18:23
проверил) шутдаун клиента.
ну строка формата у меня палевая это да

destructor
31.05.2011, 18:37
mira, как там стандартный инжект блочат?

mira
31.05.2011, 19:02
никак. все норм с этим

Добавлено через 59 секунд
при отправке пакета сначало долгий затуп (видимо собирают и отправляют компрамат =)))))
потом выкидывает. но длительное время еще можно стоять и смареть как все бегают

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

supernewbie
31.05.2011, 19:28
лично я нашёл примерную область памяти где все эти строки и вписал наугад куда-то 'b' и пох)

destructor
31.05.2011, 19:41
вписывать не труЪ
надо найти строчку "сddb" и юзать ее адрес+3

supernewbie
31.05.2011, 19:54
не поверишь, в иде даже именно строку 'b' где-то видел

mira
01.06.2011, 11:28
Так. Возник вопрос!
Как тебе удалось получить кривую шифрацию из нового потока? У меня при любом раскладе клиент вдупляет и офаетса. Ну если вызвать я явно палевым адресом возврата то офаетса немедля.
И в чем выражалась у тебя неправильная шифриция

supernewbie
01.06.2011, 12:02
тем что я хожу а он пишет "неверное содержение регестрируемого рецепта"

попробуй создать новый поток, который начинается с вызова метода отправляющий пакет, скажем РеквестСкиллЛист

mira
01.06.2011, 12:09
Сбиваетса вся последующая шифрация после реквеста?

supernewbie
01.06.2011, 12:54
угу

destructor
01.06.2011, 13:05
mira, заюзай простеньку функцию типа ?RequestItemList@UNetworkHandler@@UAEHXZ

многое станет понятно

mira
01.06.2011, 17:41
А если скажем создав нить и получив его хендл hthrd сделать
resume..
Waitforsingleobject(hthrd, 6000) функция вернетса с wait_object_0 или с wait_timeout?

очень странная догадка у меня..

Добавлено через 4 часа 25 минут
ну, пакет отправлен, сервер на него ответил. кика нет.

supernewbie
01.06.2011, 17:57
интересно) это ты просто ?RequestItemList@UNetworkHandler@@UAEHXZ вызвал?

Добавлено через 8 минут
шифр то точно не сбился потом? ходить мог?

mira
01.06.2011, 18:05
да. открылса инвентарь. побегал еще несколько раз вызвал.

диагноз :
1) проверяют caller-a досконально
(хз развертка стека или сопоставление адресов)
2) идентификация потока клиента. с другим потомком заканчиваетса печально это

supernewbie
01.06.2011, 18:31
т.е. вызывал из потока клиента, да?

mira
01.06.2011, 18:42
да. из других фейл

supernewbie
01.06.2011, 18:47
есть идеи по норм способу вызову из потока?

mira
01.06.2011, 22:18
да вот хз как замаскировать поток. такто дофига способов проверить

supernewbie
01.06.2011, 22:27
всё-таки маскировать решил, а из нужного никак без мучений нельзя?

mira
02.06.2011, 09:41
да можно из нужного. но мне не переписывать же о5 ядро)

Добавлено через 2 часа 55 минут
через сендпакет тоже отправляетса. но очень привередливо относитса к строкам формата =) например если в action('cdddc') сунуть свою - клиент офнетса. если из клиента нет. в RequestPledgeInfo('cd') наоборот =)))
хз чем объяснить эту закономерность, надоело уже =)

Добавлено через 7 часов 31 минуту
Я так понял вы эти строки тупо ишите в памяти енжини. Чето мне не нравитса эта тема - много строк может совпасть в один адрес. Среди свойств толи unetworkhandler (толи неэкспортируемого лоу-лвл unetwork) я находил свойство примерно такова формата:
somerec=record
unk:dword;
psfmt:pchar;
end
uobj.f : ^array[0..241]оf somerec
где к индексу применим ид пакета

supernewbie
02.06.2011, 12:33
action('cdddc') сунуть свою - клиент офнетса. если из клиента нет. в RequestPledgeInfo('cd') наоборот =)))
че значит наоборот) вырубается со своей строкой?) не вырубается?

mira
02.06.2011, 14:39
В случае пледж "cd" работает с моей строкой, а если из памяти енгине то рубит исходящий трафик и завершает работу клиента сек через 15.

похоже на то какбудто оно запоминает последний адрес строки и если какойто момент придет этотже реквест но с другим адресом защите аларм!!1

supernewbie
02.06.2011, 14:45
хах)

ах*енчик нах*й

Добавлено через 2 минуты
блин, срать ваще на этот нупский оверворлд, на руофе при запуске процесс л2 секунд 5 держится 104 кб, при инжекте ошибка, чеделать

mira
02.06.2011, 15:04
У меня нет клиента руоффа даже :) да тут обсуждать всеравно смысла нет. Гугль при запросах на эти темы форум кодер выдает один из первых :)

Guzh
03.06.2011, 14:02
Только в главном потоке можно вызвать? А если я, например, хукну DispatchNetworkQueue и буду отсылать в нем, то будет ли нормально посылаться?

supernewbie
03.06.2011, 14:18
весело будут посылатца, раз в секунду...
PS диспатч вроде в другом потоке или нет?

mira
03.06.2011, 14:26
весело будут посылатца, раз в секунду...
PS диспатч вроде в другом потоке или нет?

диспатч в этом. Адднетворк в сокетном. Диспатч зависит от фпса. У меня гдето 50-70 раз в сек вызываетса в активном. В неактивном окне фпс конски падает без фикса, вот и думайте.

supernewbie
03.06.2011, 14:32
да пля, какой же там может быть фикс :(

UEngine::StopDraw(void)?

слип потока какого-нибудь?

mira
03.06.2011, 14:39
В асю стукни скажу) на том форуме есть