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

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.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
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)

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




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

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


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

В избранное