Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
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.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту 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 |
Отписаться
Убрать рекламу |
В избранное | ||