Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
"Ассемблер? Это просто! Учимся программировать (FAQ)"
Выпуск № 213
от 12.03.2002, 02:05
Администратор: Калашников Олег
Сайт Администратора: Программирование на Ассемблере
Старейшины рассылки |
1. Broken Sword - ответов: 384. 2. Painbringer (нечто наподобие домашней страницы) - ответов: 369. 3. Sensey - ответов: 320. 4. Dron (Операционная система с нуля!) - ответов: 262. 5. DiGiT - ответов: 255. |
Вопрос № 152 |
Привет эксперты! Как запустить свою прошрамму вместе с другим процессом. Ну например я хочу чтобы моя прога запускалась вместе с Explorer.exe. А нужно это для того чтобы она была невидна из программ которые позволяют завершить любой процесс. Если короче то я хочу чтобы моя прога была не видна в системе!
Сразу хочу предупредить, что это небудет очередным вирусом :-))
Отправитель: Zweit Dron (kondratev@mail.kz)
Вопрос отправлен: 07.03.2002, 06:48
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32
_______________
Отвечает masquer
Доброе время суток, Zweit Dron!
Ну не вирусом, так кейлоггером/трояном :)
Чтобы спрятаться, можно вызвать недокументированную функцию RegisterServiceProcess (но это только для Вин9х, под 2000 не прокатит).
.data
func db "RegisterServiceProcess", 0
.code
invoke GetModuleHandle,ADDR kernel32 ; Getting the address of kernel32.dll
invoke GetProcAddress, eax, ADDR func
mov [RSP], eax
push 1
push 0
call RSP
В твоем случае, если сможешь, можно поступить, как вирусы и поступают - внедрить свой код в explorer. В общем случае - это достаточно сложная задача.
Можно explorer.exe переименовать, написать свой explorer.exe, отработать свою программу, запустить explorer. Предупреждаю сразу - это достаточно опасные для системы эксперименты. Попробуй через RegisterServiceProcess.
Отправлено: 07.03.2002, 11:12
Отправитель: masquer (регистрация: 16/01/2002, ответов на счету: 43)
Украина, Николаев
Вопрос № 153 |
Здравствуйте. Есть самописная VB'шная программа для включения/выключения микрофона (через mixerSetControlDetails winmm.dll) по горячей клавише. Горячая клавиша регистрируется функцией RegisterHotKey библиотеки user32.dll. Нужно сделать так, чтобы микрофон был включен при _удерживании_ горячей клавиши, для этого я врубаю таймер после нажатия клавиши, горячую клавишу удаляю (UnregisterHotKey), и начинаю по таймеру опрашивать состояние удерживаемой клавиши (GetKeyState). Как только клавиша отпущена, она регистрируется в системе ещё раз. И так далее..
Проблема в том, что срабатывает автоповтор клавиатуры (я так думаю) и после нажатия клавиатура начинает повторять нажатие клавиши. Можно ли в системе через WinAPI запретить автоповтор для всей клавиатуры, или для конкретной клавиши (и глобально/только для окна). Также есть проблема, когда другая программа регистрирует для себя эту горячую клавишу (F7). Можно ли это запретить?
Отправитель: Khanz
Вопрос отправлен: 07.03.2002, 07:57
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32
_______________
Отвечает masquer
Здравствуйте, Khanz!
в сообщении WM_KEYDOWN за это отвечает 30-1 бит lParam, если он установлен, значит повторение.
Приложение:
Отправлено: 07.03.2002, 11:02
Отправитель: masquer (регистрация: 16/01/2002, ответов на счету: 43)
Украина, Николаев
_______________
Отвечает LAO
Доброе время суток, Khanz!
А не лучше ли вместо RegisterHotKey вкючить обработчик сообщений WM_KEYDOWN и WM_KEYUP? Схема простая: поступило сообщение WM_KEYDOWN, проверь та ли клавиша (virtKey - сравни с GetKeyState(...)) нажата - включи микрофон, поступило сообщение WM_KETUP от той же клавиши - выключи.
Правда, на VB я этого не пробовал, но в C++ (Visual C++,Builder C++) и в Delphi было без проблем.
А использовать таймер я стараюсь только в крайней необходимости - тормозит прогу, особенно на такой сонной системе, как VB.
Удачи :))
Отправлено: 07.03.2002, 11:07
Отправитель: LAO (регистрация: 05/03/2002, ответов на счету: 22)
Россия, Москва
_______________
Отвечает BMR
Здравствуйте, Khanz!
Попробуй лучше обрабатывать сообщения WM_KEYDOWN и WM_KEYUP,
по первому удаляешь клавишу, по второму её восстанавливаешь.
Отправлено: 09.03.2002, 00:39
Отправитель: BMR (регистрация: 10/02/2002, ответов на счету: 100)
Россия, Пенза
Вопрос № 154 |
Сразу хочу извиниться, я уже задавал вопрос, но не дал адрес и по этому хочу повториться. Если кто посчитает это не хорошим тоном, проше не обижаться - просто удалите это сообщение.
Так проблема состоит в написании программки форматирования дискет. Я совершенно недавно приступил к изучению асма, есть много информации, которая с трудом умещается на винте, а в голову целиком просто не лезит, только маленькими кусочками, да и то не совсем понятными. Может для Вас это просто и понятно, но для меня в свое время было целым открытием, что в асме все идет через регистры и стек, чего небыло в языках высокого уровня, но небольшие программки по этой теме все же были одалены. Вот пришла очередь устройств. Проблема состоит скорее не в том какую функцию.. (блин опять эти высокоуровневие замашки)прерывание взять, как оно работает и т.д. Такой информации много в любом справочнике и ее найти не сможет только самый ленивый, а в том как применить это в программе, т.е. как бы алгоритм действия. Например, (может это совсем и не так) для форматирования дискеты нужно создать сначала загрузочный сектор, информацию о диске, Фаты, корневой, а далее в цикле форматировать кластерами... не, что-то я тут совсем напутал, надо еще почитать...
Чем мне в свое время понравилась рассылка "Ассемблер? Это просто! Учимся программировать", да тем что в ней был выложен код и по нему уже давалось объяснение и даже если не все сразу дошло, то все равно можно было основываясь написать что-то свое. А попробуйте по справочнику Радиодетали собрать приемник!
В общем, если кому не жаль своего времени или есть что-то типа алгоритма или примерчик какой пишите на magistrblack@male.ru
И еще есть небольшой вопросик про резиденты, как они себя ведут под NT, где-то читал что резиденты лучше писать именно под ДОС и они не очень хорошо себя ведут под другими операционками, у меня W2k и не хотелось бы ее сносить... если только сделать загрузочную дискету ДОСовскую... может есть у кого карта подводных камней по этой теме?
Жду любых ответов и пожеланий.
Ламер - это не смысл жизни, это необходимое агрегатное состояние...
Отправитель: Magistrblack (magistrblack@male.ru)
Вопрос отправлен: 07.03.2002, 10:02
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает BMR
Здравствуйте, Magistrblack!
Ждал любых ответов - получи. Советую тебе найти книжку М.Гука. "Аппаратные средства IBM PC". Тебе очень поможет разобраться. А насчёт способов форматирования так смотря для чего. Можно дискетку под разные системы форматировать; Fat - только одна из них. Для начала посто научсь писать на дискету через прерывание 13h, а дальше там есть функции и для низкоуровнего форматирования.
Отправлено: 09.03.2002, 00:46
Отправитель: BMR (регистрация: 10/02/2002, ответов на счету: 100)
Россия, Пенза
Вопрос № 156 |
Здравствуйте, дорогие!
Переписываю программку на Паскале в Дельфи. Мне это в общем не надо, но вдруг когда пригодится, да и из принципа интересно (я переделала ее вначале быстренько как есть в консольное приложение) - когда там пишется writeln('введите - то-то и то-то') по-русски, то при запуске в окне это "введите..." выдается крокозябрами типа псевдографики. Пробовала по-разному(глупости, наверное ;) ), что-то ничего не получается, чтобы по-русски выводило. Может кто знает, а?
С уважением.
Отправитель: Olivka
Вопрос отправлен: 07.03.2002, 10:57
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает LAO
Доброе время суток, Olivka!
Ничего страшного, Olivka, просто в видах и ДОСе разные таблички кодировок. Могу посоветовать два способа выхода из положения:
1) Перекодируй все сообщения перед выводом из виндов в дос. Где-то в недавних выпусках такой вопрос задавался и на него было дано масса полезных ответов, так что, если интересно - просмотри архив "Ассемблер... (FAQ)". Но этот метод интересен только ради тренировочки. На самом деле программка станет более громоздкой.
2) Загрузи тексты .PAS в какой-то из досовских редакторов, например в банальном NC или VC и тупо перебей все выводимые сообщения в этом редакторе.
Удачи :))
Отправлено: 07.03.2002, 12:35
Отправитель: LAO (регистрация: 05/03/2002, ответов на счету: 22)
Россия, Москва
_______________
Отвечает наСИльник
Здравствуйте, Olivka!
Во-первых поздравляю с празником 8 Марта.
На паскале используется при написании русских символов шрифт Terminal, который отличается от других. Это можно посмотреть если вставить текст из паскаля например в Word.
Помоему нужно просто с этим смириться, я привык в программах русский текст не использовать.
Отправлено: 07.03.2002, 15:36
Отправитель: наСИльник (регистрация: 27/02/2002, ответов на счету: 31)
ICQ#114552395
Russia, Orsk
_______________
Отвечает Cardinal
Доброе время суток, Olivka!
Хм. Странно что ты не пробовала русификатор ставить. Нечто типа keyrus.com Старо и проверено.
Отправлено: 07.03.2002, 17:18
Отправитель: Cardinal (регистрация: 22/01/2002, ответов на счету: 41)
ДГТУ
evg_list@aport2000.ru
Россия, Ростов-на-Дону
_______________
Отвечает Painbringer
Здравствуйте, Olivka!
Я знаю.
Типа зделай так (например). Пишешь всю свою прогу не обращая внимания на дрякозяблы. сохраняшь все и закрываешь прожект. ЗАпускаешь FAR. Открываешь его в фаре. нажимая f8 выбираешь мастдаевую кожировку (т.е. когда усе по-русски). Наживаешь Ctrl+A (выделить усе), shift+delete (или ctrl+x). жмешь f8 и вставляешь текст обратно. выходишь сохранив. открываешь в делфе проект. теперь в редакторе дрякозяблы, а в консольке усе пучком будет.
Отправлено: 09.03.2002, 00:20
Отправитель: Painbringer (регистрация: 28/12/2001, ответов на счету: 369)
URL: http://limanski.narod.ru - нечто наподобие домашней страницы
ICQ 146861957
Россия, Дзержинск, Нижегородская обл.
Вопрос № 157 |
Добрый день!
Иногда очень хочется посмотреть содержимое
файла с расширенем .Log
Когда нажимаю открыть, то выдает сообщение:
Не удается найти AcroRd32.exe
Эта программа необходима для открытия файлов типа "Файл Log".
Подскажите как его посмотреть?
Заранее благодарен.
Вадим
Отправитель: Вадим (wadim73@i.com.ua)
Вопрос отправлен: 07.03.2002, 11:38
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает змей
Доброе время суток, Вадим!
Ренейм в *.тхт
Отправлено: 07.03.2002, 11:43
Отправитель: змей (регистрация: 28/12/2001, ответов на счету: 223)
_______________
Отвечает Sensey
Здравствуйте, Вадим!
У тебя просто это расширение связано с Акробатом.
В любом файловом менеджере (Windows Commander, Far) нажми на файле F4 - редактирование.
Все
Кстати, переустанови Акробат Ридер
Отправлено: 07.03.2002, 12:08
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 320)
Тел.: (0572) 41-76-04 д.
ICQ 105679124
Украина, Харьков
_______________
Отвечает GL
Доброе время суток, Вадим!
Открой проводник, поставь курсор на файл с расширением LOG, удерживая нажатым ШИФТ кликни по этому файлу правой кнопкой мыши. В менюшке нажми "Открыть с помощью...". В появившемся окошке в списке выбери Блокнот и установи галку "Всегда использовать выбранную программу".
Отправлено: 07.03.2002, 13:15
Отправитель: GL (регистрация: 02/03/2002, ответов на счету: 18)
Амурская обл., Благовещенск
_______________
Отвечает BMR
Приветствую Вас, Вадим!
Попробуй открыть напрямую в блокноте или чем-то подобным.
Отправлено: 07.03.2002, 13:37
Отправитель: BMR (регистрация: 10/02/2002, ответов на счету: 100)
Россия, Пенза
_______________
Отвечает наСИльник
Добрый день, Вадим!
Просто. Открываешь блокнот->Открыть->Тип файлов(все файлы(*.*)) и открываешь твой лог.
Можно также Открыть с помощью->Блокнот. Если этого нет скопируй ярлык блокнота в папку WINDOWS\SENTTO
Отправлено: 07.03.2002, 14:07
Отправитель: наСИльник (регистрация: 27/02/2002, ответов на счету: 31)
ICQ#114552395
Russia, Orsk
_______________
Отвечает Cardinal
Здравствуйте, Вадим!
Если под виндами - то через ФАР или Нортон (F3 просмотр F4 редактирование). По сути это обычный текстовый ASCII-файл.
Отправлено: 07.03.2002, 17:20
Отправитель: Cardinal (регистрация: 22/01/2002, ответов на счету: 41)
ДГТУ
evg_list@aport2000.ru
Россия, Ростов-на-Дону
_______________
Отвечает root
Добрый день, Вадим!
Кликните левой кнопкой мыши на файле .log, потом правой с нажатым shift'ом. В появившемся меню выберите "Открыть с помощью...". Там выберите Блокнот/Notepad. Можете поставить галочку на "Всегда использовать данную программу", тогда следующий раз достаточно будет просто открыть файл.
Отправлено: 08.03.2002, 01:25
Отправитель: root (регистрация: 28/12/2001, ответов на счету: 35)
РГУ
Адрес: 344064. Ростов-на-Дону, ул. Таганрогская, 50а
Тел.: (8-632) 77-97-02
URL: http://www.aofd.boom.ru - Когда-то будет homepage
ICQ: 92779849
Россия, Ростов-на-Дону
_______________
Отвечает Frank
Добрый день, Вадим!
В принципе это Acrobat Reader. А в винде прописано тип файлов .LOG открывать им. Тебе нужно или смотреть вручную, или переопределить расширение на любуй доступный редактор. Заходи в проводник опции->свойства папки->типы файлов. Убери оттуда расширение .LOG а потом когда попытаешься открыть лог файл винда сама спросит программу для открытия
Отправлено: 08.03.2002, 08:58
Отправитель: Frank (регистрация: 14/01/2002, ответов на счету: 84)
КПИ,ФЭЛ,ДА-02
ICQ: 100341415 E-mail: Frank_U@mail.ru
Украина, Киев
_______________
Отвечает DivX
Приветствую Вас, Вадим!
Дело в том, что до этого кто-пытался открыть файл log Acrobat Reader'ом - непонятно для чего. А после этого AR стерли.
Первый способ - открыть нужную вам программу для просмотра, например notepad, и открыть с помощью нее этот файл
Второй способ - заходите в Explorer (напр. через "Мой компьютер"), в меню "Сервис" ищите "Свойства папки", а там ищите "Типы файлов". В появившемся списке нужно найти нужный тип (скорее всего это "Файл LOG") и удалить его. Теперь при открытии этого файла будет предложено выбрать программу для его открытия, выберите, что вам нужно (только не AcrobatReader :) , и если хотите использовать енту программу всегда пометьте единственную галочку в этом окне.
Отправлено: 08.03.2002, 10:33
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 219)
_______________
Отвечает Tiger
Доброе время суток, Вадим!
Скорее всего, ассоциацию на ЛОГ-файл с АкробатРидером ты задал сам. Открываешь проводник, далее Вид->Свойства папки, там вкладка Типы файлов. Ищешь там свой LOG-файл и удаляешь эту ассоциацию. Потом кликаешь дважды по файлу и перед тобой появится окошко "С помощью какой программы хотите открыть этот файл..." Укажи, например, на блокнот и поставь галочку "всегда отрывать эти типы файлов выбранной программой" и все.
Можно, конечно, удерживая кнопку Shift щелкнуть на файле правой кнопкой мыши и в контекстном меню появится команда "Открыть с помощью..."
Отправлено: 08.03.2002, 13:45
Отправитель: Tiger (регистрация: 28/12/2001, ответов на счету: 132)
URL: http://www.tigeer.narod.ru - Что-то вроде того
_______________
Отвечает Painbringer
Добрый день, Вадим!
Да хоть в том же похабном нортоне по f3 (или farе или чем ты там пользуешься). Под худой конец юзай блокнот. (выбери файл, нажми праву кнопку и выбери открыть с помощью).
Отправлено: 09.03.2002, 00:20
Отправитель: Painbringer (регистрация: 28/12/2001, ответов на счету: 369)
URL: http://limanski.narod.ru - нечто наподобие домашней страницы
ICQ 146861957
Россия, Дзержинск, Нижегородская обл.
_______________
Отвечает kostik
Добрый день, Вадим!
log-файл как правило является текстовым. поэтому для его просмотра годится тектовый редактор (в том числе и Notepad). Странно! почему у вас таким типом файлов связан Acrobat Reader!
Отправлено: 10.03.2002, 15:24
Отправитель: kostik (регистрация: 01/02/2002, ответов на счету: 73)
URL: http://www.ospedia.boom.ru - Что-то вроде домашней странички
mrkirov@mail.ru ICQ UIN #151014798
Россия, Хабаровск
Вопрос № 158 |
У меня вопрос, уважаемые эксперты. По поводу выпуска №13 (ну на счет вируса). Предлагалось пошевелить мозговой извилиной, что я проделал, но безуспешно. Пялился в отладчик (afd), перечитывал выпуск, но так и не понял почему после jmp dword ptr cs:[off_move] cs так ловко стал равен 0bf00h?
В отладчике наблюдаю:
Jmp far cs:[0102], т.е по адресу 0102 должен храниться offset Lab_jmp. Гляжу в окно №2:
1 2 3
Ds: 0100 …..40 56 01….
Все правильно, 0156 90 nop
Но с чего вдруг CS стал равен 0BF00h?
Отправитель: pasha (assemb@bk.ru)
Вопрос отправлен: 07.03.2002, 12:14
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Dron
Добрый день, pasha!
переход то дальний!
при дальнем переходе меняется не только ip, но и cs.
значение, записываемое в cs должно находиться по адресу off_move + 2
Отправлено: 07.03.2002, 12:24
Отправитель: Dron (регистрация: 28/12/2001, ответов на счету: 262)
Информзащита
Адрес: Москва
URL: http://asmdev.narod.ru/asmos.html - Операционная система с нуля!
2144510
Россия, Москва
_______________
Отвечает Broken Sword
Здравствуйте, pasha!
Это как раз один из тех моментов, к-рый почему то сначала трудно догнать. Смотри. По смещению 0102 перед исполнением jmp far cs:[0102] если посмотреть в том же AFDPro видим:
...
0102: 56 01 00 BF ...
...
теперь CS:IP стал равен BF00:0156. Что здесь, спрашивается, не ясно?
Еще у новичков существует много "всеобщих заблуждений", что значение сегм. регистра CS, например, может изменить только команда CALL. Это далеко не так. JMP FAR (дальний джамп) тоже этим делом помышляет, а в книгах (ито не во всех) об этом упоминают как то вскользь и туманно.
Еще ты зачем то от смещения 0102 полез "вниз" (к 0100). ........ мы про это уже 200 раз говорили: "... когда обращаешься к слову как к слову, а к двойному слову, как к двойному слову в памяти путанницы не возникает..." ) т.е. другими словами это звучит так: "то место, откуда брать ПЕРЕВЕРНУТЫЕ ЗНАЧЕНИЯ, идет в памяти слева-направо (0102-0104)".. Вообщем, это хороший пример (13 выпуск) повтыкай минут 5 и поймешь.
Отправлено: 07.03.2002, 14:00
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 384)
ICQ#64476575
Украина, Одесса
Вопрос № 159 |
Вычитал в мартовском журнале “Chip”, что есть фирмы, занимающиеся восстановлением информации на винчестере. Мол для них стертые, замененные файлы восстановить вообще не проблема, восстанавливают информацию даже после форматирования. Ну на счет стертыхфайлов понятно, ведь они не стираются, а просто область, кот. они занимают помечается как свободная. Тяжелее понимаю как на счет замененных файлов, и уже совсем не укладывается в голове восстановление после форматирования. Не сказки ли все это? А если нет, то объясните пожалуйста как это работает. Может кроется что-то в файловой системе (в таблице размещения файлов или еще где). И пожалуйста подскажите где взять информацию по файловым системам.
Отправитель: pasha
Вопрос отправлен: 07.03.2002, 12:17
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает змей
Доброе время суток, pasha!
Слухай....если ты винт форматнул низким уровнем и на диске одни нолики...каким макаром ты востановишь инфу???
Отправлено: 07.03.2002, 13:24
Отправитель: змей (регистрация: 28/12/2001, ответов на счету: 223)
_______________
Отвечает BMR
Добрый день, pasha!
Восстановить можно, если при форматировании не переписывается полностью дорожка, а записывается только служебная информация для дорожки и для диска переписывается FAT. тогда можно восстановить инфу, потеряв имена, атрибуты и т.д. файлов, т.к. информация остаётся записанной на дорожке.
Отправлено: 07.03.2002, 13:35
Отправитель: BMR (регистрация: 10/02/2002, ответов на счету: 100)
Россия, Пенза
_______________
Отвечает kostik
Добрый день, pasha!
Во время форматирования данные физически с диска не уничтожаются (как и в случае с удалёнными файлами). Поэтому можно их восстановить. Сейчас существует очень много Unformat-утилит. они поставляются с такими комплектами, как Norton utilities, McAfee utilities и т.д.
Отправлено: 10.03.2002, 15:24
Отправитель: kostik (регистрация: 01/02/2002, ответов на счету: 73)
URL: http://www.ospedia.boom.ru - Что-то вроде домашней странички
mrkirov@mail.ru ICQ UIN #151014798
Россия, Хабаровск
Форма отправки сообщения |
Заполните приведенную ниже форму для того, чтобы отправить вопрос. Дополнительную информации по пользованию формой для подписчиков и экспертов можно получить, нажав на знак вопроса в соответствующем разделе, при этом информация будет отображена в отдельном окне.
В почтовых программах форма не работает!!! Открывайте рассылку в браузере Internet Explorer, где и набирайте Ваш вопрос.
© 2000 - 2002 Россия, Москва. Авторское право: Калашников О. А. |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||