Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 531
от 27.04.2003, 13:40

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 3067
Отправлено ответов: 8987
Активность: 293.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Knignick
Статус: Доверительный
Общий рейтинг: 118.34
[Подробней >>]
Hangatyr
Статус: Доверительный
Общий рейтинг: 130
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 150.32
URL: Программирование
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 134.86
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.93
[Подробней >>]
 
Илья
Статус: Опытный
Общий рейтинг: 103.82
[Подробней >>]
keleb-glin
Статус: Опытный
Общий рейтинг: 109.17
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 114.98
[Подробней >>]
 
Tigran K. Kalaidjian
Статус: Доверительный
Общий рейтинг: 114.34
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 114.26
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 123.38
URL: моя рассылка по Protected Mode
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 3030. Здравствуйте! Я пишу резидент который перехватывает 9-ое препывание и выводит символ в 12 строку на ... (ответов: 1)
Вопрос № 3031. Доброе время!! Сказали, что вопрос по Assembler'у... Подскажите, пожалуйста, где можно найти заголов... (ответов: 3)
Вопрос № 3032. Здравствуйте уважаемые эксперты, если Вам не трудно, обьясните мне пожалуйста, как сделать так, что ... (ответов: 3)
Вопрос № 3033. Отвечаю для непонятливых.. во-первых, я - девушка ^_^ можно было и по мылу догадаться.. во-вторых.. ... (ответов: 3)
Вопрос № 3034. Добрый день ! Подскажите, пожалуйста: 1 тик = 1/18 сек или 1/18 мсек... (ответов: 4)
Вопрос № 3035. Hangatyr, мой мэйл - feanar@mail.ru Спасибо...... (ответов: 1)
Вопрос № 3036. Здравствуйте, господа Эксперты! По поводу вопроса № 2947. Расскажите пожайлуста по подробнее... (ответов: 4)
Вопрос № 3037. Здравствуйте, эксперты. У меня вопрос по защищенному режиму: правильно ли я понял, что в регистры GD... (ответов: 6)
Вопрос № 3038. Привет всем! Bob Johnson, у тебя вирус в http://bobjohnson.nm.ru/files/debploit.zip ... (ответов: 2)

Вопросов: 9, ответов: 27


 Вопрос № 3030

Здравствуйте!
Я пишу резидент который перехватывает 9-ое препывание и выводит символ в 12 строку на экране. Проблема в том что нужно чтобы символ повторялся и в командной строке и в 12 строке. А у меня получается, что в 12 строке все видно а в ком. строке пусто. Для перехода на 12 строку я использую 02h функцию 10-го прерывания. пробовал перед переходом сохранить текущее положение курсора функцией 03h, но ничего не получилось. Подскажите как это можно сделать? И еще, в ДОСе все выводиться в 12 строке, а в 98-й винде в FARе наоборот в ком. строке все видно а в 12 пусто. Спасибо за ответы.



Вопрос отправлен: 22.04.2003, 13:48
Отправитель: Александр

[Следующий вопрос >>] [Список вопросов]

Отвечает Knignick

Доброе время суток, Александр!
Гм.. а ты "родной" обработчик для 9-го вызываешь?
Либо функцией 06h int 21h (DL=код символа) выводи его на консоль а потом уже в свою 12 строку.


Ответ отправлен: 23.04.2003, 04:15
Отправитель: Knignick


 Вопрос № 3031

Доброе время!! Сказали, что вопрос по Assembler'у...
Подскажите, пожалуйста, где можно найти заголовок
виндовского EXE-файла. Хочется дописать в экзешник кусок кода, так, чтобы работал. Как в книге Фаронова по Паскалю,
но в винде структура файла другая.
Если скинете пример - буду крайне благодарен!
Спасибо!!!



Вопрос отправлен: 22.04.2003, 16:57
Отправитель: =FeanaR=

[Следующий вопрос >>] [Список вопросов]

Отвечает Hangatyr

Здравствуйте, =FeanaR=!
В чем, собственно, проблема? Поищи в инете описание формата PE. Я бы его тебе выслал, если бы ты указал мыло...


Ответ отправлен: 22.04.2003, 17:38
Отправитель: Hangatyr


Отвечает Bob Johnson

Здравствуйте, =FeanaR=!
Посмотри на www.wasm.ru - там есть перевод туториала Iczelion'а по структуре PE файлов. Еще можно копать MSDN.


Ответ отправлен: 23.04.2003, 01:31
Отправитель: Bob Johnson


Отвечает Maverick

Добрый день, =FeanaR=!
На www.wasm.ru в статьях iczelion'а детальное описание


Ответ отправлен: 23.04.2003, 05:26
Отправитель: Maverick


 Вопрос № 3032

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



Вопрос отправлен: 22.04.2003, 16:56
Отправитель: Michel (michaelgul@hotmail.com)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Приветствую Вас, Michel!
Под ДОС? Видимо да.
Тогда тебе вначале необходимо освободить часть памяти, которая вначале вся отдается (о как) твоей программе. Поэтому ты не можешь ничего другого запустить - свободной памяти нет. Функция 4Ah - изменение размера выделенного блока памяти.


Ответ отправлен: 23.04.2003, 01:32
Отправитель: Bob Johnson


Отвечает Hangatyr

Доброе время суток, Michel!
1. Если пишешь под Windows, то можно использовать ShellExecute или CreateProcess. Подробности - в любом справочнике по API.
2. Если под DOS, то функцию 4bh прерывания 21h, но тут придется сделать некоторые приготовления - освободить память, создать блок параметров, передать имя программы... После завершения управление будет возвращено исходной программе.



Ответ отправлен: 22.04.2003, 17:38
Отправитель: Hangatyr


Отвечает vitya

Доброе время суток, Michel!
К вашим услугам функции: ShellExecute, ShellExecuteEx, CreateProcess.
Параметры тоиже можно задавать.
Для дальнейшего изучения загляните в MSDN.

Ответ отправлен: 22.04.2003, 17:12
Отправитель: vitya


 Вопрос № 3033

Отвечаю для непонятливых.. во-первых, я - девушка ^_^
можно было и по мылу догадаться.. во-вторых.. для тех, кому непонятна кодировка.. откройте в досе или в бокноте шрифтом - терминал
Удачи, ребятки



Вопрос отправлен: 22.04.2003, 17:18
Отправитель: Эланор (priestess@nm.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Hangatyr

Доброе время суток, Эланор!
Насколько я понял, под непонятливыми подразумеваюсь я :(
1. На мыло я только сейчас внимание обратил... так что, леди, прошу прощения ;)
2. И кто сказал, что мне непонятна кодировка?

Ответ отправлен: 22.04.2003, 18:23
Отправитель: Hangatyr


Отвечает Bob Johnson

Приветствую Вас, Эланор!
> можно было и по мылу догадаться
Ну если ты такая умная, то и сама понимаешь, что и e-mail можно любой получить, и именем любым подписаться. А priestess мне лично только warcraft 3 напоминает.
> Удачи, ребятки
Спасибо, конечно, но это тебе удачи с твоей программой...


Ответ отправлен: 23.04.2003, 01:32
Отправитель: Bob Johnson


Отвечает Maverick

Приветствую Вас, Эланор!
1. Можно нескромный вопрос:"И что ?" Я по мылу не догодался, даже если бы и догодался... Это что, предложение? :)
2. Судя по ответам кодировка всем понятна.
P.S. По вопросу... Можно же было запустить под отладчиком и поглядеть где прога вылетает, если так не видно. Твоя программа же как то должна вернуть управление операционной системе. В коде в ah заносится ф-ия 4ch, а само прерывание не вызывается... короче int 21h вконце.

Ответ отправлен: 23.04.2003, 05:46
Отправитель: Maverick


 Вопрос № 3034

Добрый день !
Подскажите, пожалуйста:
1 тик = 1/18 сек или 1/18 мсек



Вопрос отправлен: 22.04.2003, 19:37
Отправитель: TiCOiN

[Следующий вопрос >>] [Список вопросов]

Отвечает Knignick

1/18.2 СЕКУНДЫ
точное значение: 1193180/65536 тиков в секунду

Ответ отправлен: 23.04.2003, 03:19
Отправитель: Knignick


Отвечает Ayl

Доброе время суток, TiCOiN!


Ответ отправлен: 24.04.2003, 15:14
Отправитель: Ayl


Отвечает Илья

Приветствую Вас, TiCOiN!
Часы тикают каждые 55мс, или около 18,2 раз в секунду.
TechHELP (c)


Ответ отправлен: 22.04.2003, 21:21
Отправитель: Илья


Отвечает keleb-glin

Доброе время суток, TiCOiN!
1/18 сек


Ответ отправлен: 25.04.2003, 15:06
Отправитель: keleb-glin


 Вопрос № 3035

Hangatyr, мой мэйл - feanar@mail.ru
Спасибо...



Вопрос отправлен: 22.04.2003, 22:10
Отправитель: =FeanaR=

[Следующий вопрос >>] [Список вопросов]

Отвечает Hangatyr

Приветствую Вас, =FeanaR=!
Уже выслал. Если что не так - пиши. Мой мыл - hangatyr@mail.ru

Ответ отправлен: 23.04.2003, 00:06
Отправитель: Hangatyr


 Вопрос № 3036

Здравствуйте, господа Эксперты!
По поводу вопроса № 2947.
Расскажите пожайлуста по подробнее как определить нажатие
трех клавиш одновременно (Ctrl-Alt-Del). Под Real Mode.
Или точнее как считать скан код из 60 порта одновременно
трех клавиш. Более или менее подробно было описано у Ау!,
но если можно по подробнее, то плз.
Заранее благодарен.



Вопрос отправлен: 22.04.2003, 23:50
Отправитель: Andrei

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Доброе время суток, Andrei!
Похоже, что ты не совсем понял принцип работы контроллера клавиатуры (КК). При нажатии (отпускании) клавиши КК определяет один или несколько байтов, соответствующих этой клавише. После этого он последовательно их записывает в порт 60h, выдавая для каждого байта прерывание IRQ1 (соответствует прерыванию 9).
Соответственно, для определения нажатия комбинации Ctrl+Alt+Del тебе нужно отловить нажатие клавиши Del и проверить состояние клавиш Ctrl и Alt. Дело в том, что данная комбинация срабатывает только при условии нажатия клавиши Del после того, как клавиши Ctrl и Alt зафиксированы. Можешь проверить, но нажатие последовательностей Ctrl+Del, Alt; Alt+Del, Ctrl и т.п. не приводят к желаемому эффекту.
Твой обработчик может выглядить так:
1. Сохранить регистры
2. Получить байт из порта 60h
3. Проверить на соответствие клавише Del
4. Если не Del - передать управление оригинальному обработчику
5. Проверить флаги клавиш Ctrl и Alt по адресу 0040:0017
6. Если хотя бы одна не нажата - перейти к шагу 4
7. Подтвердить получение байта из порта 60h
8. Разрешить обработку прерываний контроллеру прерываний
9. Выйти
Ассемблерный код см. в Приложении.
Но учти, что эта схема годится только для DOS'а и реального режима.

Приложение:

Ответ отправлен: 24.04.2003, 15:13
Отправитель: Ayl


Отвечает Bob Johnson

Добрый день, Andrei!
А почему одновременно? Там скан код будет появляться по очереди. Какую первую нажмут - той первый. Тебе нужно читать его и анализировать на нажатия (и отпускания) ctrl и alt. А когда нажмут del - смотреть, нажаты ли остальные и в этом случае не передавать управление старому обработчику.


Ответ отправлен: 23.04.2003, 20:42
Отправитель: Bob Johnson


Отвечает ASMодей

Здравствуйте, Andrei!
Считать из порта 60 одновременно три кода клавиши у тебя не получится,
так как они все равно придут последовательно, даже если ты будешь
стараться нажимать клавиши вместе.
Отловить Ctrl+Alt+Del можно следующим образом:
1. При приходе кода нажатия клавиш Ctrl или Alt устанавливаешь
соответствующие им флажки, при приходе кода отпускания этих клавиш,
соответственно флажки сбрасываешь.
2. При приходе кода нажатия клавиши Del проверяешь состояние флажков для
Ctrl и Alt. Если они установлены, то это означает, что нажата
комбинация Ctrl+Alt+Del.


Ответ отправлен: 23.04.2003, 07:37
Отправитель: ASMодей


Отвечает Tigran K. Kalaidjian

Приветствую Вас, Andrei!
Делаем такую вещь: нажатие del(код 83h) берём из порта 60h, а нажатие Ctrl и Alt, соответственно, берём из битов 2 и 3(если считать с нуля) регистра al после выполнения ф-ции 02h прерывания int16h. Надеюсь, что объяснение понятно, если нет - пишите на kalaidjian@pochtamt.ru

Ответ отправлен: 25.04.2003, 19:20
Отправитель: Tigran K. Kalaidjian


 Вопрос № 3037

Здравствуйте, эксперты.
У меня вопрос по защищенному режиму: правильно ли я понял,
что в регистры GDTR и IDTR загружаются не физические
адреса этих таблиц, и если включена страничная адресация,
то их физический адрес может быть совсем другим?



Вопрос отправлен: 23.04.2003, 08:12
Отправитель: Eugene

[Следующий вопрос >>] [Список вопросов]

Отвечает Knignick

Доброе время суток, Eugene!
Да туда загружаются линейные, а не физические адреса. При включенной страничной трансляции физические совсем необязательно совпадают с линейными

Ответ отправлен: 24.04.2003, 01:26
Отправитель: Knignick


Отвечает Dark_Lord

Здравствуйте, Eugene!
По идее (как и по документации) там находятся линейные адреса!

Ответ отправлен: 23.04.2003, 21:21
Отправитель: Dark_Lord


Отвечает Broken Sword

Здравствуйте, Eugene!
не уверен... технически это возможно. В док-тации написано, что это так и есть (они хранят линейные адреса), значит так и есть


Ответ отправлен: 23.04.2003, 09:57
Отправитель: Broken Sword


Отвечает Hangatyr

Доброе время суток, Eugene!
В принципе, да. Регистры GDTR и IDTR загружаются 48-битными (32-битный линейный адрес и 16-битный предел GDT) операндами, а при включенной страничной трансляции адресов линейные адреса в общем случае не соответствуют физическим.


Ответ отправлен: 23.04.2003, 12:17
Отправитель: Hangatyr


Отвечает Bob Johnson

Здравствуйте, Eugene!
Да, внатуре, так и есть. Страничное преобразование работает и на дескрипторные таблицы. А вот его база (регистр CR3) - содержит физический адрес.


Ответ отправлен: 24.04.2003, 00:53
Отправитель: Bob Johnson


Отвечает keleb-glin

Приветствую Вас, Eugene!
Туда загружается линейный (физический) адрес, т.е. смещение относительно начала оперативы


Ответ отправлен: 25.04.2003, 12:48
Отправитель: keleb-glin


 Вопрос № 3038

Привет всем!
Bob Johnson, у тебя вирус в
http://bobjohnson.nm.ru/files/debploit.zip



Вопрос отправлен: 23.04.2003, 10:31
Отправитель: [-=TT=-] (KunaevNA@PosolskyDom.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Hangatyr

Здравствуйте, [-=TT=-]!
Никакой это не вирус. А то, что он опознается антивирусом ничего не значит - HddKill тоже, к примеру, вирусом назвать сложно, а тем не менее...



Ответ отправлен: 23.04.2003, 12:29
Отправитель: Hangatyr


Отвечает Bob Johnson

Приветствую Вас, [-=TT=-]!
БЛИИИН!!!
Все срочно бросайте курить!!! Марихуана - это не крапива, не бери ее!!! (рекомендую послушать песню Afroman - "Because I Got High" - "потому что я курнул" (дунул, забалдел и т.д.) говорят, что эта песня была еще в конце фильма "Jay And Silent Bob Strike Back", но у меня видимо обрезанная версия, т.к. титров там нет.
Так вот, ты хоть описание-то к DebPloit прочитай... Там же написано, что это прога для взлома... Вот ее и Касперский (или что там у тебя) и считает за вирус!
Ты можешь откомпилировать прилагаемый исходник и сам получишь тот же вирус...
Но вот, что странно - я как-то пользовался ей и Касперский монитор у меня закричал, что вирус. Я зашел под "Гостем". Так я навел на него мышу и нажал "отключить" и все... Вот такая она защита от вирусов.
P.S. Хоть бы персональный вопрос-то отправил... Чего других-то будить...


Ответ отправлен: 24.04.2003, 00:54
Отправитель: Bob Johnson



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (36)
C / C++ (28)
Perl (7)
Delphi (13)
Pascal (23)
Basic / VBA (8)
Java / JavaScript (10)
PHP (3)
MySQL / MSSQL (3)
Пользователю
Windows 95/98/Me (28)
Windows NT/2000/XP (22)
"Железо" (23)
Поиск информации (11)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (10)
Юристу
Гражданское право (8)
Семейное право (5)
Трудовое право (5)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное