Сейчас на форуме: zds (+2 невидимых)
|
 |
|
Посл.ответ |
Сообщение |
 Ранг: 599.8 (!) Статус: Модератор Research & Development
|
Создано: 24 февраля 2009 15:23 · Поправил: Jupiter New! Цитата · Личное сообщение · #1
VMMap
Mark Russinovich, Bryce Cogswell
v1.0 выпущена 23 февраля 2009
Визуальное представление карты памяти, принадлежащей процессу.
VMMap @sysinternals http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx
Скачать: VMMap.zip http://download.sysinternals.com/files/vmmap.zip
|
|
Ранг: 329.1 (мудрец) Статус: Участник
|
Создано: 24 февраля 2009 15:39 New! Цитата · Личное сообщение · #2
Забавная и полезная утилита.
+1
|
 Ранг: 355.4 (мудрец) Статус: Uploader 5KRT
|
Создано: 24 февраля 2009 16:53 New! Цитата · Личное сообщение · #3
а не подобная утилита у Джефри Рихтера была?
|
Ранг: 29.0 (посетитель) Статус: Участник
|
Создано: 24 февраля 2009 17:14 New! Цитата · Личное сообщение · #4
В About: Portions based on code by Jeffrey Richter
|
 Ранг: 520.5 (!) Статус: Участник Победитель турнира 2010
|
Создано: 24 февраля 2009 17:16 New! Цитата · Личное сообщение · #5
coderess пишет:
а не подобная утилита у Джефри Рихтера была?
В About o этом честно написано
Portions based on code by Jeffrey Richter
|
 Ранг: 238.8 (наставник) Статус: Участник CyberHunter
|
Создано: 24 февраля 2009 17:20 New! Цитата · Личное сообщение · #6
vnekrilov пишет:
Забавная и полезная утилита.
+1
Красиво да и только  Какая практическая польза?!
|
Ранг: 255.8 (наставник) Статус: Участник vx
|
Создано: 24 февраля 2009 17:47 · Поправил: Clerk New! Цитата · Личное сообщение · #7
Ну как всегда, хип, рмт..
Выносится легко, элементарный код подвешивает приложение, выдавая сообщение при попытке выбора этого процесса:
Не говоря уже про структуру куч, стоит сделоть не валидным один из элементов, как приложение вероятно слетит на необработанном исключении, ибо юзоется бажный функционал получения слепков(хотя и нативный). Имхо порченая утилита  .
|
 Ранг: 355.4 (мудрец) Статус: Uploader 5KRT
|
Создано: 24 февраля 2009 19:19 · Поправил: coderess New! Цитата · Личное сообщение · #8
Мля, еле собрал твой Код (поправлено ;)), действительно робит
// Оля также говорит, вернее система говорит об ошибке
|
 Ранг: 355.4 (мудрец) Статус: Uploader 5KRT
|
Создано: 24 февраля 2009 19:25 · Поправил: coderess New! Цитата · Личное сообщение · #9
Вот переписал структуры, что бы собрать файл:
Главный файл превратился в:
-----------
{ Атач доступен только для участников форума } - AntiAttach Code by Clerk.rar
|
Ранг: 255.8 (наставник) Статус: Участник vx
|
Создано: 24 февраля 2009 22:47 · Поправил: Clerk New! Цитата · Личное сообщение · #10
Это не PoC, а просто код завершающий удалённый поток, причём поток этот скрыт от отладчика(ThreadHiddenFromDebugger). Всеголишь установка нотификатора на создание потока. С одной стороны авторы поступили правильно(использовали синхронизацию по эвентпаиру, на котором основной поток и виснет, ожидая удалённый), но нужно было создать поток, получающий список куч и прибивать его по таймауту. В большинстве же случаем этот флаг сбрасывают, изза чего выполняется возврат и далее возникает исключение. Данный баг имеют примерно 8 из 10 приложений. Собственно для слепков куч я описывал уже уязвимость:
Функция RtlQueryProcessDebugInformation в случае уничтожения удалённого потока возвращает код завершения потока(ExitStatus), который далее возвращает ThpCreateRawSnap(). Отладочный буфер создаётся, но в нём поля определяющие информацию о кучах заполнены нулями вследствие ошибки. Далее по возврату из функции ThpCreateRawSnap() проверяется код ошибки и если он больше либо равен нулю вызывается ThpAllocateSnapshotSection(). Из ThpAllocateSnapshotSection() выполняется обращение к буферу с информацией:
if (dwFlags & TH32CS_SNAPHEAPLIST) {
SnapShotSize += RawDebugInfo->Heaps->NumberOfHeaps * sizeof(HEAPLIST32);
HeapListCount = RawDebugInfo->Heaps->NumberOfHeaps;
}
Heaps равно нулю, инструкция выполняет чтение по этому адресу, а там память не выделена и возникает исключение, а CreateToolhelp32Snapshot не устанавливает сех-фрейм.
|
 Ранг: 355.4 (мудрец) Статус: Uploader 5KRT
|
Создано: 24 февраля 2009 23:11 New! Цитата · Личное сообщение · #11
Ага, попровил.
8 из 10 приложений
если не 10 из 10, что-то я не видел приложений которые действуют по выше описанному,
дабы избежать ложных данных.
С одной стороны авторы поступили правильно(использовали синхронизацию по эвентпаиру, на котором основной поток и виснет, ожидая удалённый)
По ходу, так все делают, мудрят с объектами событиями/синхронизации
|
Ранг: 255.8 (наставник) Статус: Участник vx
|
Создано: 24 февраля 2009 23:27 New! Цитата · Личное сообщение · #12
coderess
Нет, я это юзол на различных мониторах который получают инфу о кучах, практически все падали. Например WinApiOwerride, есчо какието уже не помню.
> По ходу, так все делают, мудрят с объектами событиями/синхронизации
Ошибаешся, я имел ввиду что использование эвентпаира явно указывается как один из параметров RtlCreateQueryDebugBuffer, собственно он и инициализирует структуры для дальнейшего получения слепков. Обычно этот флаг не устанавливают, по крайней мере это первая софтина, которая его установила.
|
 |
|
|