|
Asm/C++/Delphi/Py/PHP/VBA
|
||
NtOpenSection → OpenFileMapping30.09.2018, 23:06. Показов 5386. Ответов 47
Метки нет (Все метки)
Привет!
Подскажите, кто знает, как открыть \Device\PhysicalMemory через OpenFileMapping, а не через NtOpenSection ? Проблема в том, что OpenFileMapping задаёт в качестве поля ObjectAttributes.RootDirectory (при вызове NtOpenSection) значение, возвращаемое BaseGetNamedObjectDirectory(), а не NULL. Т.е. если заменить это поле на NULL (изнутри функции OpenFileMappingW), всё работает. Иначе возвращается ошибка. MSDN пишет про поле RootDirectory:
Я так понял, это путь \BaseNamedObjects, только что это за путь и как относительно него адресовать \Device\PhysicalMemory – х/з.
0
|
||
| 30.09.2018, 23:06 | |
|
Ответы с готовыми решениями:
47
Выполнить преобразование: 140,536→[?]5→[?]4→[?]7 Вывести закон контрапозиции (A→¬B)→(B→¬A) Word 2016/2019, уравнение → конструктор → Сумма |
|
Эксперт Hardware
|
||
| 04.10.2018, 14:14 | ||
|
в общем случае - да.
это юзерская функция, которая предназначена по-большей мере для создания и открытия своих объектов, которые следили-бы над мьютексами и прочей хренью, внутри своего пространства. например, можно попытаться открыть объекты из указанных/доступных папок, но и то большинство из них не открываются, а те к которым доступ всё-же есть, пишут "Неверный дескриптор!". То-есть родитель создал объект с ненаследуемым дескриптором (атрибут в CreateFileMapping), поэтому посторонним туда вход запрещён. Добавлено через 6 минут вот что пишет Рихтер (или кто-то другой, уже не помню):
поэтому лучше юзать сразу их, хотя они и слишком громоздкие
2
|
||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|||||||||||||||||
| 04.10.2018, 19:53 | |||||||||||||||||
|
Что-то у вас полный отвал логики. В том-то и дело, что правило там есть, оно по видимому разное для разных версий виндов, но точно не такое как в цитате из Руссиновича. Правило должно любые логические противоречия устранять. Например те, что не может быть абсолютно низзя то, что иногда можно. Добавлено через 9 минут Вот типа написано
Если запущен терминал сервисов (понятия не имею что это) или Win не 2000, то правильные имена [символическая_ссылка\]имя_объекта , где [ ] означают может присутствовать любое число раз или не присутствовать вовсе Добавлено через 1 минуту P.S. Баг форумного движка ? Пишу ниже одно и то-же в разных тегах :
"Global""Global" Куда обратная косая девается ? Добавлено через 3 минуты
2
|
|||||||||||||||||
| 04.10.2018, 19:53 | |
|
Не по теме: Ethereal, сообщите в соответствующей теме. А пока попробуйте обрамлять тегами NOPARSE
0
|
|
| 05.10.2018, 08:01 | |
|
Не по теме: Ethereal, по пропаданию слэша.
0
|
|
|
Эксперт Hardware
|
||
| 05.10.2018, 09:32 | ||
|
думаю всё-таки есть резон ознакомится хотя-бы повехностно с Рихтером.. https://wm-help.net/books-onli... 64-22.html со-времён Win2000 утекло не мало воды, и политика безопасности уже совсем иная, даже у ХР (не говоря уже об остальных). Объекты - это компоненты ядра, и если-бы из юзера к ним можно было так-просто подобраться, то грошь цена такому 'ProtectedMode'. С прикладного уровня, этой функцией админу позволено только создавать объекты для своих нужд, и попадают эти объекты не куда-попало, а только в папку "BaseNamedObjects". Вот пример в 'WinObj', когда я создал объект db "_R71MT",0 и он прекрассно отображается в списке. При этом косая черта в имени так-же запрещена, хотя терминал-сервис в системных службах запущен. Данная функция напрочь отвергает её наличие, поэтому при создании объектов, ядро подменяет косую черту на что-угодно, только не обратный слэш, ..например: _, #, !, /, и т.д. (см.пути в WinObj). Как только я закрываю своё приложение, мой объект пропадает из списка ниже:После создания объекта, у него включается счётчик, указывающий, сколько программных потоков используют этот объект (см.свойства объекта в WinObj.exe). Если этот счётчик обнуляется, то "Диспетчер объектов" автоматом удаляет этот объект из списка объектов. При создании объекта ты можешь порождать его дескриптор наследуемым, или нет. Системное ядро-же (исходя из своей политики) не горит желанием делать свои объекты наследуемыми и выбирает другой путь - создание экземпляров имён. Ядро дублирует имена объектов из своего списка в юзерский процесс по-требованию (fn.DuplicateHandle) и только те из них, которые считает безопасными. Большинство дубликатов валяются в указанной папке 'Global??\' в виде ссылок на объекты устройств MS-DOS (диски, порты и пр.). Кстати, каталог '\DosDevices' в корне(\..) таблицы - это обычная ссылка на каталог \Global??.
2
|
||
|
Модератор
|
|
| 05.10.2018, 11:33 | |
|
Я бы сказал, что в DosDevices есть ссылка
Global на \Global??.А в \Global?? есть не всё, что есть в DosDevices, или WinObj не всё показывает Добавлено через 11 минут \DosDevices Link: \??
0
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
|||
| 05.10.2018, 12:56 [ТС] | |||
|
Добавлено через 14 минут
2
|
|||
|
Эксперт Hardware
|
|||
| 05.10.2018, 13:46 | |||
|
а в эту опен_файл_мап я какие-только пути и адреса не подставлял, и везде прокол. она даже не открывает то, что лежит в доступных папках Global и Base
1
|
|||
|
Эксперт Hardware
|
||
| 05.10.2018, 14:33 | ||
|
во-втором случае натив получает управление от юзерской функции, и здесь нет ничего удивительного. а в первом случае - ты сам вызываешь натив, и могут возникнуть проблемы с правами доступа Добавлено через 10 минут между функциями юзера и ядра есть прослойка в виде драйверов, поэтому не к каждой/нативной функции у юзера есть доступ, ими могут пользоваться только драйвера. это и есть разница между первым и вторым случаем.
2
|
||
|
Эксперт Hardware
|
||
| 06.10.2018, 10:40 | ||
|
но тут нужно понимать общие принципы обработки юзерских функций системным диспетчером. Попробуй заюзать Zw-вариант этой функции, т.к. она не проверяет атрибуты доступа. Только не проверяет (и не выравнивает) она и кол-во аргументов, поэтому нужно быть внимательным. Если не поможет, значит перед вызовом нужно установить ещё и флаг 'PreviousMode' в Kernel(0), поскольку у юзерских приложений он выставляется в User(1), и управление опять перенаправится к Nt-варианту функции. То-есть Nt* проверяет доступ и атрибуты, а Zw* игнорирует их.
2
|
||
| 06.10.2018, 22:16 | ||||||||||||||||||||||||
|
Вы, похоже, пишете о модулях и драйверах, которые напрямую связываются с ядром.
Для обычных процессов, которые в конце концов вызывают функции из ntdll.dll, большая часть Zw* это другое имя для Nt*
Кликните здесь для просмотра всего текста
А в ядре есть отдeльные точки входа для ZwCloseHandle и NtCloseHandle.И остальные Nt* не по одному адресу с Zw*. C:\Windows\System32>dumpbin /exports ntoskrnl.exe | findstr /r "\<[ZN][wt][OC][prl]"
3
|
||||||||||||||||||||||||
|
Эксперт Hardware
|
||
| 06.10.2018, 23:41 | ||
|
ОС, нет... надо быть настырным, и всё получится..
была и есть дырка, ...другой разговор, если мы не можем это сделать Пусть ТС чуть посторается, а потом я скажу, где собака зарыта... Иначе - нет интереса. Jin_X пипец умный чел, только найдёт-ли эту хрень? Думаю нет.. нужна поддержка.. Женя, есть там ход, 100 в гору, чтобы обойти 'NtCreateSection' из юзера. Та=же прога RW оттягивает всех по-полной, значит и тебе положено. Главное нам здесь батонами шевелить...Окрыть Zw-функции вообщем нет проблем.. Просто как я сказалал в начале, нужно знать принцип Добавлено через 43 минуты
2
|
||
|
Эксперт Hardware
|
|
| 07.10.2018, 00:06 | |
|
ОС, цепочка там такая, и проверки идут на уровне STD.
Если мы запишем в STD свои атрибуты, то Zw отработает как положено, и не будет проверять атрибуты. Касперски этой теме посвятил не мало своего времени.. на первый взгляд проблема в атрибутах, но это не так.. их можно поиметь, если Jin X, этого захочет. функия Zw принимает аргументы как они есть, и если ты один из них уберёшь, то Zw вернёт тебе адрес возврата в ntdll. Пипец системе... если ты его задействуешь. Поэтому она проверяет поле "PreviousMode" - функция юзерская ты и кернел. Я советую Жене, ставить поле в кернел и торкать Zw-функцию, -
3
|
|
|
Эксперт Hardware
|
|
| 07.10.2018, 01:16 | |
|
другими словами, ты должен закосить под драйвер из юзера, что вполне возможно.
у нас куча апи, из которых мы знакомы только с 10% пути - нелегальные, но и требования соответсвующие... как это из пешек сразу в дамки? (как говорил Крис)
2
|
|
|
Эксперт Hardware
|
||||||
| 07.10.2018, 21:56 | ||||||
|
..так выглядят популярные реализации GetPreviousMode, если войти в Zw по F7 в оле. И этой инфы достаточно, чтобы написать свою функцию, задачей которой будет анализ имеющейся функции KeGetPreviousMode и создание новой SetPreviousMode, перед вызовом Zw. Дело в том, что нет функции, напрямую меняющей режим Mode, это делается диспетчером на автомате:
2
|
||||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
|||||
| 07.10.2018, 22:48 [ТС] | |||||
|
Если попытаться импортировать ntoskrnl.exe, то прога даже не запускается (сразу ошибка при запуске). А если грузить вручную (LoadLibrary, GetProcAddress), то вызов ZwOpenSection вызывает исключение (пытаясь записать 0x30 в fs). К тому же исходя из того, что я написал выше, получается, что Zw-вариант ничего не проверяет и думает, что мы уже в r0, но тут происходит такой конфуз (при записи в fs). Добавлено через 4 минуты
3
|
|||||
| 07.10.2018, 22:48 | |
|
Упростить формулу A^(B→A)→Ā. Проверьте результат, используя таблицу истинности (A → B) ∧ (B→¬ A ) ∧(C→A) упростите формулу
Что нужно сделать, чтобы получить доступ к OpenFileMapping Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|