Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 364
от 11.09.2002, 08:50
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1220 Отправлено ответов: 3750 Активность: 307.3 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Pablo Статус: Профессиональный Общий рейтинг: 130.99 URL: Моя страничка [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 157.54 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 121.77 URL: Мой сайтик... [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 117.3 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
SonicX Статус: Доверительный Общий рейтинг: 120.77 [Подробней >>] |
LIFO Статус: Опытный Общий рейтинг: 135.89 Телефон: 8 01710 24758 [Подробней >>] |
Sinner Статус: Доверительный Общий рейтинг: 105.86 [Подробней >>] |
Lank Статус: Начальный Общий рейтинг: 112.28 [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 115.66 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 117.83 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 119.71 [Подробней >>] |
Gibbel Статус: Опытный Общий рейтинг: 108.45 URL: Страничка обо мне и моих друзьях [Подробней >>] |
Igoryk Статус: Опытный Общий рейтинг: 112.47 URL: В помощь программисту [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 128.85 URL: Страничка рассылки Паскаля... Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
kvINT Статус: Профессиональный Общий рейтинг: 111.42 Телефон: (34316)2-31-45 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 1185. Привет уважаемые!!! Не могли бы вы в кратце описать какими функциями пользоваться чтобы встроить ... (ответов: 2)
Вопрос № 1186. Здравствуйте, эксперты! Такая прога: ............. lea si, start lea di, st... (ответов: 4)
Вопрос № 1187. Добрый день уважаемые эксперты. Есть ли какая-нибудь функция DOS или BIOS возвращающая случайное чис... (ответов: 2)
Вопрос № 1188. Скомпилированный exe файл не запускается в windows. Можно ли вообще ассемблеровскую досовскую програ... (ответов: 11)
Вопрос № 1190. Hello! У меня у одного в тексте рассылки нет символов "косая черта"? Напимер: D:TASMBIN, D... (ответов: 8)
Вопросов: 5, ответов: 27
Вопрос № 1185 |
Привет уважаемые!!!
Не могли бы вы в кратце описать какими функциями пользоваться чтобы встроить в прогу на асме под винду работу с печатью, т.е. стандартные APIшные функции.
Большое спасибо!
Вопрос отправлен: 05.09.2002, 21:43
Отправитель: misha
[Следующий вопрос >>] [Список вопросов]
Отвечает Pablo
Добрый день, misha!
Вот тебе перечень функций которыми ты можешь пользоваться для распечатки документа:
int StartDoc(
HDC hdc, // handle of device context
CONST DOCINFO *lpdi // address of structure with file names
);
int StartPage(
HDC hDC // handle of device context
);
int AbortDoc(
HDC hdc // handle to device context
);
int Escape(
HDC hdc, // handle to device context
int nEscape, // escape function
int cbInput, // number of bytes in input structure
LPCSTR lpvInData, // pointer to input structure
LPVOID lpvOutData // pointer to output structure
);
int EndDoc(
HDC hdc // handle to device context
);
int EndPage(
HDC hdc // handle to device context
);
DWORD DeviceCapabilities(
LPCTSTR pDevice, // pointer to a printer-name string
LPCTSTR pPort, // pointer to a port-name string
WORD fwCapability, // device capability to query
LPTSTR pOutput, // pointer to the output
CONST DEVMODE *pDevMode // pointer to structure with device data
);
BOOL GetPrinter(
HANDLE hPrinter, // handle to printer of interest
DWORD Level, // version of printer info data structure
LPBYTE pPrinter, // pointer to array of bytes that receives printer info. structure
DWORD cbBuf, // size, in bytes, of array of bytes
LPDWORD pcbNeeded // pointer to variable with count of bytes retrieved (or required)
);
Вообще в MSDNовой часть Бидеровского хелап есть полный перечень функция в разделе 'Printing and Print Spooler Functions'.
Ответ отправлен: 06.09.2002, 09:35
Отправитель: Pablo
Отвечает masquer
Здравствуйте, misha!
CreateDC с указанием драйвера как WINSPOOL, StartDoc.
Смотри функции winspool.drv:
OpenPrinter
WritePrinter
ClosePrinter
Дополнительно МСДН смотри.
Ответ отправлен: 06.09.2002, 12:07
Отправитель: masquer
Вопрос № 1186 |
Здравствуйте, эксперты!
Такая прога:
.............
lea si, start
lea di, start
mov cx, size
encrypt:
lodsb
lea bx, maver
xor al, bx ;Это все дешифратор программы
stosb
loop encode
jmp start
maver db '1'
start:
............ ;Сам код проги
Так вот, если в шифратор кода всавить генератор случайных чисел, который будет изменять значение в переменной maver
при каждом запуске программы, и записывать это изменение, то что это будет, полиморфик или просто шифрованная программа с динамическим декриптором?
И еще, если у кого-нибудь есть доки по полиморфам, скиньте плиз на Maverick@nightmail.ru
P.S. На ошибке в проге не смотрите, написал от булды, чтоб понять суть вопроса.
Заранее спасибо!
Вопрос отправлен: 06.09.2002, 05:12
Отправитель: Maverick (Maverick@nightmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Здравствуйте, Maverick!
Это не будет полиморфик, а просто шифрующаяся программа. Суть полиморфной программы не в том, чтобы файл на диске выглядел каждый раз по-разному, а в том, чтобы время от времени программа изменяла свой алгоритм. Скажем, если речь идет о вирусах, то полиморфный вирус может работать как-то так:
1.Размножились.
2. Предположим, нас Касперский заметил. Мы это как-то узнали, и поняли, что узнал он нас потому, что мы делаем что-то, что обычно делают вирусы, и при этом Касперский, скорее всего, уже знает, как от нас файлы лечить (он же видел, что мы с ними делаем!). Значит, берем и изменяем свои действия. Скажем, если мы шифровали все файлы на диске, возьмем и изменим алгопритм шифрования. Касперский опять научился лечить? А мы опять изменим алгоритм... При изменении алгоритма тело вируса, естественно, изменится. Можно и сигнатуры на ходу менять. Значит, Касперский уже даже не будет уверен, что это тот же самый вирус - ведь вирус-то уже действительно другой!
Вирус я привел просто в качестве примера. Советую (чтобы вам не вступать в споры с законом) писать, например, самообучающуюся программу, которая будет просто постоянно умнеющим собеседником. Другой вопрос, что это значительно сложнее... Но и вирус полиморфный не так просто написать.
С уважением, Portnov.
Ответ отправлен: 06.09.2002, 10:14
Отправитель: Portnov
Отвечает baldr
Приветствую Вас, Maverick!
Вообще-то, полиморфик - это не обязательно зашифрованный код. Полиморф может получиться и простой перестановкой команд, от которых общий смысл действий остается прежним, но код таким образом меняется. А я назвал бы твою прогу просто шифрованной, причем не полностью. IMHO настоящий полиморф изменяется до каждого байта. Вот тебе еще идея: перед и после твоего декриптора вставь, например, один
nop
, а потом просто сдвигай декриптор на байт "выше" или "ниже"... Причем, так как в loop
не используется адрес, то менять смещение в нем не придется. А, вообще-то жаль... Тогда ставь иногда loop
, а иногда - cmp и jnz... И с jnz лучше использвать jmp на адрес, который будешь тоже сдвигать... Еще вставь в некоторые места nop nop, а потом меняй их на inc ax, dec ax или еще что-нибудь
нейтральное... В результате получишь увеличение шифровщика в несколько раз, но и степень изменяемости будет выше. Упражняйся... Удачи в написании вирусов! :)
Ответ отправлен: 06.09.2002, 10:57
Отправитель: baldr
Отвечает masquer
Добрый день, Maverick!
Ну, во-первых у тебя адрес будет в bx, а не переменная - это так - об ошибках.
Полиморфик, кажется, не должен иметь постоянной сигнатуры. Лучше вирусы смотреть - тот же марбург, или взять аспак посмотреть - как он работает. Я терминологией не очень люблю заниматься.
Вообще если у тебя будет шифрование по случайной маске, то у тебя прога рухнет скоро, мусора куча будет
Ответ отправлен: 06.09.2002, 11:36
Отправитель: masquer
Отвечает SonicX
Доброе время суток, Maverick!
Ты наверно хочешь не шифрованную
программу с динамическим декриптором
написать, а полиморфный вирус!
Ответ отправлен: 06.09.2002, 20:06
Отправитель: SonicX
Вопрос № 1187 |
Добрый день уважаемые эксперты.
Есть ли какая-нибудь функция DOS или BIOS
возвращающая случайное число?
Где-то слышал, что на современных
материнских платах это даже реализуется
аппаратно. Если ничего этого нет,
может кто подкинет проседурку на ассемблере
(нужен всего байт).
С уважением и наилучшими пожеланиями, Сергей.
Вопрос отправлен: 06.09.2002, 09:50
Отправитель: Сергей
[Следующий вопрос >>] [Список вопросов]
Отвечает baldr
Доброе время суток, Сергей!
Есть такой анекдот:
Приходит один программист у другому:
- Вась, мне нужен генератор случайных чисел...
Вася, не отрываясь от компьютера:
- Четырнадцать!
:))
Встроенных в DOS/BIOS таких функций нет. Если надо просто число, то возьми текущее время в миллисекундах - оно всегда разное - и возьми от него, скажем, второй байт... Это самый простой способ...
Ответ отправлен: 06.09.2002, 11:12
Отправитель: baldr
Отвечает masquer
Приветствую Вас, Сергей!
возьми значение таймера, проведи пару логических и математических операций, вот тебе и бедет псевдослучайное число
Ответ отправлен: 06.09.2002, 11:37
Отправитель: masquer
Вопрос № 1188 |
Скомпилированный exe файл не запускается в windows. Можно ли вообще ассемблеровскую досовскую программу запустить в windows?
Вопрос отправлен: 06.09.2002, 16:33
Отправитель: Александр (almosov@cityline.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Приветствую Вас, Александр!
Не всегда, например 'Hello,world' напишит а вот резидент не останется...
Ответ отправлен: 07.09.2002, 15:20
Отправитель: LIFO
Отвечает Sinner
Добрый день, Александр!
"Возможно все"...
Показывай прогу, найдем баг...
Ответ отправлен: 08.09.2002, 11:05
Отправитель: Sinner
Отвечает Lank
Доброе время суток, Александр!
Вообще-то, Александр не только можно, но и нужно, Виндовс полностю поддерживает исполнение ДОС програм, другой вопрос в том уверен ли ты, што твоя программа работает под ДОС? Из того, что она была скомпилирована и отлинкована под ДОС можна сделать вывод, што текст программы не содержит синтаксических ошибок и не более, а рабочая ли у тебя прога заочно сказать тяжело. Вышли исходник, или екзешку тогда посмотрим.
С уважением Lank.
ЗИ: А Винда то у тебя какая, просто некоторые версии Винды не дают ДОС приложениям доступа к апаратным ресурсам (сюда входят отладочные регистры процессора, тестовые и другие MSR регистры, порти, прерывания, и много другого).
Так што подумай.
Ответ отправлен: 06.09.2002, 16:49
Отправитель: Lank
Отвечает Beeblebrox
Здравствуйте, Александр!
Такого не может быть, если не запускается - значит жвачка под клавишу Энтер попала. Где приложение?
Ответ отправлен: 06.09.2002, 17:04
Отправитель: Beeblebrox
Отвечает baldr
Доброе время суток, Александр!
Тут возможно 2 варианта (основных):
1) Программа криво написана и глючит, а винда ее ругает.
2) Винда у тебя ME, NT или XP (смесь ME и NT:) ), а в них DOS практически отсутствует.
Ответ отправлен: 06.09.2002, 17:06
Отправитель: baldr
Отвечает Топор
Приветствую Вас, Александр!
А в чистом Досе она у тебя хоть запускается? Если нет, то скорее всего сам виноват, где-то баг. Если да, то возможны варианты:
- если это com-прога, то что-то потеряно в реестре, из-за чего винда её не узнаёт;
- если EXE, то прога, возможно, выполняет какие-то недопустимые в Windows операции, как то: пишет в порты, пишет за пределы отведённой ей памяти, пытается загружать системные регистры.
Ответ отправлен: 06.09.2002, 17:26
Отправитель: Топор
Отвечает Pablo
Приветствую Вас, Александр!
Да, но только в NT она будет иметь некоторые ограничения, и, ктомуже, будет выполняться только в консольном окне, не как обычное оконное приложения Windows.
Ответ отправлен: 06.09.2002, 17:38
Отправитель: Pablo
Отвечает Ayl
Добрый день, Александр!
Можно. В DOS сессии.
Ответ отправлен: 06.09.2002, 17:39
Отправитель: Ayl
Отвечает Gibbel
Доброе время суток, Александр!
Вообще-то досовские программы прекрасно работают в винде. Другой разговор, если они используют защищенный режим дос - тогда на виндах старше 98х не запуститься...
Ответ отправлен: 06.09.2002, 18:51
Отправитель: Gibbel
Отвечает masquer
Добрый день, Александр!
Можно, только смотря какая винда и что программа делает - если пытается прямой доступ к железу получить - не выйдет
Ответ отправлен: 06.09.2002, 20:23
Отправитель: masquer
Отвечает Igoryk
Доброе время суток, Александр!
Да можно, но будут проблемы с системным прораммированием - Windows перехватывает все ее команды.
Ответ отправлен: 09.09.2002, 14:11
Отправитель: Igoryk
Вопрос № 1190 |
Hello!
У меня у одного в тексте рассылки нет символов "косая черта"?
Напимер: D:TASMBIN, D:TASMBIN, D:\TASM\BIN (все три раза я написал по разному).
Ведь очень неудобно читать пути к файлам, в которых не понятно где каталог, а где уже имя файла.
Best regards!
Вопрос отправлен: 07.09.2002, 08:48
Отправитель: xal
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Здравствуйте, xal!
Не у вас одного. Вы с Си знакомы? Там бэкслэш в строках работает Escape-символом. Напр., \n - возврат каретки, \t - табуляция и т.п. Если после бэкслэша стоит символ, не явл. ключевым (то есть не t,n,v,еще несколько...), то воспринимается только этот символ, поэтому, чтобы изобразить сам бэкслэш, надо писать два бэкслэша подряд.
А программа, генерирующая рассылку, написана на Перле, а Перл - это Си-подобный язык (да простят меня знатоки обоих языков), и бэкслэш в строках там работает так же, как в Си. Чтобы этого избежать (если это вообще возможно), пришлось бы долго мучаться, а Калашникову сейчас не до того.
В связи с этим просьба ко всем читателям и экспертам: Когда в вопросе/ответе хотите изобразить бэкслэш, пишите два бэкслэша подряд.
С уважением, Portnov.
Ответ отправлен: 07.09.2002, 15:29
Отправитель: Portnov
Отвечает masquer
Здравствуйте, xal!
робот рассылки, наверное, глючит. HTML коды используй, я их сейчас не вспомню
Ответ отправлен: 07.09.2002, 13:21
Отправитель: masquer
Отвечает Sensey
Добрый день, xal!
Нет, у всех автоматом убирается одна косая черта...
Экспертам: Пишите две \
Ответ отправлен: 07.09.2002, 11:37
Отправитель: Sensey
Отвечает Топор
Приветствую Вас, xal!
Не у тебя одного. Это служебный символ в HTML, поэтому он и фильтруется.
Ответ отправлен: 07.09.2002, 19:56
Отправитель: Топор
Отвечает Sinner
Добрый день, xal!
пиши два бэкслэша \ \ \ \ \ \ \
Ответ отправлен: 08.09.2002, 11:07
Отправитель: Sinner
Отвечает kvINT
Доброе время суток, xal!
Так вот откуда в моем ответе взялись некие asmin'ы. Они заменили asmin. Но так было только один раз.
Ответ отправлен: 08.09.2002, 13:04
Отправитель: kvINT
Отвечает SonicX
Доброе время суток, xal!
Ничего удивительного
у меня тоже косые черты
не отображались когда я
указывал путь в реестре.
Ответ отправлен: 09.09.2002, 20:31
Отправитель: SonicX
Отвечает Igoryk
Добрый день, xal!
Нет. Так скорее всего у всех. Мне кажется, что система RusFAQ воспринимает косую черту как управляющий символ. Скорее всего если его повторить, то получится \ (две косые черты). Но может я не прав.
Ответ отправлен: 09.09.2002, 14:11
Отправитель: Igoryk
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (42) C / C++ (30) Perl (9) Delphi (14) Pascal (25) Basic / VBA (10) Java / JavaScript (13) PHP (9) MySQL / MSSQL (10) |
Пользователю Windows 95/98/Me (38) Windows NT/2000/XP (28) "Железо" (37) Поиск информации (12) |
Администратору Windows NT/2000/XP (14) Linux / Unix (17) |
Юристу Гражданское право (9) Семейное право (5) Трудовое право (7) КоАП (4) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||