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

Вниз

Требуется небольшая вычитка статьи.   Найти похожие ветки 

 
Rouse_ ©   (2013-10-30 20:57) [0]

К релизу почти готова статья а карте памяти процесса и сегодня я закончил написание вводной и теоретической части (осталась только практическая и демки).

Требуется Ваше мнение о полноте материала и что нужно добавить (разъяснить - если какие-то моменты не доступны).

ВАЖНО!
Очепятки, орфографию/грамматику пока не тестируем
- важна только полнота изложения материала и его доступность для обычного прикладного программиста.
К примеру если кому-то не понятно что такое TEB - так и пишите: "нужно разъяснить нафиг это нужно"...

http://rouse-debug.blogspot.ru/2013/10/blog-post.html

ЗЫ: статья может быть периодически не доступна (это значит что в этот момент ее правлю).


 
Inovet ©   (2013-10-30 21:34) [1]

И хотя к самому отладчику она непосредственно не будет иметь никакого отношения, но вот к самому процессу отладки - самое непосредственное...

Было бы удобно, как это обычно принято, при первом вхождениее аббревиатуры давать расшифровку для полноты.

Из этой структуры нас интересует только одно поле - TebBaseAddress, которое содержит адрес блока окружения потока, т.н. TEB.
Из этой структуры нас интересует только одно поле - TebBaseAddress, которое содержит адрес блока окружения потока, т.н. TEB (Thread Environment Block).

ExceptionList - в 32 битном процессе указатель на адрес текущего SEH фрейма (структуру EXCEPTION_REGISTRATION).
ExceptionList - в 32 битном процессе указатель на адрес текущего SEH (Structured Exception Handling - структурная обработка исключений) фрейма (структуру EXCEPTION_REGISTRATION).

Для SEH, может, и лишнее.


 
Rouse_ ©   (2013-10-30 21:41) [2]

Ага, это уже Пашка Голубь сегодня давал понять - это я дополню со ссылками, просто руки не дошли...


 
все арамисы, а я Дартаньян   (2013-10-30 21:45) [3]


> статья а карте памяти процесса


> ВАЖНО!Очепятки, орфографию/грамматику пока не тестируем

ололо затролел у меня баден-баден

По теме:
NtQueryInformationThread — этого же вроде в делфе "из коробки" нет, надо явно импортировать?
IntToHex((NativeUInt(ImageBase) + ImageSectionHeader^.VirtualAddress), 8) — вот тут 8 под вопросом, если уж озаботились NativeUInt
Что такое MapAndLoad? Статья разжигает аппетит, но не отвечает на этот вопрос :-)


 
Rouse_ ©   (2013-10-30 22:00) [4]


> NtQueryInformationThread — этого же вроде в делфе "из коробки"
> нет, надо явно импортировать?

Не из коробки но документировано частично: http://msdn.microsoft.com/en-us/library/windows/desktop/ms684283(v=vs.85).aspx


> IntToHex((NativeUInt(ImageBase) + ImageSectionHeader^.VirtualAddress),
>  8) — вот тут 8 под вопросом, если уж озаботились NativeUInt

Демка 32- битная, хотя согласен, стоит правильный размер выставить.


> Что такое MapAndLoad? Статья разжигает аппетит, но не отвечает
> на этот вопрос :-)

Так-же документировано: http://msdn.microsoft.com/en-us/library/windows/desktop/ms680353(v=vs.85).aspx

Впрочем принято - подумаю как раскрыть использование данных функций более подробно.


 
Павиа   (2013-10-31 09:14) [5]


> Было бы удобно, как это обычно принято, при первом вхождениее
> аббревиатуры давать расшифровку для полноты.Из этой структуры
> нас интересует только одно поле - TebBaseAddress, которое
> содержит адрес блока окружения потока, т.н. TEB.Из этой
> структуры нас интересует только одно поле - TebBaseAddress,
>  которое содержит адрес блока окружения потока, т.н. TEB
> (Thread Environment Block).ExceptionList - в 32 битном процессе
> указатель на адрес текущего SEH фрейма (структуру EXCEPTION_REGISTRATION).
> ExceptionList - в 32 битном процессе указатель на адрес
> текущего SEH (Structured Exception Handling - структурная
> обработка исключений) фрейма (структуру EXCEPTION_REGISTRATION).
>

Ух безобразие какое получается.

Вы как будто на Delphi не программируете. Объявления удобно давать в начале перед изложением основного текста. При этом с литературной точке это лучше делать в описательном характере. Во введение описываешь основные понятия и даёшь определения. Что для чего и как и почему.


 
Inovet ©   (2013-10-31 10:02) [6]

> [5] Павиа   (31.10.13 09:14)
> Вы как будто на Delphi не программируете

Мне Си++ больше нравится. А определения хотел предложить вывести списком по алфавиту в конце, но посчитал - лишнее будет для статьи такого объёма, а так-то можно бы. Но почему в начале?


 
Rouse_ ©   (2013-11-03 20:54) [7]


> Павиа   (31.10.13 09:14) [5]
> Вы как будто на Delphi не программируете. Объявления удобно
> давать в начале перед изложением основного текста. При этом
> с литературной точке это лучше делать в описательном характере.
>  Во введение описываешь основные понятия и даёшь определения.
>  Что для чего и как и почему.

Попробовал, ерунда какая-то получается. Только отпугнет читателя ИМХО.
Ну к примеру: В статье мы будем говорить о PEB, TEB, TIB, SEH, UNWIND и прочих страшных буквах, но пока вы еще не начали читать текст, щас я расскажу что это такое...

Так что-ли?


 
Rouse_ ©   (2013-11-03 20:55) [8]

Имхо проще как у меня, сначала показываешь фичу, а потом объясняешь при помощи чего это реализовывется... (или я не прав?)


 
картман ©   (2013-11-03 21:25) [9]


> Rouse_ ©   (03.11.13 20:55) [8]

прав!


 
Павиа   (2013-11-03 22:18) [10]


> Попробовал, ерунда какая-то получается. Только отпугнет
> читателя ИМХО.

Согласен что отпугивает. Но как-то рассказывать надо. Понимаю что воды больше будет.


> Ну к примеру: В статье мы будем говорить о PEB, TEB, TIB,
>  SEH, UNWIND и прочих страшных буквах, но пока вы еще не
> начали читать текст, щас я расскажу что это такое...Так
> что-ли?

Так связанность предложения теряется.

Кстати на авто тестах свои статьи гоните? каков процент научной тошноты(:D)? Стоп-слов?


 
Rouse_ ©   (2013-11-03 22:32) [11]


> Павиа   (03.11.13 22:18) [10]
> Согласен что отпугивает. Но как-то рассказывать надо. Понимаю
> что воды больше будет.

Ну дык в процессе и нужно рассказывать :)
Таблицу умножения ж не сразу дают, сначала учат складывать/отнимать а потом столбиком. Оть здесь как-то так-же стараюсь...


> Кстати на авто тестах свои статьи гоните? каков процент
> научной тошноты(:D)? Стоп-слов?

Что за авто-тесты?


 
Rouse_ ©   (2013-11-03 22:36) [12]

ЗЫ: и к примеру если взять пятую главу, там я даже кода не привожу, а просто обьясняю про структуру. Если ее вначало вынести, то у народа вообще переклин получится - мол, зачем мне сейчас это рассказывают, когда я даже не понимаю применительно к чему этот материал пойдет.


 
Inovet ©   (2013-11-03 22:59) [13]

Ещё раз

> [6] Inovet ©   (31.10.13 10:02)
> Но почему в начале?


 
Rouse_ ©   (2013-11-03 23:18) [14]


> Inovet ©   (03.11.13 22:59) [13]

Андрюх, пардон, это мне вопрос?


 
Inovet ©   (2013-11-03 23:41) [15]

> [14] Rouse_ ©   (03.11.13 23:18)

Не, это к Павиа.


 
Rouse_ ©   (2013-11-12 18:57) [16]

Тэксь, если еще не устали от моих просьб, то статья завершена:
http://rouse-debug.blogspot.ru/2013/10/blog-post.html

Теперь нужна вычитка как с точки зрения орфографии, грамматики, так и общей стилистики.
Ну короче нужно превратить ее в то, что вам самим было бы приятно читать и иметь в закладках :)

Демопримеры еще не выкладывал, к завтрашнему вечеру все подготовлю...


 
Rouse_ ©   (2013-11-12 18:59) [17]

ЗЫ: раскрыть аббревиатуры через html теги attr не успел, завтра доделаю...


 
картман ©   (2013-11-12 19:35) [18]

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

модификация памяти приложения, а над памятью можно издеваться))

Анафорическая ссылка на предыдущие статьи не совсем очевидна.

В одном предложении три раза одинаковое слово.


 
картман ©   (2013-11-12 19:42) [19]

к сожалению
собственно
можно сказать


этим меньше надо грешить


 
брат Птибурдукова   (2013-11-12 19:43) [20]

По введению, 1, 2:

2-3 гигабайта, это ваш лимит
вместо запятой тире

все-же
пробел

модификации над памятью приложения
модификации памяти

процессу отладки - самое непосредственное
замени дефис на тире

проще говоря при реверсе
запятая пропущена

Самое очевидное - самой частой операцие
тире

и к сожалению данный функционал
к сожалению с обеих сторон запятыми выделить

в Delphi отладчике
в отладчике Delphi. в Delphi-отладчике (хуже). твой вариант тоже широко используется последние лет двадцать, но не комильфо

чтобы понять тут ли происходит
запятая

Да собственно вариантов использования много
собственно запятыми выделить

более менее
дефис

но к сожалению она не отображает
запятые

VMMap от Марка Руссиновича к сожалению выполняет
запятые

ProcessHacker - собственно хороший инструмент
запятые

Ну, а к карте памяти
лишняя запятая

не все где может пригодится
запятая, тся

рассказать как самостоятельно
запятая

Грубо (если взять за основу MSDN) - это набор
дефис на тире. тут ссылка, двумя строчками выше весьма похожая фраза без  сылки. добавить ссылку? добавить визуальное выделение ссылок?

К примеру изначально мы передали первым параметром адрес NIL
запятая. нил, наверное, в нижнем регистре

16 страницам идущим подряд начиная с адреса ноль
две запятые

К примеру у второго и третьего региона
запятая

что они хранят и начнем мы
запятая

нитей - кому как
дефис на тире

одно поле - TebBaseAddress
дефис на тире

Ну или вот так, если описывать чуть подробнее
в списке дефисы на тире позаменять

как - не нужны
то же

Кстати часть функций
запятая

так-же
слитно

на первую структуру EXCEPTION_REGISTRATION она
запятая

Правда в отличие от Delphi отладчика
запятая, отладчика делфи


 
Rouse_ ©   (2013-11-12 20:02) [21]


> картман ©

Действительно, поправлю завтра :)


> брат Птибурдукова

Спасибо Дим, поправлю :)


 
все арамисы, а я Дартаньян   (2013-11-13 00:12) [22]

по 3, 4:

элементов HeapEntry из которых
запятая

весь список создавая
запятая

Правда в той статье
запятая

принцип и нам
запятая

оздается буфер в котором
запятая

В принципе кучи я использую
запятая

о загруженных в адресное пространство процесса исполняемым файлам и библиотекам
исполняемых файлах и библиотеках

например проанализировав PEB.LoaderData
запятая

PEB.LoaderData) но поступим проще
запятая

ну по крайней мере я еще не встречался
по крайней мере выделяется запятыми

с таким чтобы PE образ был загружен
запятая

Грубо все сводится к вызову GetMappedFileName.
чё-то как-то… переформулировать бы.

посмотреть что у нас загружается
запятая

система Windows 7 x64, судя по тому
я бы точку поставил

становится понятно откуда
запятая

Теперь по хорошему нужно получить
по-хорошему. выделить запятыми

Все секции выравниваются к началу страницы
может, не "к", а "по"?

роизводит так-же выравнивание
слитно

процесса конечно вызов данной
запятые

процессами - то воспользуемся
запятая вместо тире

правда это не работает
запятая

32 битных
дефис

процессов) и в дальнейшем
запятая

Суть код такова, после
кода. двоеточие вместо запятой

TLoadedImage параметр
запятая

который является офсетом
офсет — это такой типографский термин…

с которого начинается описываемая структурой TImageSectionHeader секция
два "которых" в одном предложении. непонятно, о чём речь.

данные доступные для модификации
запятая

Правда с этим кодом
запятая

старый код постоянно применяемый
запятая

\SystemRoot\System32\ntdll.dll
а разве так будет работать? %systemroot% работало бы, а так разве поймёт?

получить фиксированный "\Device\HarddiskVolume1\WINDOWS\system32\ntdll.dll".
ээ! мы ж вроде c:\windows\... получить хотели?

путь в таком-же формате
пробел

сравниваются и при совпадении
запятая

собой желательно вывести так-же директории
запятая, пробел

разу где искать
запятая

искать к примеру таблицу
запятые

импорта где сидит
запятая

TLoadedImage мы можем
запятая

правда он будет
запятая

тмаплен PE файл, чтобы перевести его в реальный
точка

нужно от текущего адреса вычесть
из текущего вычесть (предпочтительно). от текущего отнять.

адрес по которому
запятая

отмаплен
отображён? спроецирован?

начала файла и уже его сложить
запятая

Сразу видно что к примеру в секции
три запятые

импорта и т.п. директория с ресурсами сидит в своей секции
запятая перед "директория"? вообще лучше бы фразу переформулировать

Да действительно
запятая

такова ей особенность
её

собенность что она обычно
запятая

"привязанного импорта" который встречается
запятая

рограмм и библиотек идущих
запятая

телодвижений бегая по таблице
запятая

завяленная
по Фрейду…

ривязанного импорта - приложение
запятая вместо тире


 
картман ©   (2013-11-13 00:22) [23]

зря он это затеял, надо было как есть выкладывать))


 
все арамисы, а я Дартаньян   (2013-11-13 00:35) [24]

по 5:

данные о потоках кучах
запятая

исполняемых файлах уже прямо
запятая

ак минимум крайне
запятая

PROCESS_BASIC_INFORMATION у которой поле
запятая

запрашиваемого и о котором запрашиваем информацию
непонятно. может, запрашивающего?

Для того чтобы
запятая

(назовем его так) необходимо
запятая

нам вернется указатель
функция вернёт указатель

PEB из которого и
запятая

рубо говоря это не сильно
запятая

структура в большинстве своем
запятая

данных используемых
запятая

означает что она не интересна
запятая

полей таких как флаг
запятая

подключен ли к процессу отладчик или нет
или нет выкинуть

PEB_LDR_DATA в которой содержитс
запятая

приложения на который имеет
запятая

и так знаю что именно
знают

на некоторые из полей я заострю ваше внимание.
переформулировать

ереставала говорить на наличие отладчика
переформулировать

не совпадать с ImageBase передаваемому линкеру и прописанному в
запятая. передаваемым? прописанным?

указатели на данные о загруженных модулях
указатель? дальше идёт единственное число.

но к сожалению пока
запятые

откуда берет информацию
берут

причем т.к. PEB в действительности может быть два - то и Environment так-же не в одном экземпляре
не переварил. переформулировать бы.

системы не дергая реестр
запятая

продолжать можно пока поля
запятая. а по-хорошему фразу надо бы переписать или выкинуть

К примеру ProcessParameters
запятая

куч созданных загрузчиком
запятая

и веду) эти данные
запятая

системой и вы постоянно
запятая

вызывая тот-же GetTickCount
пробел

К примеру NtSystemRoot
запятая

в ней да и
запятая

опять-же зачем все перечислять
пробел, запятая

отите узнать что за процесс активен
запятая

версию Win чтобы отключилась часть
запятая

защиты не рассчитанная
запятая

пожалуй здесь мы
запятая


 
все арамисы, а я Дартаньян   (2013-11-13 01:10) [25]

С теоретической частью будем считать закончили
переформулировать

Прежде всего нужно определиться
запятая

статье я написал
запятая

абор классов выделенных
запятая

неймспейс
наверное, всё же "пространство имён"

стеков потоков,
запятая не нужна? наверное, нет

к примеру путь к отмапленному
запятая. вышеизложенное фе по поводу "отмапленного"

регион в руте дерева
рута — это вроде трава такая? (вопрос к целому абзацу)

может быть когда нибудь
запятая, дефис

В случае если регион
запятая

параметр Heap представляющий
запятая

рамках региона размещаются
запятая

они так-же помещаются
слитно

Так-же эти данные
слитно

в случае если битности процессов
запятая

Общая схема такая
в следующем списке все Х-битные через дефис

простая, не позволит размер указателя
я бы заменил запятую на двоеточие, но необязательно

32-ум
не надо от тридцати двух отнимать ум…

То-же будет и в случае запроса
пробел

данные относящиеся к 64 битам
запятая

В частности доступ
запятая

можно получить считав адрес
запятая

мне не известно
слитно

По хорошему это нужно
дефис, запятая

данные в удаленном процессе, не изменились на неактуальные, в процессе их чтения
к чёрту запятые!

почему-бы
пробел

По сути TWorkset хранит
запятая

ледующие три бита количество процессов
тире

является флагом расшарена страница или нет
переформулировать. "флаг" заменить на "признак"?

ак видите все интересное
запятая

ну к примеру убирает
запятые

с не выделенной памятью
слитно

Как говориться, писал
ться

Ну к примеру во второй
запятые

получения описания имени функции, телу которой принадлежит требуемый
чё-то с телом как-то не в тему

адрес необходимо знать путь
запятая

не успешно
слитно

разбирался - но действительно
запятая вместо тире

Последний из нюансов
слишком много "в том" для одного предложения.

Сильно полезной нагрузки
переформулировать

адрес калбэка
функции обратного вызова

Более подробнее реализацию данного
более подробно

исключения и дампы
запятая

Private регионов
частных регионов?

лассами MemoryMap плюс добавляет
запятая

впрочем так и планировалось
запятая

изначально ибо такой
запятая

он-же
пробел

функционал в принципе присутствует
запятые

CPU-View
пробел

К примеру в случае просмотра
запятая

будет выводится данные
будут? а вообще эти будущие времена можно без ущерба выкинуть.

Delphi к сожалению отсутствуе
запятые

а так-же флаг указывающий
пробел, запятая

е отобразится. но вот
Заглавная буква

Так-же отсутствующий в отладчике Delph
слитно

А так-же быстрый поиск
слитно

достаточно и новый
запятая

Ну что-ж, надеюсь
пробел

Я конечно прошел
запятые


 
все арамисы, а я Дартаньян   (2013-11-13 01:13) [26]

В целом замечания:
в качестве тире нужно использовать тире — а не минус.
букву ё или всюду добавить (лучше), или всюду убрать (проще)
ссылки бы выделять, даже если это сейчас немодно.

Ну а вообще по стилю изложения много лучше первой статьи, хотя расти ещё есть куда.


 
Inovet ©   (2013-11-13 01:36) [27]

Когда исправишь? Чтобы по правленному перечитать.


 
Rouse_ ©   (2013-11-13 10:17) [28]


> Inovet ©   (13.11.13 01:36) [27]
> Когда исправишь? Чтобы по правленному перечитать.

На обеде либо вечером пос работы. Я отпишусь...


 
Rouse_ ©   (2013-11-13 17:15) [29]


> все арамисы, а я Дартаньян   (13.11.13 01:13) [26]
> В целом замечания:
> в качестве тире нужно использовать тире — а не минус.
> букву ё или всюду добавить (лучше), или всюду убрать (проще)
> ссылки бы выделять, даже если это сейчас немодно.

Ну зато с тире разобрался как его ставить :) "Alt + 1050"
По выделению ссылок, они на основном сайте выделяются, ну и на этом тоже подправил.


> Ну а вообще по стилю изложения много лучше первой статьи,
>  хотя расти ещё есть куда.

Это хорошо :)
Спасибо за столь подробную вычитку :)


> Inovet ©   (13.11.13 01:36) [27]

Обновил, все что Дима нашел – поправил.
Демки еще не выложены, завтра доправлю...


 
брат Птибурдукова   (2013-11-13 19:45) [30]


> Ну зато с тире разобрался как его ставить
кастомные раскладки клавиатуры рулят ;-)


 
Rouse_ ©   (2013-11-13 20:08) [31]

О, респекты ж забыл добавить, в конец статьи :)))
Исправился :)


 
Inovet ©   (2013-11-13 20:41) [32]

как-же
как же

Код получения списка потоков простой, через CreateToolhelp32Snapshot.
Я бы тире поставил вместо запятой.

При помощи NtQueryInformationThread получаем адрес процедуры потока, с которой он начал работу и базовую информацию о потоке в виде структуры TThreadBasicInformation.
При помощи NtQueryInformationThread получаем адрес процедуры потока, с которой он начал работу, и базовую информацию о потоке в виде структуры TThreadBasicInformation.

которое содержит адрес блока окружения потока, т.н. TEB.
Не стал расшифровку писать? Я задумался.
которое содержит адрес блока окружения потока, т.н. TEB (Thread Environment Block).

представляющий из себя структуру NT_TIB
Данная структура представляет из себя следующее:
Точка после NT_TIB
Напиши что ли:
Данная структура определена так:

Основываясь на данной информации мы будем раскручивать всю цепочку SEH фреймов.
Основываясь на данной информации, мы будем раскручивать всю цепочку SEH фреймов.

что-то наподобие свободного TLS слота, грубо говоря
что-то наподобие свободного TLS слота. Грубо говоря

Нужны конечно, но пока что они для нас избыточны.
Нужны, конечно, но пока что они для нас избыточны.

Часть данных получили, но это не вся информация, доступная нам.
Часть данных получили, но это не вся информация доступная нам.

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

он будет выводить данные о процедурах для которых сгенерирован стековый фрейм,
он будет выводить данные о процедурах, для которых сгенерирован стековый фрейм,

необходимо указать параметры текущего кадра стека (EBP и ESP/ RBP и RSP для х64) и собственно текущий адрес кода (регистр EIP или RIP для х64).
необходимо указать параметры текущего кадра стека (EBP и ESP/ RBP и RSP для х64) и, собственно, текущий адрес кода (регистр EIP или RIP для х64).

поэтому взяв за основу код из первой главы и проверив данные первой страницы региона на соответствие PE файлу, получим
поэтому, взяв за основу код из первой главы и проверив данные первой страницы региона на соответствие PE файлу, получим

Судя по тому что отображено на картинке в нашем 32-битном процессе спокойно живут и работают
Судя по тому что отображено на картинке, в нашем 32-битном процессе спокойно живут и работают

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

Функции IsExecute и IsWrite проверяют характеристики секции и возвращают True в том случае если секция содержит исполняемый код (IsExecute) или данные, доступные для модификации (IsWrite).
Функции IsExecute и IsWrite проверяют характеристики секции и возвращают True в том случае, когда секция содержит исполняемый код (IsExecute) или данные, доступные для модификации (IsWrite).

После чего пути сравниваются и (при совпадении), к переданному пути подставляется соответствующая метка диска.
После чего пути сравниваются и (при совпадении) к переданному пути подставляется соответствующая метка диска.

Да, действительно, данная директория не располагается непосредственно ни в одной из секций библиотеки, такова ее особенность, что она обычно идет сразу за PE заголовком (хотя иногда может встречаться и в промежутках между секциями).
Да, действительно, данная директория не располагается непосредственно ни в одной из секций библиотеки, такова ее особенность. Она обычно идет сразу за PE заголовком (хотя иногда может встречаться и в промежутках между секциями).

До сюда одолел
5. Блок окружения процесса (PEB) + KUSER_SHARED_DATA


 
Inovet ©   (2013-11-13 20:55) [33]

Но это будет актуально только если битности процессов (запрашивающего и о котором запрашиваем информацию) совпадут.

Но это будет актуально, только если битности процессов (запрашивающего и о котором запрашиваем информацию) совпадут.

В частности данная структура содержит ряд интересных полей, таких как флаг BeingDebugged, указывающий подключен ли к процессу отладчик, указатель на PEB_LDR_DATA, в которой содержится информация о загруженных в процесс модулях, TLSCallBack, используемый в основном утилитами защиты приложения, на который имеет смысл смотреть до передачи управления на точку входа, ну и много остальной достаточно полезной для программиста информации, особенно для того, кто знает как ее применить в своих целях :)

В частности, данная структура содержит ряд интересных полей, таких как: флаг BeingDebugged, указывающий подключен ли к процессу отладчик; указатель на PEB_LDR_DATA, в которой содержится информация о загруженных в процесс модулях; TLSCallBack, используемый в основном утилитами защиты приложения, на который имеет смысл смотреть до передачи управления на точку входа; и много остальной достаточно полезной для программиста информации, особенно для того, кто знает как ее применить в своих целях. :)

те кто работают с PEB и так знают что именно им нужно

те кто работают с PEB и так знают, что именно им нужно

после чего функция IsDebuggerPresent, ориентирующаяся на данное поле, начинала возвращать False, говоря о том что отладчика она не обнаружила.

после чего функция IsDebuggerPresent, ориентирующаяся на данное поле, начинала возвращать False, говоря о том, что отладчика она не обнаружила.

Именно отсюда, здесь же сидит адрес переменных окружения.

Именно отсюда. Здесь же сидит адрес переменных окружения.

А еще мы можем узнать сервиспак системы, не дергая реестр, в этом нам поможет поле CSDVersion, да, впрочем, поля NtMajorVersion/NtMinorVersion/NtBuildNumber говорят сами за себя.

А еще мы можем узнать сервиспак системы, не дергая реестр, в этом нам поможет поле CSDVersion. Да, впрочем, поля NtMajorVersion/NtMinorVersion/NtBuildNumber говорят сами за себя.

Хотите проверить активацию локальной копии Windows, читайте поле ProductTypeIsValid :)

Хотите проверить активацию локальной копии Windows - читайте поле ProductTypeIsValid. :)


 
все арамисы, а я Дартаньян   (2013-11-13 20:59) [34]


> Код получения списка потоков простой, через CreateToolhelp32Snapshot.
> Я бы тире поставил вместо запятой.
тут тире, запятая и двоеточие практически равноправны… запятая наименее нарочита :-)


 
все арамисы, а я Дартаньян   (2013-11-13 21:00) [35]


> респекты ж забыл добавить
зато мой ник переврать не забыл %-)


 
Rouse_ ©   (2013-11-13 21:04) [36]


> Inovet ©   (13.11.13 20:41) [32]

Пасиб, это уже утром, сегодня уже ниможу больше :)))


> все арамисы, а я Дартаньян   (13.11.13 21:00) [35]
>
> > респекты ж забыл добавить
> зато мой ник переврать не забыл %-)

Не виноватое я, оно само :)))
Поправил :)


 
Inovet ©   (2013-11-13 21:04) [37]

6. TRegionData

Прежде всего, нужно определиться с тем, каким образом хранить информацию о регионах.

Прежде всего нужно определиться с тем, каким образом хранить информацию о регионах.

В нем можно хранить все что угодно, к примеру путь к отображенному PE файлу, если таковой присутствует, строковое описание ID потока и т.п.

В нем можно хранить все что угодно, к примеру: путь к отображенному PE файлу, если таковой присутствует; строковое описание ID потока и т.п..

Ну а параметр Parent хранит на себе ссылку на рута.

Ну а параметр Parent хранит ссылку на рута.

TotalRegionSize содержит в себе общий размер всех подрегионов включая рутовый.

TotalRegionSize содержит в себе общий размер всех подрегионов, включая рутовый.


 
Inovet ©   (2013-11-13 21:06) [38]

> [36] Rouse_ ©   (13.11.13 21:04)
> сегодня уже ниможу больше

Я, сжав провода зубами, ползу к финишу.


 
Rouse_ ©   (2013-11-13 21:09) [39]


> Inovet ©   (13.11.13 21:06) [38]
> > [36] Rouse_ ©   (13.11.13 21:04)
> > сегодня уже ниможу больше
>
> Я, сжав провода зубами, ползу к финишу.

:))) Респект


 
Rouse_ ©   (2013-11-13 21:11) [40]

Да кстати, оно вообще как, читабельное?
Я сегодня раз 20 перечитывал стараясь абстрагироваться, мол типа новая инфа - для меня вроде как понятно.
А если смотреть со стороны?



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

Форум: "Прочее";
Текущий архив: 2014.05.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.61 MB
Время: 0.014 c
2-1375356989
14
2013-08-01 15:36
2014.05.18
Событие OnChange у DateTimePicker


15-1384633802
Юрий
2013-11-17 00:30
2014.05.18
С днем рождения ! 17 ноября 2013 воскресенье


15-1384338945
[ВладОшин]
2013-11-13 14:35
2014.05.18
Синхронизация потоков через БД


2-1375298545
Novice
2013-07-31 23:22
2014.05.18
Изменить цвет выделения строки ListView


3-1298286689
wasja_1
2011-02-21 14:11
2014.05.18
Замена данных в DBEdit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский