Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.053 c
2-1159794490
Зацени
2006-10-02 17:08
2006.10.22
Задачка


2-1159951787
Neket
2006-10-04 12:49
2006.10.22
Динамический массив


3-1156746777
pic509
2006-08-28 10:32
2006.10.22
Динамически изменяемый запрос из Хранимой процедуры


2-1160336277
vain
2006-10-08 23:37
2006.10.22
Form.Refresh


2-1159359502
Rustam
2006-09-27 16:18
2006.10.22
Индекс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский