Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
ведь я могу взять, и перетереть всё третье кольцоЮ убив все пользовательские программы
 

он может

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 18:13 02-10-2009 | Исправлено: bomzzz, 18:14 02-10-2009
Lyrik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62
А кто говорил про CR3? и, кстати, насколько мне известно CR3 у каждого процесса свой, так что все равно будет гемор с затиранием чужой памяти. для затиратия чужого адресного простраства юзаются функции VirtualProtectEx, WriteProcessMemory. под ХР раньше можно было писать прямо в физическую память из ринг-3, обладаю конечно правами админа. сейчас (после сп3) это не проверял.  

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 22:09 02-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lyrik

Цитата:
А кто говорил про CR3?

Дык, память мапируется на уровне процессора, без CR3 всё равно никуда.

Цитата:
для затиратия чужого адресного простраства юзаются функции VirtualProtectEx, WriteProcessMemory.

Упомянутые функции именно с таблицей страниц и работают, насколько я понимаю. То бишь это средства, предоставляемые ОС, естественно, имеющей доступ из-под кольца 0. А речь шла, насколько я понял, об доступе чисто ассемблерными методами, прямым заданием значений регистров.
 


----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 22:47 02-10-2009
Lyrik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62

Цитата:
Упомянутые функции именно с таблицей страниц и работают, насколько я понимаю.

угу.

Цитата:
А речь шла, насколько я понял, об доступе чисто ассемблерными методами, прямым заданием значений регистров.

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

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 23:25 02-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сломать дело не хитрое.
 
никто не может объяснить, смотрел примеры кодов с использованием 21 h прерывания для создания файлов и их записи. в примерах из одного источника все коды снабжаются вот таким пассажем:
mov ax, cs  
mov ds, ax  
mov es, ax
установкой сегментных регистров - так и написано в каментарии.  особо смысла в этом не видно - поробовал без этого - работает, прогнал на эмуляторе, сегментные регистры сразу с таким значением. начал искать еще примеры гуглой - нашел такие где нету такого. вот на фига это мога быть????  

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 11:20 03-10-2009 | Исправлено: bomzzz, 11:26 03-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
Пример есть пример. В общем случае программист сам должен следить за правильным содержанием регистров. Ему виднее, надо в данном случае менять его, или оно и так какое надо.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 13:42 03-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
но если пример состоит только из примера использования прерывания 21 h какой смысл в него пихать что то???

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 15:10 03-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
А для напоминания того, что необходимо сделать в общем случае. Потому и включают в него то, что в данном конкретном варианте может быть излишне.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 15:38 03-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну тогда в примере так и надо было написать что это пример не прерывания а вообще...
 
ну то есть никакого смысла в изменении регистров нету скорее всего

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:11 03-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
В описании каждой функции прерывания указано, что должно быть в регистрах. Вот и надо смотреть на это описание, на свой код, и тогда уже решать, есть смысл в изменении или нет.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 17:29 03-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
org 100h
jmp start
filename db "MyFile",0
handle dd 0
start:
mov ax, cs
mov ds, ax
mov es, ax
mov cx, 0
mov ah, 3ch
mov dx, offset filename
int 21h
mov handle, ax
mov bx, handle
mov ah, 3eh
int 21h
retf
 

в описании прерываний как раз ни слова об этом нет. вот зачем тут регистры сегментные трогать??? которые в ком файле и так указывают на сегмент кода.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:37 03-10-2009 | Исправлено: bomzzz, 17:41 03-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
А к прерыванию это никакого отношения и не имеет - это настройка регистров на входе в программу. Зачем автор её впихнул в com-файл, лучше у него спросить.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 18:16 03-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
он пади умер давно. просто тут много примеров, но везде где работа с файлами вот эта настройка регистров.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 18:19 03-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
Дык, небось все они из одного делались, методом копипаста.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 18:35 03-10-2009
Infinite Retrieval

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А речь шла, насколько я понял, об доступе чисто ассемблерными методами, прямым заданием значений регистров.  

Именно это я и спрашивал. Тобишь из под винды вообще нельзя обращаться к физическому адресу напрямую через регистры сегментов?

Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 22:39 03-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Infinite Retrieval

Цитата:
Тобишь из под винды вообще нельзя обращаться к физическому адресу напрямую через регистры сегментов?

Более того, там и содержимое сегментных регистров имеет другой смысл.
Здесь можно подробнее почитать, если интересно.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 23:18 03-10-2009 | Исправлено: Abs62, 23:22 03-10-2009
Infinite Retrieval

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Более того, там и содержимое сегментных регистров имеет другой смысл.

Зачем такие сложности понадобились?

Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 23:22 03-10-2009
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Infinite Retrieval
Так работает защищённый режим процессора. Ссылку я уже кинул.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 23:24 03-10-2009
Infinite Retrieval

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ок, я эту тему с защищённым режимом не изучал раньше, сейчас восполню пробел, спасибо за ссылку.

Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 23:28 03-10-2009
Lyrik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Infinite Retrieval

Цитата:
Тобишь из под винды вообще нельзя обращаться к физическому адресу напрямую через регистры сегментов?

можно, но только на нулевом кольце.

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 20:16 05-10-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru