Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 548
от 20.05.2003, 23:10
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3251 Отправлено ответов: 9485 Активность: 291.7 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Vdr Статус: Начальный Общий рейтинг: 108.1 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 150.4 URL: Программирование [Подробней >>] |
Ramzes Статус: Опытный Общий рейтинг: 128.11 URL: Microsoft homepage [Подробней >>] |
DiGiT[old] Статус: Профессиональный Общий рейтинг: 111.63 [Подробней >>] |
Илья Статус: Опытный Общий рейтинг: 103.76 [Подробней >>] |
Lynx Статус: Опытный Общий рейтинг: 133.88 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.08 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 133.23 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
Knignick Статус: Доверительный Общий рейтинг: 113.77 [Подробней >>] |
Eugene Статус: Профессиональный Общий рейтинг: 108.47 URL: мощный файловый архив [Подробней >>] |
shum Статус: Начальный Общий рейтинг: 110.25 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 119.14 [Подробней >>] |
Hayk Статус: Начальный Общий рейтинг: 112.85 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 122.83 URL: моя рассылка по Protected Mode [Подробней >>] |
Hangatyr Статус: Опытный Общий рейтинг: 121.01 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3215. Уважаемые эксперты! Не знете ли вы, как получить уникальный номер CD диска под Windows? Мне требуетс... (ответов: 1)
Вопрос № 3216. Прога Remote Task Manager позволяет запустить задачу от имени, например, winlogon. Как это можно с... (ответов: 3)
Вопрос № 3217. Уважаемые эксперты, есть следующий вопрос: имеется программа которая пишет в COM порт некоторую посл... (ответов: 2)
Вопрос № 3219. Здра! Кто-нить подскажите плз формулу генератора случ чисел по нормальному закону. Генератор равноме... (ответов: 6)
Вопрос № 3220. Привет, эксперты! По поводу вопроса №3160. Когда-то я написал полноценный дебагер для Spectrum. Зани... (ответов: 3)
Вопрос № 3223. Maverick это исходник проги Проблемы с переносом в файл После screen: читаю из видиобуфера и в фай... (ответов: 1)
Вопрос № 3224. Посмотрел тут рассылку по ассемблеру и ответы на вопрос 3167 (см.Приложение). В общем, Broken Sword ... (ответов: 1)
Вопрос № 3226. Каким образом можно в реальном режиме работы процессора адресовать 4 Гб оперативной памяти с помощью... (ответов: 6)
Вопрос № 3227. Привет. Помогите ПОЖАЛУЙСТА!!! Я написала курсовик скоро сдавать, а он не работает... Это должен б... (ответов: 5)
Вопросов: 9, ответов: 28
Вопрос № 3215 |
Уважаемые эксперты!
Не знете ли вы, как получить уникальный номер CD диска под Windows? Мне требуется защитить CD от копирования, на ни одна программа из найденых мною в инете, у меня не заработала. Вот пытаюсь теперь решить проблему ручками.
Если есть инфа по файловой системе CDFS и способах доступа к ней из под Win, просьба кинуть на мыло.
Вопрос отправлен: 15.05.2003, 16:55
Отправитель: Aleksey_1 (aleksey_1@list.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Vdr
Приветствую Вас, Aleksey_1!
К сожалению, я не смогу помочь достать номер CD, но знай, что для защиты диска от копирования тебе это не поможет...
Дело в том,что никто не мешает "пирату" отформатить диск с тем номером, который необходим. Если факт защиты от копирования критичен, то ищи другой способ... на пример, наиболее часто используемый метод - применение особого форматирования нулевой дорожки.
Ответ отправлен: 16.05.2003, 10:16
Отправитель: Vdr
Вопрос № 3216 |
Прога Remote Task Manager позволяет запустить задачу от имени, например, winlogon. Как это можно самому сделать?
Вопрос отправлен: 15.05.2003, 19:31
Отправитель: baldr (baldr@pisem.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, baldr!
CreateProcessAsUser, кажется.
Ответ отправлен: 15.05.2003, 23:05
Отправитель: Bob Johnson
Отвечает Ramzes
Добрый день, baldr!
Попробуй разобраться со структурой SECURITY_ATTRIBUTES, которая передается как параметр в CreateProcess
И еще посмотри функции GetSecurityDescriptorDacl, i drugie podobnye funkcii
Ответ отправлен: 17.05.2003, 10:42
Отправитель: Ramzes
Отвечает DiGiT[old]
Здравствуйте, baldr!
The CreateProcessWithLogonW на первый взгляд. А так правой кнопкой мыши по любому объекту и запуск от имени... :)
Ответ отправлен: 16.05.2003, 03:58
Отправитель: DiGiT[old]
Вопрос № 3217 |
Уважаемые эксперты, есть следующий вопрос:
имеется программа которая пишет в COM порт некоторую последовательность байт, которую хотелось бы немного изменить и направить вместо COM в LPT. Как это можно сделать? Программа написана под WINDOWS, работает в WIN98. Хотелось бы сделать это не трогая саму исходную программу. Пока задача решена так, COM подключен к COMу другого компьютера который и выполняет преобразование и запись в LPT, еще наверное можно подключить на этом же компе один COM к другому, но тогда придется остаться без мыши. В общем жду помощи.
Вопрос отправлен: 15.05.2003, 22:50
Отправитель: Raptor
[Следующий вопрос >>] [Список вопросов]
Отвечает Илья
Здравствуйте, Raptor!
Теоретически, можно какой-либо COM перекрестно соеденить с самим собой. Т.е. ножичком по шлейфу, перекрестить нужные проводочки... Полученная заглушка будет автоматически пересылать данные туда, откуда они пришли. Дальше можно все это читать, пересылать... Только я не знаю, на сколько это реально. На практике никогда не пробовал, а в теории (если не забыл архитектуру ПЭВМ) все выглядит даже очень реально.
Ответ отправлен: 15.05.2003, 23:54
Отправитель: Илья
Отвечает Bob Johnson
Добрый день, Raptor!
> но тогда придется остаться без мыши
А USB и PS/2 тебе зачем? В них мышь работает лучше чем в ком порте (частота опроса выше). Потом, в принципе, можно воткнуть мультикарту или контроллер RS232 и получить еще парочку com-портов.
Ну и ближе к делу (телу): если трогать программу не хочется, определи, как она обращается к com-порту, например, с помощью CreateFile и WriteFile. Тогда ты можешь написать драйвер (VxD - это легко под 98), который будет патчить функции CreateFile и WriteFile таким образом, чтобы если происходит обращение к Com порту, реально открывался LPT порт и данные (с нужными изменениями) шли в него.
Ответ отправлен: 16.05.2003, 19:45
Отправитель: Bob Johnson
Вопрос № 3219 |
Здра!
Кто-нить подскажите плз формулу генератора случ чисел по нормальному закону. Генератор равномерного распределения у меня есть.
Если еще и реализацию дадите (на любом языке) - буду вдвойне благодарен...
Вопрос отправлен: 16.05.2003, 10:55
Отправитель: Alex
[Следующий вопрос >>] [Список вопросов]
Отвечает Lynx
Здравствуйте, Alex!
Лично я пользуюсь следущими генераторами: ({}-дробная часть)
1. N(i+1) = { 37 * N(i) + 1 }
2. N(i+1) = { (Pi - 2 + N(i)) ^ 2 }
3. N(i+1) = { e ^ (N(i) + Pi) }
4. N(i+1) = { 11 * N(i) + Pi }
5. N(i) = ABS( FIX( COS( SIN( i ^ 2)) * const))
Если тебе надо для криптографии, то я напишу тебе про Рекурентные двоичные последовательности. Вышлю на мыльник (если дашь) дабы не засорять рассылку... Или используй потоковый шифр типа RC4 для генерации ПСП. Описание и реализацию на асме тоже могу выслать.
Ответ отправлен: 16.05.2003, 14:33
Отправитель: Lynx
Отвечает vitya
Здравствуйте, Alex!
В чем проблема-то?
Вычисляй нормальное распределение через формулу (1/2*pi.. и так далее), задавая на вход равномерное распределение.
Ответ отправлен: 16.05.2003, 12:50
Отправитель: vitya
Отвечает Maverick
Добрый день, Alex!
Мыло то дай, есть исходники от Юрова.
Maverick@nightmail.ru
Ответ отправлен: 16.05.2003, 14:50
Отправитель: Maverick
Отвечает Knignick
Добрый день, Alex!
Я знаю два способа:
1. Используя предельную теорему - просто k раз проссумировать равномерные значения.
2. Считать численно интеграл функции распределения, перебирая вероятность от 0..1. Т.н. метод обратных функций.
Реализация ушла бы мылом, если б ты его указал <:)
Ответ отправлен: 16.05.2003, 20:29
Отправитель: Knignick
Отвечает Bob Johnson
Доброе время суток, Alex!
Возьми график функции, которую тебе надо получить от генератора случайных чисел и заполни таблицу, по которой было бы возможно осуществить преобразование равномерно распределенных чисел в нормальный закон. Если диапазон чисел небольшой (например, не больше 32767), то и таблица будет небольшая (для современных объемов).
Ответ отправлен: 16.05.2003, 19:45
Отправитель: Bob Johnson
Отвечает Eugene
Приветствую Вас, Alex!
Есть класс ПСЧ, основанных на примитивных полиномах GF(2).
Только примитивные полиномы могут давать псевдо-случайные последовательности максимальной длиной (2^n - 1). Например примитивным является следующий полином: x^900 + x + 1.
Период повторения будет равен 2^900 - 1 = 8,45 * 10^270. В общем охренительный период. В приложении показано вычисление периода ПСЧ с помощью примитивных полиномов на языке для Matlab и на ассемблере. В принципе разобравшись можно написать и генератор. Написал бы более подробно, если бы указал мыло.
Приложение:
Ответ отправлен: 16.05.2003, 14:22
Отправитель: Eugene
Вопрос № 3220 |
Привет, эксперты!
По поводу вопроса №3160. Когда-то я написал полноценный дебагер для Spectrum. Занимал он примерно 4К. И отнял у меня примерно полгода времени (а может и больше - не помню точно). С переходом на PC все НАМНОГО усложнилось, по крайней мере для меня. Написать дебагер, а тем более компилятор (это кстати намного сложнее будет!) в одиночку практически невозможно. Но вот написать интерпретатор, силами нескольких человек вполне реально. Это, конечно, почти бесполезное занятие (моим дебагером кроме меня и моих друзей по институту никто не пользовался), но это намного интересней, чем написание вирусов (всего-лишь мое мнение, может не совпадать с мнением остальных). Да и приобретенный опыт возможно пригодиться в дальнейшем. Так что, кто заинтересовался - пишите мылом. Может чего дельного получится!
Вопрос отправлен: 16.05.2003, 12:04
Отправитель: Дмитрий (demetrius2003@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Здравствуйте, Дмитрий!
Не, вирусы намного интересней, дебаггером будешь пользоваться только ты, а вирусом куча пользователей :)
Автор хорошего вируса должен знать все тонкости операционной системы и т.д. Это образование, проверка своих сил. Хороший полиморфный вирус, уже своего рода дизассемблер. Вобщем это искуство.
Кто заинтересовался, тоже пишите мылом.
Ответ отправлен: 16.05.2003, 14:50
Отправитель: Maverick
Отвечает Bob Johnson
Приветствую Вас, Дмитрий!
> Когда-то я написал полноценный дебагер для Spectrum
Клево... Только спектрум был гооораздо проще. Кстати, какая скорость трассировки была у твоего дебугера (по отношению к реальной скорости выполнения программы)?
> а тем более компилятор (это кстати
Если писать компилятор с языка АСМ, то это будет не сложнее, а проще, т.к. асм - это достаточно строгий язык, без всяких там typedef и все такое (я имею ввиду не OOD-Asm, который тоже наворочен).
> Но вот написать интерпретатор, силами нескольких человек
Интерпретатор чего? Я вот сам писал по заказу интерпретатор lisp (ну упрощенной версии, конечно) на С++ - и ничего за недели 2-3 написал и работает только в путь. Так что все зависит от языка программирования...
> но это намного интересней, чем написание вирусов
Ну да? Почему это еще? Это совершенно разные вещи - интерпретатор и вирус. Хороший вирус тоже интересно писать, т.к. он требует он программиста значительно больших знаний и языка, и ос, чем интерпретатор (возьми, например, cih - вообще великолепно написан... Такой вирус и написать не стыдно).
Ответ отправлен: 16.05.2003, 19:45
Отправитель: Bob Johnson
Отвечает shum
Доброе время суток, Дмитрий!
Знаешь судя по тому как ответили на вопрос 3160, энтузиастов 0. Во вторых полностью согласен и как инициатор вопроса №3160 Принемаю и жду реальных предложений.
nochnaya_bezdna@mail.ru
Ответ отправлен: 17.05.2003, 19:25
Отправитель: shum
Вопрос № 3223 |
Maverick это исходник проги
Проблемы с переносом в файл
После screen: читаю из видиобуфера и в файл 3 РАЗА! (циклом)
Файл создает screen.txt в том же каталоге что и прога
Приложение:
Вопрос отправлен: 16.05.2003, 18:12
Отправитель: Денис
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Добрый день, Денис!
Извиняюсь за задержку, инет был отключен :(
Ааа ну все ясно, нафигаж ты экран то 3 раза перерисовываешь?
Ты же говорил, что тебе нужно просто сохранить его 3 раза.
Вот и перерисуй его 1 раз, а в файл запиши 3 раза, в цикле.
Указатель не трогай, он автоматически на конец встает.
Ответ отправлен: 19.05.2003, 13:05
Отправитель: Maverick
Вопрос № 3224 |
Посмотрел тут рассылку по ассемблеру и ответы на вопрос 3167 (см.Приложение).
В общем, Broken Sword на вопрос не ответил, Hangatyr дал правильный ответ, но не полный.
Сначала матчасть. Дочерняя программа - это программа, запускаемая другой программой (родителем). Она наследует от родителя окружение и часть данных в PSP (в т.ч. список открытых файлов). И при этом не важно, поддерживает ли операционная система многозадачность или нет. Просто в случае однозадачной ОС выполнение родительской программы приостанавливается до завершения выполнения дочки, а в многозадачной можно либо выполнять их параллельно, либо также ожидать завершения дочерней.
По условию задачи в вопросе не требуется параллельная работа родителя и дочки - родитель выполняем предварительную настройку, передает управление дочке, по окончании - выполняет завершающие действия.
Организация выполнения дочерней программы осуществляется достаточно просто с использованием функции 4b00h прерывания 21h. Перед вызовом нужно подготовить структуру параметров для вызываемой программы:
wEnvSeg dw 0
pfCmdTail dd PSP:80h
pfrFCB_1 dd PSP:5ch
pfrFCB_2 dd PSP:6ch
где PSP - сегментный адрес PSP родительской программы.
Адрес этой структуры нужно занести в регистры ES:BX. Регистры DS:DX должны содержать адрес строки с названием запускаемого файла, оканчивающуюся 0. Перед вызовом прерывания нужно где-нибудь сохранить значения ВСЕХ РЕГИСТРОВ (кроме CS и IP), потому что все значения будут потеряны.
Еще перед вызовом нужно освободить место для загрузки программы (функция 4ah прерывания 21h).
Передачу параметров можно осуществить несколькими способами:
1. Передать в командной строке
2. Передать с помощью области межпрограммного взаиможействия (IAC)
3. Через прерывания
4. Через область векторов прерываний
5. Еще как-нибудь :-)
Первый вариант не удовлетворяет условию задания.
Третий - достаточно понятен, в родительской программе пишешь обработчик какого-нибудь прерывания (например, 2fh), в котором через регистры возвращаешь нужные значения или адрес в памяти, где они находятся. Далее в дочерней программе вызываешь это прерывание с признаком "свои" и получаешь данные. Этот вариант вполне надежен.
Четвертый - берешь какое-нибудь неиспользуемое прерывание (например, 60h) и используешь место в области векторов прерываний для передачи параметров (4 байта по адресу 0:4*60h; для прерывания с номером N - 0:4*N). Минус - вероятность "отрубить" какую-нибудь программу, все-таки использующую это прерывание. И ненулевая вероятность вообще завесить машину, если это прерывание будет кем-нибудь вызвано.
Второй способ - в принципе аналогичен четвертому, только для передачи данных используется специальная область в сегменте данных BIOS'а, занимающая 16 байт и называемая IAC - Inter Application Communication area. Начальный адрес этой области - 0040:00F0. Эта область специально была задумана разработчиками именно для передачи данных между программами. Но не гарантируется, что данные в этой области не будет чем-нибудь перезаписаны.
Приложение:
Вопрос отправлен: 16.05.2003, 18:33
Отправитель: Ayl
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
В общем, отправил в рассылку...
Ответ отправлен: 16.05.2003, 18:46
Отправитель: Ayl
Вопрос № 3226 |
Каким образом можно в реальном режиме работы процессора адресовать 4 Гб оперативной памяти с помощью 32-х разрядных регистров?
Вопрос отправлен: 16.05.2003, 22:37
Отправитель: Hoblin
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Hoblin!
Никаким. В реальном режиме можно адресовать 1 Мб + 64 Кб - 16 б и все тут. Единственной заморочкой является переход в защищенный режим, установка пределов сегментов на 4 гб, базы на 0, а потом возврат в реальный режим. Но это уже назвали "нереальным" режимом :)
Ответ отправлен: 17.05.2003, 15:30
Отправитель: Bob Johnson
Отвечает vitya
Приветствую Вас, Hoblin!
Увы, никак... Надо перейти в защищенный режим.
Ответ отправлен: 17.05.2003, 10:04
Отправитель: vitya
Отвечает Ramzes
Добрый день, Hoblin!
По моему нельзя.
Адресовать 4ГБ адресного пространства можно только в защищенном режиме, при включенной страничной адресации. Все-таки эти 4 ГБ у тебя виртуальные, и обеспечиваются за счет свопинга, а включить страничную адресацию в реальном режиме не удастся, процессор выдаст исключение.
Ответ отправлен: 17.05.2003, 11:00
Отправитель: Ramzes
Отвечает Lynx
Добрый день, Hoblin!
ИМХО никак. Real Mode видит только первые 640Kb памяти, а всякие Himem.sys всё равно работают через защищённый режим.
Ответ отправлен: 17.05.2003, 16:18
Отправитель: Lynx
Отвечает Knignick
Приветствую Вас, Hoblin!
В ДОС разве что через himem.sys но он вроде видит только 64Mb ОЗУ, к тому же 4Gb имеется ввиду вобщем случае виртуальной памяти, а где она в ДОС?
Ответ отправлен: 17.05.2003, 03:19
Отправитель: Knignick
Отвечает Hayk
Здравствуйте, Hoblin!
Dumayu nevozmono. Real'ni rejim ne pozvolyayet rabotat' s 32-x razryadnymi registrami. Ix prosto ne vidno.Maximal'naya pamyat' v real'nom reime eto 1MB + extended memory (po moemu 64 kb).
Ответ отправлен: 19.05.2003, 10:39
Отправитель: Hayk
Вопрос № 3227 |
Привет.
Помогите ПОЖАЛУЙСТА!!!
Я написала курсовик скоро сдавать, а он не работает... Это должен быть хранитель экрана под дос.. Я стала писать отдельно резидент, и отдельно графику, а когда вставила методом copy-paste работающую графику в работающий резидент все перестало работать!!! В чем может быть ошибка????? cs: пред переменными подписан
Вопрос отправлен: 16.05.2003, 23:10
Отправитель: Mystique (mystique@bk.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Доброе время суток, Mystique!
Хоть в чем может быть ошибка :)
Показывай исходник. Тут некоторые даже регистры русскими буквами пишут :)
Ответ отправлен: 19.05.2003, 13:05
Отправитель: Maverick
Отвечает Lynx
Доброе время суток, Mystique!
Код пришли. Может быть в нём ошибка.
Ответ отправлен: 17.05.2003, 16:18
Отправитель: Lynx
Отвечает Broken Sword
Добрый день, Mystique!
может забыла сохранить получившееся "нечто"
кидай исходник
Ответ отправлен: 17.05.2003, 19:05
Отправитель: Broken Sword
Отвечает Hangatyr
Приветствую Вас, Mystique!
И что я могу по-твоему ответить, не видев исходника? Тут сотня причин возможна.
Ответ отправлен: 17.05.2003, 00:33
Отправитель: Hangatyr
Отвечает Hayk
Добрый день, Mystique!
Opisaniye dovo'lo taki tumanno, no dumayu problema v napisanii cs: pered peremennimi. CS vsegda pokazyvayet na segment koda. V pervom variante programmi u tebya po vsey veroyatnosti byl odin edinstvenny sgment gde raspolagalis' kod i dannye. Vot i rabotalo. A kogda reshila napisat' razdel'nye 2 komponenti, poyavilis' neskol'ko segmentov(ya tak dumayu), tut to oshibka i vyyavila sebya. Ispol'zyu dlya adresacii peremennix drugie segmentnie registry krome CS i SS. Udashi.
Ответ отправлен: 19.05.2003, 10:44
Отправитель: Hayk
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (40) C / C++ (30) Perl (5) Builder / Delphi (16) Pascal (29) Basic / VBA (13) Java / JavaScript (12) PHP (5) MySQL / MSSQL (4) |
Пользователю Windows 95/98/Me (44) Windows NT/2000/XP (32) "Железо" (30) Поиск информации (14) |
Администратору Windows NT/2000/XP (19) Linux / Unix (10) |
Юристу Гражданское право (7) Семейное право (4) Трудовое право (5) КоАП (4) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
© 2003 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||