eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: IsNull, scene (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Объясните пожалуйста про Mutex
Посл.ответ Сообщение

Ранг: 7.4 (гость)
Статус: Участник

Создано: 14 сентября 2013 23:42 · Поправил: Robix New!
Цитата · Личное сообщение · #1

Привет. Объясните пожалуйста про Mutex. Все строчки взяты из Olly.

Вызывается значит ф-ция CreateMutexA и в хэндлах появляется запись:
00001C84 Mutant 3. 001F0001 \BaseNamedObjects\7399BC44-90CF-4372-8B56-416B8513B378
00001C84 - Это хэндл мутекса.
1. Меня интересует, что произошло в памяти в этом момент после вызова CreateMutexA, и что значит запись \BaseNamedObjects\7399BC44-90CF-4372-8B56-416B8513B378 ?

Потом вызывается ф-ция WaitForSingleObject, где в параметре указан хэндл созданного мутекса.
B стеке такие параметры
0BB1FCA8 00001BBC |hObject = 00001C84
0BB1FCAC FFFFFFFF \Timeout = INFINITE

2. Тоже не пойму, что в этом момент происходит, а особенно если в это время выполняется параллельно код, то как его найти и как вообще исследовать, как действовать в OllyDBG ?


Ранг: 70.5 (постоянный)
Статус: Участник

Создано: 15 сентября 2013 01:03 New!
Цитата · Личное сообщение · #2

> что произошло в памяти в этом момент после вызова CreateMutexA

Ядро создало обьект, к памяти никакого отношенья он не имеет. Хотя на ядерном уровне могут и быть какие синхронизации, но для юзермода это не заметно.

> \BaseNamedObjects\7399BC44-90CF-4372-8B56-416B8513B378 ?

Имя обьекта.

> Тоже не пойму, что в этом момент происходит, а особенно если в это время выполняется параллельно код, то как его найти и как вообще исследовать, как действовать в OllyDBG ?

Ну что ту сказать. Учите матчасть.

Ранг: 18.8 (новичок)
Статус: Участник

Создано: 15 сентября 2013 05:16 New!
Цитата · Личное сообщение · #3

Порой это ведёт лишь к недопусканию создания ещё одного процесса, в подавляющем большинстве случаев проверяется не создан ли уже данный объект и если создан, то выход из программы, бряк на доступ к строке, которая в параметрах передаётся, и анализ кода помогут. Dr0p (он же Clerk) получше в этом вопросе подкован, как смотрю)


Ранг: 457.8 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 15 сентября 2013 06:00 · Поправил: plutos New!
Цитата · Личное сообщение · #4

Тут кое-что обьясняется:

--> http://www.alienvault.com/open-threat-exchange/blog/windows-kernel-objects<--
А еще глянь знаменитую книгу Свена Шрайбера. В ней целая глава посвящена kernel objects.

Ранг: 7.4 (гость)
Статус: Участник

Создано: 15 сентября 2013 21:20 New!
Цитата · Личное сообщение · #5

Я уяснил теперь, спасибо. Но теперь к делу. У меня создается в исследуемом модуле несколько мьютексов. Из названия я даже вижу, какой меня интересует. Но раз основном модуле вызывается WaitForSingleObject, то значит управление передается какому-то процессу. Но не было до этого вызвано ни CreateProcessA или CreateProcessW. И как мне понять, куда передается управление? Какое могут быть варианты, что посоветуете?


Ранг: 1982.4 (!!!!)
Статус: Модератор
retired

Создано: 15 сентября 2013 22:48 New!
Цитата · Личное сообщение · #6

У тебя что, 1 процесс на всём компьютере, что больше некому процессор занять? Idle тогда будет в пустом цикле его гонять. Почитал бы основы, что ли, мсдн на худой конец.

| Сообщение посчитали полезным: plutos



Ранг: 462.8 (мудрец)
Статус: Участник
Only One!

Создано: 15 сентября 2013 22:59 · Поправил: OnLyOnE New!
Цитата · Личное сообщение · #7

Archer
ну зачем мсдн? Если есть кому разжевать и в рот положить))) Главное - чтобы переварилось))

| Сообщение посчитали полезным: plutos



Ранг: 70.5 (постоянный)
Статус: Участник

Создано: 15 сентября 2013 23:03 · Поправил: Dr0p New!
Цитата · Личное сообщение · #8

OnLyOnE

А вот я нихуя #5 не понял. Хоть и ядерщик. Всё же корректный вопрос это часть ответа

Ладно похуй, обьясняю.

Обьект может быть именован, а может быть и нет. Если он именован, то он глобален в системе. Имя обьекта состоит из директорий и собственно имени. Директория тоже обьект и имеет имя.

Мьютекс это синхрообьект, их множество. Они могут использоваться для межпроцессорных синхронизаций. Обычно в этом случае юзается проверка обьктов, созданных клоном. Нормальное приложенье для сей цели юзает атомы. Это не синхрообьект.

Если есть цель обмена нанными, то ось предоставляет множество механизмов. Есть обьект EventPair, как пример - два евента для синхронного обмена данными. Критическая секция также может быть глобальной(межпроцессорной).

В общем синхронизация тема довольно сложная. По своей сути ядро предоставляет лишь не много возможностей. NtSetEventBoostPriority - единственная апи, позволяющая управлять очередью.

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



{ Атач доступен только для участников форума } - sem.pdf

| Сообщение посчитали полезным: plutos, Abraham



Ранг: 457.8 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 15 сентября 2013 23:29 New!
Цитата · Личное сообщение · #9

Dr0p
Есть реальные доки, которые вам следует изучать.
Учите матчасть

+1!

Ну это один из тех случаев, когда человеку дают ссылки, советуют почитать основы, учить матчасть и т.д.
Не проходит и дня, человек возвращается и говорит: "Ну, бля, все прочитал! Да, значит, теперь следующий вопрос..."

| Сообщение посчитали полезным: Dr0p, Abraham



Ранг: 70.5 (постоянный)
Статус: Участник

Создано: 15 сентября 2013 23:38 · Поправил: Dr0p New!
Цитата · Личное сообщение · #10

plutos

Это не нужно читать, это нужно осознать. Поймите разницу наконец.

Я читал войну и мир, но не знаю вообще что это за хуйня. Вот и делайте выводы

Пруфец вам годный в тему http://www.youtube.com/watch?v=9er87HGAK1s

Большинство думает что инде сторчался и ничего не изучает. Они глубоко заблуждаются. Я изучаю каждый день тонны матчасти. Например сегодня с 7 утра и до ~13 я провёл за пиленьем кода, в отладчике и проюзал вдоль и поперёк многократно матчасть. С этого вам следует брать пример. Хотя результата я не достиг, но это укрепило знание.

| Сообщение посчитали полезным: SegFault



Ранг: 457.8 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 16 сентября 2013 00:13 New!
Цитата · Личное сообщение · #11

Dr0p: Поймите разницу наконец

ДрОп, я как-то немного, того, сбит с толку...
Я ведь с вами и не спорил, а наоборот, совершенно соглашался в данном случае, зачем же мне еще и какие-то proofs?
Я уважаю людей знающих и постоянно ищущих новых знаний. Вы как раз один из таких людей и внушаете мне, в частности, огромное уважение (особенно когда не ругаетесь матом где надо и где не надо и не кроете правого и виноватого).
А за pdf отдельное спасибо!
 eXeL@B —› Вопросы новичков —› Объясните пожалуйста про Mutex

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS