Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

ничего не понимаю... %-(   Найти похожие ветки 

 
Ketmar ©   (2006-09-28 04:35) [0]

перехватываю CreateProcessW() (путём внедрения DLL и подмены первых байтиков на переход). запускаю таким макаром taskmgr.exe. подлый таск менеджер падает с обращением к адресу 0x1 (угу %-). причём падает где-то у себя в ливере. к перехваченым мной функциям за это вермя он ни разу не обращался.
не перехватываю эту функцию -- всё равботает.
помимо этой перехватчик хватает ещё и кучу других функций, конечно. с ними никаких проблем нет. с перехватом CreateProcessW() в других процессах проблем тоже нет. мистика.
может, кто-то хоть краем уха слышал о подобной фигне или натыкался сам? система Win2K Server, SP4. код, к сожалению, показать не могу, но на наводящие вопросы постараюсь ответить. %-)

зыж для тех, кто меня знает плохо: нет, это не вредоносный код. %-)


 
Ketmar ©   (2006-09-28 04:43) [1]

вдогон.
бьюсь вторые сутки. в тестовых программах и в других процессах всё работает. в taskmgr -- хоть тресни. а оставлять его без присмотра нельзя. запретить вызов тоже нельзя. надо именно перехватить. %-(

да, я в курсе, что CreateProcess() вызывает много других интересных функций (в том числе CreateProcessInternal(). но CreateProcessInternal() имеет разные параметры в разных системах, да и охота поянть, в чём именно баг. а то вылезет ещё где...


 
Ketmar ©   (2006-09-28 08:16) [2]

как я красиво туплю. поспать, что ли? конечно, без перехвата CreateProcessW() taskmgr не падает -- потому что в него нишиша не внедряют. %-)

так что проблема, похоже, ещё веселее. и не звучит ли она, часом, так: "как побороть защиту от перехвата api в taskmgr?" эли это, всё-таки, у меня в DNA баг? но ведь с десяток других тестовых софтин работает...


 
DeadMeat ©   (2006-09-28 08:20) [3]

DEP..?
Вот только не помню, есть ли он в Win2kServer.
Тестировал на WinXP_SP2.?


 
Alx_ ©   (2006-09-28 09:06) [4]

Было подобное. WinXP SP2. Тоже были проблемы именно с taskmgr.
Вылечил тем, что убрал из внедряемой DLL
все Unit - ы, кроме Windows и вызовы всех функций, которые "могут
подгружать DLL - ки"


 
Elen ©   (2006-09-28 09:24) [5]


> Ketmar

А в какой момент ты внедряешся? когда винда загружена? в каком кольце?


 
Ketmar ©   (2006-09-28 09:41) [6]

>[3] DeadMeat(c) 28-Sep-2006, 08:20
>DEP..?
хм. не понял...

>[4] Alx_(c) 28-Sep-2006, 09:06
>Вылечил тем, что убрал из внедряемой DLL
>все Unit - ы, кроме Windows и вызовы всех
>функций, которые "могут подгружать DLL - ки"
бр-р-р. нафига мне скелет внедрять? %-) к сожалению, такой вариант может и заработает, но совершенно меня не устраивает -- в перехватчиках достаточно сложная логика... %-((

>[5] Elen(c) 28-Sep-2006, 09:24
>А в какой момент ты внедряешся?
в теперешнем варианте -- в момент отрабатывания NtResumeThread(). раньше было -- CreateProcessXXX(). т.е. винда создаёт процесс, тут я радостно запускаю вместо основного потока программы свой (он подгружает DLL и делает много интересного), потом запускаю основной поток программы.
и тут-то долбанутый taskmgr и валится. причём валится где-то в ливере, который создаёт окна и занимается прочими абсолютно мне неинтересными вещами.

>в каком кольце?
натурально, в третьем. %-) драйвер ваять лениво.

есть-таки подозрение, что ему не нравится идея подгружения всяких дополнительных DLL... %-( сейчас попробую повыкидывать все, оставить только скелетик.


 
Elen ©   (2006-09-28 09:50) [7]


> Ketmar

Ты подумай - может быть  Win2k специально блокирует запись в память для него? где-то мне такая блокировка попадалась. если не изменяет память это обнаружили случайно софт айсом...


 
Ketmar ©   (2006-09-28 09:53) [8]

>[7] Elen(c) 28-Sep-2006, 09:50
>Ты подумай - может быть  Win2k специально
>блокирует запись в память для него?
не блокирует. проверено. в том-то всё и дело, что внедрение проходит нормально, после чего taskmgr мистически рушится. то ли он что-то хитрое проверяет, то ли там действительно конфликт каких-то DLL. фишка в том, что под user-mode отладчиком эта скотина вполне стартует. правда толку...

>такая блокировка попадалась.
неа, никакого "осбого статуса" у этой тварюки нет. %-)


 
Elen ©   (2006-09-28 09:56) [9]


> Ketmar

А он когда рушится какой нибудь error выдает? проверь чего там по этому адресу сидит.


 
Ketmar ©   (2006-09-28 09:59) [10]

>[9] Elen(c) 28-Sep-2006, 09:56
>А он когда рушится какой нибудь error выдает?
>проверь чего там по этому адресу сидит.
AV, естественно. причём из своего личного ливера. а в этом адресе сидит, как и следовало ожидать, разыменование. исследования "на скорую руку" показали какой-то совершенно бредовый код до этого. например, call, поле которого jmp, а потом продолжение процедуры. продираться дебаггером через весь taskmgr... увольте. это выше моих сил -- у меня психика слабая. %-) точнее, времени нет.


 
Elen ©   (2006-09-28 10:03) [11]


> Ketmar

А ты не пробовал патчить эти команды разименовывания? Может ты DLL приатачиваеш прямо в блок комманд работы со стеком или тебя треады имеют...


 
ZeroDivide ©   (2006-09-28 10:04) [12]

А что ты пытаешься сделать? Если запретить запуск процессов из taskmgr, то это можно сделать и грамотным, документированным образом.


 
Ketmar ©   (2006-09-28 10:07) [13]

>[11] Elen(c) 28-Sep-2006, 10:03
>А ты не пробовал патчить эти команды
>разименовывания?
это ещё более жестоко, нежели просто не позволять запускать taskmgr. %-)

>Может ты DLL приатачиваеш прямо
>в блок комманд работы со стеком или тебя треады
>имеют...
не может. винда не позволит такого сделать. %-)

>[12] ZeroDivide(c) 28-Sep-2006, 10:04
>А что ты пытаешься сделать? Если запретить запуск
>процессов из taskmgr, то это можно сделать и
>грамотным, документированным образом.
я в курсе. если бы делал для себя, то настроил бы политики -- и адью. но в данном случае особого выбора нет. к тому же перехватчик делает намного больше, нежели просто что-то запрещает и разрешает.


 
Elen ©   (2006-09-28 10:10) [14]


> Ketmar

А это только на Win2k проблема?


 
Ketmar ©   (2006-09-28 10:13) [15]

>[14] Elen(c) 28-Sep-2006, 10:10
>А это только на Win2k проблема?
я на других системах не проверял в силу их отсутствия. но это и не важно -- есл не работает на Win2K, то дальше проверять смысла нет. ибо должно пахать как минимум на 2K/XP. а на одной из них уже кирдык.


 
Elen ©   (2006-09-28 10:16) [16]


> Ketmar

Может тебе оставить этот менеджер в покое? чего такого нужно от него что заставляет радикально писать свой SP? Что другого перехват не подойдет?


 
Ketmar ©   (2006-09-28 10:19) [17]

>[16] Elen(c) 28-Sep-2006, 10:16
>Может тебе оставить этот менеджер в покое?
видишь ли... дело в том, что я пишу system-wide перехватчик. %-)
мало толку будет от такого перехвата, если он будет рушить процессы. всё должно быть прозрачно и красиво. я-бы оставил в покое, но ведь обязательно найдётся юзер, который этот taskmgr запустит. тут и будет удивительно. %-)


 
Игорь Шевченко ©   (2006-09-28 10:20) [18]

Мы код увидим или будем гадать на кофейной гуще, почему твой кривой перехват падает ?


 
Elen ©   (2006-09-28 10:24) [19]


>  я пишу system-wide

Проведи ЛикБез - че такое system-wide?


 
BiN ©   (2006-09-28 10:26) [20]


> Ketmar ©   (28.09.06 10:19) [17]
> видишь ли... дело в том, что я пишу system-wide перехватчик.
>  %-)

Делать это в юзер-моде, да еще путем правки пролога (существование которого в функциях не гарантированно) - зарабатывать прогрессирующий гемор. имо.


 
Ketmar ©   (2006-09-28 10:35) [21]

>[18] Игорь Шевченко(c) 28-Sep-2006, 10:20
>Мы код увидим или будем гадать на кофейной гуще,
>почему твой кривой перехват падает ?
не увидите, потому что код принадлежит не мне. %-( к сожалению. потому я и сказал, что готов описать алгоритмы, но не могу показать код. я понимаю, что после этого наиболее логично послать меня в сад. %-) собственно, такого посылания я ожидаю. но мало ли... %-)

>[19] Elen(c) 28-Sep-2006, 10:24
>Проведи ЛикБез - че такое system-wide?
перехват API во всех запущеных процессах. ну, почти во всех -- csrss я не трогаю. %-)

>[20] BiN(c) 28-Sep-2006, 10:26
>Делать это в юзер-моде, да еще путем правки
увы. драйвер, конечно, был бы лучше, но его я точно и за пол-года не сделаю. а сроки жмут. %-(

>пролога (существование которого в функциях не
>гарантированно) - зарабатывать прогрессирующий
>гемор. имо.
6 байтиков у меня есть всегда. а больше и не надо. %-)


 
Elen ©   (2006-09-28 10:38) [22]


> Ketmar

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


 
Ketmar ©   (2006-09-28 10:42) [23]

>[22] Elen(c) 28-Sep-2006, 10:38
>Но чем же тебе менеджер понадобился? не лови
>его... Почему нельзя обойтись без него
потому что он, падло, умеет делать NtTerminateProcess() и CreateProcess(). %-)


 
Elen ©   (2006-09-28 10:43) [24]


> Ketmar

Ну не только он... есть еще много способов...


 
Ketmar ©   (2006-09-28 11:30) [25]

>[24] Elen(c) 28-Sep-2006, 10:43
>Ну не только он... есть еще много способов...
конечно, не только он. %-) но и он в том числе -- пожтому оставить его в покое я не могу. %-)


 
Игорь Шевченко ©   (2006-09-28 11:32) [26]

Ketmar ©   (28.09.06 10:35) [21]


> перехват API во всех запущеных процессах.


Найди книжку Гэри Неббета, он там приводит хороший пример перехвата, по принципу, как отладчики работают. Не найдешь, зайди в чат.


 
Ketmar ©   (2006-09-28 11:44) [27]

>[26] Игорь Шевченко(c) 28-Sep-2006, 11:32
>хороший пример перехвата, по принципу, как
>отладчики работают. Не найдешь, зайди в чат.
при помощи навешаного отладчика я тоже могу. не подходит. %-)
но книгу поищу, благодарю.


 
Elen ©   (2006-09-28 11:46) [28]


> Ketmar

А если запретить его вызов в реестре?


 
Игорь Шевченко ©   (2006-09-28 11:47) [29]

Ketmar ©   (28.09.06 11:44) [27]

"По принципу" и "при помощи" для тебя имеет разницу ? :)


 
Ketmar ©   (2006-09-28 11:54) [30]

>[29] Игорь Шевченко(c) 28-Sep-2006, 11:47
>"По принципу" и "при помощи" для тебя имеет
>разницу ? :)
имеет, потому я и ищу книгу, вместо того, чтобы тупо сказать "да знаю я эту вашу йогу, превзошёл нечуйственно". %-)



Страницы: 1 вся ветка

Текущий архив: 2006.10.22;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.057 c
1-1157456048
AndreyRu
2006-09-05 15:34
2006.10.22
Рисование штрихкода


2-1159875748
term1t
2006-10-03 15:42
2006.10.22
Выборка(Oracle 9)


1-1158210438
таш
2006-09-14 09:07
2006.10.22
PageControl + вынос элементов в отдельное окно


4-1149436267
susergey
2006-06-04 19:51
2006.10.22
Как создавать новую папку с названием, заранее определенным


3-1156426216
Сергей А.
2006-08-24 17:30
2006.10.22
Длина поля в таблице MySQL