Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+5 невидимых)

 eXeL@B —› Основной форум —› Помогите с Olly 2
Посл.ответ Сообщение

Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 14 декабря 2004 06:45
· Личное сообщение · #1

А то закрыли тему неожиданно....

-----------------------
Я гляжу, тут сильно Олю нахваливают. Может подскажете, аттачусь к hl.exe с внедренным в него Cheating Death client'ом 4.25.0, и усе. hl зависает, Оля зависает и только ресет поможет их снять. CD как то сечет, что запущен SoftIce, не пойму как, поэтому начал искать альтернативы, но, похоже проще будет с SIce-ом всё-таки.




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 14 декабря 2004 07:08
· Личное сообщение · #2

А ты зачем созда тему, если проще с сайсом?
ттачусь к hl.exe
К играм(крупным) не аттачатся



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 14 декабря 2004 08:54
· Личное сообщение · #3

----------------------------------------------------
Cheating Death client'ом 4.25.0
Это типа лоадер или чё? Если лоадер, он открывает прогу с привелегиями отладки и х.. ты к ней приатачишься! Я как понял ты хочешь приаттачиться к полноэкранной игре Поставь хот галку в настройках, чтобы оля стала по верх всех(все не на Оле, а Оля на всех
----------------------------------------------------

Аттач то проходит, но все нитки суспендед и не резюмятся То есть по адресному пространству ползать можно, но как в иде - статично. И иногда виснет при попытке остановить отладку.

CD - это лоадер, но после внедрения его длл в контру основной процесс можно закрывать он функциональности особой не несет. А вот та внедренная длл с закрученной функцией, которая отвечает за регистрацию клиента на серваке и она не хотит корректно работать если включен SIce.

Игру я делаю в оконном режиме, для удобства.

Дак значит Olly в этом случае не прокатит? Жаль, я думал раз уж коммерческие протекторы под ним пускают, то он смогет...




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 14 декабря 2004 09:01
· Личное сообщение · #4

ant_man пишет:
Дак значит Olly в этом случае не прокатит? Жаль, я думал раз уж коммерческие протекторы под ним пускают, то он смогет...

Комерческие протекторы почти под всем ложатся! На олю нех.. гнать - супер отладчик. Если уметь им пользоваться, тогда и HEX редактор не нужен и вообще нех не нужно...



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 14 декабря 2004 09:19
· Личное сообщение · #5

Я ж не спорю - если уметь, можно и в хекс. А если нет, то надо что-нибудь незаметно живучее, вовремя всплывающее и брякающееся где надо.
Если говорить конкретно, то надо узнать чем занимается функция той длл по адресу 0x7fe010e0 в процессе hl. Но там куча SEH, INT3, RDTSC и мож еще что. И когда запущен SoftIce ничего полезного функция не делает, что резко усложняет задачу - непонятно где копать.

А с Olly еще и умудриться надо до 0x7fe010e0 живым добраться Расскажите как



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 14 декабря 2004 09:27
· Личное сообщение · #6

ant_man пишет:
0x7fe010e0 в процессе hl.

что-то не похож этот адрес на юзеровский код. Хотя фиг знает - теоретически он в первых 2 гигах.



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 14 декабря 2004 09:37
· Личное сообщение · #7

ant_man
это системная библиотека, кернел какой-нибудь

-----
Подписи - ЗЛО! Нужно убирать!





Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 14 декабря 2004 12:48
· Личное сообщение · #8

ant_man
эх, вот читеров развелось =) играй честно !



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 14 декабря 2004 12:54
· Личное сообщение · #9

что вы меня пугаетиити я уж думал перегрелся на жарком уральском солнце. не, всё прально. мод кернеля 0x7c570000. а код CD 0x7fe00000 - 0x7ff92000. может это только у меня в win2000 SP4 так? не знаю. Может дело в том, что это не совсем длл, cdeath.exe мониторит процессы и инжектирует в hl cd.dll, а та, в свою очередь, грузит упакованный файл непонятной структуры cd.bin и распаковывает его уже в те адреса.



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 14 декабря 2004 12:59
· Личное сообщение · #10

Mario555 пишет:
эх, вот читеров развелось =) играй честно !


я не читерил и не собираюсь, было любопытно разобраться что за защита. а теперь, когда стало известно, что CD с софтайсом не дружит - как я буду отлаживать и играть в CS?! перезагружаться? за державу, короче, обидно.



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 декабря 2004 03:09
· Личное сообщение · #11

CD какой версии? Какая ОС? Под ХР с айсом CD 4.25 работает. Вчера проверил еще и с Olly - нормально аттачится.
Защита там простая - проверки кода некоторых функций hl (путем checksum), проверка кода самой CD (сравнение с оригинальным кодом, который лежит чуть выше (для адресов 0х7fexxxxx оригинальный код лежит в 0x7ffxxxxx) + checksum на этот код, ну и проверки кода, который вызывает экспортируемые энжином функции.
Впрочем, я разбирался достаточно давно (где-то с версией 4.1х), но не думаю, что там что-то кардинально поменялось.



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 15 декабря 2004 05:09
· Личное сообщение · #12

Как я уже писал,
CD 4.25.0
WIN2K ws SP4 (пробовал на сервере - тоже)

Ты как проверял, к серваку с защитой подключался? не кикает?
А в Olly после аттача процесс дальше отпускается?



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 декабря 2004 06:11 · Поправил: KATEHOK
· Личное сообщение · #13

Да, отпускается. Только пришлось убрать бряки по эвентам (кроме int 3), иначе начинались глюки. Но я запускал HL в полноэкранном режиме; может, глюки из-за этого.
Да, с айсом я работал еще под чистой ХР (без сервис паков), а с Olly - уже под ХР SP1.
Ты как проверял, к серваку с защитой подключался? не кикает?
А что, собственно, проверять? Я защиту не отключал - гиморно все это, т.к. вычисленные checksum'ы используются в обмене между клиентской и серверной частями CD (точно не скажу, но мне так показалось).
А что нужно-то? Сэмулировать работу CD?



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 15 декабря 2004 06:59
· Личное сообщение · #14

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

Проверял что он делает в SEH с DRx так

bpmb место_в_ядре_call_to_seh x do "bc1;bpmb @(esp+4*2)+1c;x;" //убрать старый бряк, поставить новый на DR7 в CONTEXT.

не словило ничего - значит, кажись с DR операций нет... че еще копнуть, реестр попробую. от MeltIce айсекст должен железно беречь...



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 декабря 2004 07:42 · Поправил: KATEHOK
· Личное сообщение · #15

По идее, CD DRx регистры не трогает, т.к. под NT нужны права администратора, чтобы их изменить (или я ошибаюсь? Впрочем, в ring0 он точно не лезет). Можно написать небольшой драйвер, который бы перехватывал обращение к этим регистрам (аппаратно) и выводил что-нибудь
А точно CD перестает работать, может, он детектит простые точки останова на защищаемом коде (или установленные хуки)?
Могу сегодня вечером проверить.
ЗЫ Все-таки мне кажется, что айс он не детектит.



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 15 декабря 2004 08:09
· Личное сообщение · #16

я без всяких бряков в фоне держу айс - сервер кикает. без айса всё на ура.




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 15 декабря 2004 08:35
· Личное сообщение · #17

KATEHOK пишет:
DRx регистры не трогает, т.к. под NT нужны права администратора, чтобы их изменить

гыгы



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 декабря 2004 09:54
· Личное сообщение · #18

Mario555
Уверены, что стандартный Гость сможет получить хендл нити с правами THREAD_SET_CONTEXT? Я не уверен, что, собственно, и написал.
Или Вы знаете другой способ записи в DR регистры (не прыгая в ring0)? Или как прыгнуть в ring0 (мне под Гостем не удавалось открыть \device\physicalmemory)?



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 15 декабря 2004 10:02
· Личное сообщение · #19

KATEHOK
Дык это, SEH используй, в обработчике except_handler получишь доступ к структуре CONTEXT и можно писАть в dr регистры.




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 15 декабря 2004 10:09
· Личное сообщение · #20

KATEHOK
ну вот, Asterix меня опередил =)
пиши в структуру CONTEXT... после выхода из обработчика записанные значение окажутся в DRx.

KATEHOK пишет:
способ записи в DR регистры (не прыгая в ring0)

а там по-любому только в ринг0... просто мы может записать в структуру CONTEXT а винда там уже сама это в DRx запишет (ессно на уровне ринг0).



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 декабря 2004 05:36
· Личное сообщение · #21

ant_man
Все работает, с сервера не кикает.
Правда, если несколько раза вызвать айс (HL в полноэкранном режиме), начинает бажить управление

Asterix
Mario555
SEH - это, конечно, хорошо. Но разве эти регистры не уникальны для каждой нити (другими словами, они должны переписаться при переключении на другую нить)? Тогда придется как-то встраивать обработчик исключений в чужую нить (как?), суспендить ее, патчить по адресу EIP (или как-нибудь еще вызвать исключение), резюмить, и т.д. Геморрой еще тот.
Хотя у меня есть подозрение, что для ХР SP1 регистры DR одни и те же внутри каждого процесса.



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 16 декабря 2004 05:54
· Личное сообщение · #22

KATEHOK пишет:
Все работает, с сервера не кикает.
Правда, если несколько раза вызвать айс (HL в полноэкранном режиме), начинает бажить управление


Хм. Значит это только мне так "повезло".
Какой у тебя айс, чем скрываешь?



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 16 декабря 2004 05:57
· Личное сообщение · #23

KATEHOK пишет:
SEH - это, конечно, хорошо. Но разве эти регистры не уникальны для каждой нити (другими словами, они должны переписаться при переключении на другую нить)? Тогда придется как-то встраивать обработчик исключений в чужую нить (как?)


Зачем чужую нить суспендить, если айс в твоей шарит?



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 16 декабря 2004 06:24
· Личное сообщение · #24

Помнится, попадалась мне как-то утилита, которая показывала какими способами она смогла обнаружить в системе айс. Не подскажете как она зовется? Может есть что-нибудь подобное?



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 декабря 2004 06:34
· Личное сообщение · #25

Айс из Driver Studio 3.1 (почти полная) + IceExt 0.65. Ничем не скрываю (!protect on юзаю вручную, когда понадобится). Все работает под WinXP SP1 (rus). Osinfo.dat скачан с нумеги.

Зачем чужую нить суспендить, если айс в твоей шарит?
Ну, как там айс шарит, дело темное. Ведь если установть аппаратный бряк, например, на функцию из kernel32.dll, то брякаться будут все нити. Но, похоже, это иногда не нравится винде, и бряки не срабатывают
Как винда обрабатывает эти регистры при переключении нитей - фиг знает. Но в Win2k SP1 аппаратные точки останова действовали во всех адресных пространствах (Гунински даже эксплоит написал, который рушил lsass.exe и захватывал именованный канал), но эту проблему решили SP2 (или SP3?). Как - интересный вопрос.

Кстати, никто не в курсе, как перехватить переключение на нужную нить и как самому принудительно переключиться? Может, ссылки полезные есть



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 16 декабря 2004 12:19
· Личное сообщение · #26

ant_man пишет:
Помнится, попадалась мне как-то утилита, которая показывала какими способами она смогла обнаружить в системе айс.


Нашел, это detect.exe из пакета NtDump, но она старая. Пишет, что ничего не находит...



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 19 декабря 2004 14:46
· Личное сообщение · #27

Короче, действительно, в WinXP такой ерунды нет и активный ICE не влияет на работу защищенной функции. Надо будет еще поразбираться в чем здесь дело, если лень не одолеет
KATEHOK, thanks for advice.

PS. А имитатор CD4.25.0 получился.


 eXeL@B —› Основной форум —› Помогите с Olly 2
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати