• XSS.stack #1 – первый литературный журнал от юзеров форума

Как считывать физическую память на языке ассемблера masm

mddbs

RAID-массив
Пользователь
Регистрация
09.02.2024
Сообщения
98
Реакции
3
Как мне считать физическую память компьютера из kernel mode используя MASM и как мне понять обращаюсь я к свободной странице или же к закреплённой чтобы не словить нарушения прав доступа
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Командами пересылки данных: mov, lea итд.

Если в вашем случае мелкомягкий вариант в интеловском синтаксисе, например:

1) mov назначение, [ источник ]
//где второй операнд команды mov переходит по значению адреса в основной памяти, выраженной как источник. фактически разыменовывание по указателю, если вы в курсе что это такое конечно. а операнд назначение символизирует например регистры общего назначения или некоторые сегментные регистры процессора. также требуется совпадения размеров источника и приемника. ну и оба операнда одновременно не могут быть адресами в основной памяти.

2) lea назначение, [ источник ]
//где источник-это не значение по указателю(адресу), а сам адрес. дальше-сами поймете что делать. ну и источник как бы сборный, состоит из базового значения адреса, смещений.

кроме того, если вы используете стек данных в памяти, то работайте со стеком правильно, теми же mov, lea, push/pop
если вы хотите получить доступ непосредственно к физической памяти устройств, то работайте с прерываниями, драйверами на уровне ядра системы.

как обходить всякие блокировки итд - это уже тема не для вопроса на форуме, а скорее глубокого изучения архитектур, языков программировании, компиляторов, операционных систем и их особенностей, а также работы с памятью выполняющихся программ. а чтобы работать с областью ядра системы, это необходимо все знать и пониматься еще лучше.
 
Последнее редактирование:
Рекомендую почитать "Intel® 64 and IA-32 Architectures Software Developer Manuals", если работа идет с процессором Intel.
Ссылка на скачивание. Приглянись к референсу по опкодам, по-английски звучит "Instruction Set Reference, A- Z".
 
Решение
Командами пересылки данных: mov, lea итд.

Если в вашем случае мелкомягкий вариант в интеловском синтаксисе, например:

1) mov назначение, [ источник ]
//где второй операнд команды mov переходит по значению адреса в основной памяти, выраженной как источник. фактически разыменовывание по указателю, если вы в курсе что это такое конечно. а операнд назначение символизирует например регистры общего назначения или некоторые сегментные регистры процессора. также требуется совпадения размеров источника и приемника. ну и оба операнда одновременно не могут быть адресами в основной памяти.

2) lea назначение, [ источник ]
//где источник-это не значение по указателю(адресу), а сам адрес. дальше-сами поймете что делать. ну и источник как бы сборный, состоит из базового значения адреса, смещений.

кроме того, если вы используете стек данных в памяти, то работайте со стеком правильно, теми же mov, lea, push/pop
если вы хотите получить доступ непосредственно к физической памяти устройств, то работайте с прерываниями, драйверами на уровне ядра системы.

как обходить всякие блокировки итд - это уже тема не для вопроса на форуме, а скорее глубокого изучения архитектур, языков программировании, компиляторов, операционных систем и их особенностей, а также работы с памятью выполняющихся программ. а чтобы работать с областью ядра системы, это необходимо все знать и пониматься еще лучше.
То, что вы описали выше, я уже пробовал. Только проблема в том, что вылетает синий экран. Я подумал, что это из-за того, что я адресуюсь к свободным страницам, и происходит нарушение прав доступа. Но, по всей видимости, это не так, насколько я понял.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
То, что вы описали выше, я уже пробовал. Только проблема в том, что вылетает синий экран. Я подумал, что это из-за того, что я адресуюсь к свободным страницам, и происходит нарушение прав доступа. Но, по всей видимости, это не так, насколько я понял.
Ну прежде чем пробовать то что указано выше, следовало бы все-таки подробнее изучить основы архитектур, операционных систем, режимы работы с памятью в разных операционках, итд. Об этом я и написал выше по топику. И скорее всего, вы адресуетесь именно в нарушение прав доступа в контексте того или иного режима. Изучайте матчасть. Там много-много чего изучать, чтобы достичь решений по вашему вопросу-)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх