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

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 454
от 26.12.2002, 19:50

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 2276
Отправлено ответов: 6862
Активность: 301.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Traish
Статус: Опытный
Общий рейтинг: 130.17
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 139.44
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 121.61
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 118.74
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 114.06
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Александр
Статус: Доверительный
Общий рейтинг: 109.89
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 121.79
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.12
[Подробней >>]
Andrew Vext
Статус: Опытный
Общий рейтинг: 107.95
[Подробней >>]
 
Portnov
Статус: Профессиональный
Общий рейтинг: 114.96
URL: Мой сайтик...
[Подробней >>]
LIFO
Статус: Профессиональный
Общий рейтинг: 119.87
URL: наш сайт
Телефон: 8 01710 24758
[Подробней >>]
St
Статус: Опытный
Общий рейтинг: 114.3
[Подробней >>]
 
vitya
Статус: Профессиональный
Общий рейтинг: 108.09
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.34
URL: Страничка обо мне и моих друзьях
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 147.98
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 117.41
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 2228. Здравствуйте, не могли бы Вы момочь ещё кое в чём: Как работать с паролями( сохранять, проверять, из... (ответов: 5)
Вопрос № 2229. Хана Т.е. меня с таким рефом далеко послали и сказали быстро писать другой. Меня это задолбало! Где ... (ответов: 3)
Вопрос № 2230. Ни как не получается делать ассемблерные вставки в С++ (borland C++ builder 6) Допустим хочу сделат... (ответов: 1)
Вопрос № 2231. Здравствуйте уважаемые эксперты! Прошу прощения за оффтопик, но вам это как-то ближе. Проблема жизне... (ответов: 2)
Вопрос № 2232. Добрый день! Допустим есть такая прога: CSEG segment assume CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG org 1... (ответов: 5)
Вопрос № 2233. Доброго времени суток Эксперты. У меня тут маленькая загвоздочка, думаю с вашей помошью она решится.... (ответов: 5)
Вопрос № 2234. Приветствую Вас! Как написать письмо кому-нибудь одному, а то Ваших мыльных адресов не видно на стра... (ответов: 3)
Вопрос № 2235. Подскажите, пожалуйста, как куда надо "вешать" обработчик прерывания CTRL+ALT+DELETE... (ответов: 4)

Вопросов: 8, ответов: 28


 Вопрос № 2228

Здравствуйте, не могли бы Вы момочь ещё кое в чём:
Как работать с паролями( сохранять, проверять, изменять)
Речь идёт про ДОС.
{Задание:Пароль сохранять (и изменять) как переменную
окружения (см. команду set). Если соответствующая переменная (например, passwd) не определена, паролем считать пустую строку}



Вопрос отправлен: 21.12.2002, 19:56
Отправитель: Hammer

[Следующий вопрос >>] [Список вопросов]

Отвечает Traish

Приветствую Вас, Hammer!
В каком смысле "работать с паролями"? Задай вопрос поконкретнее...


Ответ отправлен: 22.12.2002, 18:00
Отправитель: Traish


Отвечает Maverick

Здравствуйте, Hammer!
Писал прогу, когда тока начинал учиться асму, она примерно это и делает.
Она корявая, но там все понятно.
Короче она шифрует файл и спрашивает пароль потом для расшифровки, сохраняет его в зашифрованном виде и дописывает в конец файла. При расшифровки запрашивает его и если он верен то расшифровывает файл и обрезает пароль.
Прога неоптимизирована, т.к. писал для самообучения.
Если возникнут вопросы, то мыль, подъясню.


Приложение:

Ответ отправлен: 22.12.2002, 11:01
Отправитель: Maverick


Отвечает Dark_Lord

Приветствую Вас, Hammer!
Я не понял две вещи! Во-первых почему вопрос персональный, во-вторых в смысле работать с паролями!?
Так-же как с обычными строками, выражайся более конкретно, что тебе нужно сделать?

Ответ отправлен: 21.12.2002, 22:35
Отправитель: Dark_Lord


Отвечает ASMодей

Добрый день, Hammer!
Дело в том, что ДОСу абсолютно все равно с паролями вы работаете
или нет, для него все пароли - это строки, поэтому он и работает
с ними как со строками.
Насчет переменных окружения: в структуре PSP твоей программы, по
смещению 2Ch хранится сегментный адрес этих переменных. Хранятся
они в следующем формате:
name=value0name=value0...name=value00
Так что для использования своей переменной придется ее искать среди
всех этих строк. Кстати я не уверен, что ты сможешь изменить пароль
из своей программы, так как по-моему программе передается лишь
копия этих переменных и при выходе из программы изменения не будут
сохраняться.
PS. Мне кажется, что хранить пароль в файле намного удобнее чем
в переменных окружения.


Ответ отправлен: 22.12.2002, 11:26
Отправитель: ASMодей


Отвечает baldr

Добрый день, Hammer!
Не совсем понятно что имеется в виду. Если хранить пароли в переменных окружения, то это
во-первых, глупо, потому что если они будут не зашифрованы, то доступ к ним получит любая
программа и даже сам пользователь, если он хоть раз видел Dos Navigator. А во-вторых, все равно
использовать эти пароли будет, наверное, только одна программа? Тогда лучше уж прямо в ней
и хранить эти пароли. А программа, думаю, будет резидентом.
И вообще, что за задача такая? :-//


Ответ отправлен: 24.12.2002, 01:35
Отправитель: baldr


 Вопрос № 2229

Хана
Т.е. меня с таким рефом далеко послали и сказали быстро писать другой. Меня это задолбало! Где можно надыбать чего-нибудь научного про вири? Типа 'Вирус-вредоносная ля-ля-ля%:?%: программа, которая тра-ля-ля... использует технологии ...'.Сказали, что это подойдет :(
Красивых девчонок,
DyC



Вопрос отправлен: 21.12.2002, 20:01
Отправитель: DyC (dyc@nm.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Maverick

Здравствуйте, DyC!
Напиши мне на мыло примерный план реферата, я тебе дам доков по этой теме. Так бы сразу скинул, но у меня их много, не все же слать.


Ответ отправлен: 22.12.2002, 10:48
Отправитель: Maverick


Отвечает Александр

Здравствуйте, DyC!
Попробуй поискать энциклопедию вирусов от товарища Касперского. У меня когда-то была такая книжка. Если каспер не жмот, то попытайся поискать на его сайте(www.avp.com). Также существовала в природе книжка "Пишем вирус... и антивирус". Вот. Но её я так и не сумел поймать...


Ответ отправлен: 22.12.2002, 20:33
Отправитель: Александр


Отвечает Sensey

Здравствуйте, DyC!
На рефератных сайтах, на сайте касперского, ЧЕРЕЗ ПОИСКОВИК!!!


Ответ отправлен: 23.12.2002, 14:24
Отправитель: Sensey


 Вопрос № 2230

Ни как не получается делать ассемблерные вставки в С++ (borland C++ builder 6)
Допустим хочу сделать так, весь интерфейс нарисовать в билдере, а все обработчики на ассемблере...
Если кто сможет привести пример вот такой проги :
Форма с кнопкой на С++ а обработчик кнопки - ассемблерная вставка, при нажатие выскакивает мэссажбокс...
Вроде всё написал, а при компайле, куча ошибок...



Вопрос отправлен: 22.12.2002, 02:00
Отправитель: spaces

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Приветствую Вас, spaces!
Ничего не могу тебе сказать про С++ Builder 6, но в пятом был такой глюк - если ты хоть строчку добавляешь на ассемблере, то он перекомпилирует весь файл через ассемблер (пишет: restarting compile through assembler). Это достаточно тупо, и некоторые участки кода перестают таким образом компилироваться вообще (ну я уже не говорю о скорости). Я смог только добавить в проект отдельный файл на асме и в нем реализовать нужные мне фунции.


Ответ отправлен: 23.12.2002, 17:40
Отправитель: Bob Johnson


 Вопрос № 2231

Здравствуйте уважаемые эксперты!
Прошу прощения за оффтопик, но вам это как-то ближе. Проблема жизненной важности. Имеются исходники программы и BAT-файл для ее компилирования
ftg loading a2p.ftg
flink workprog.exe a2p.~xe prog.pic
Вроде как программа написана на Forth'е. Точнее на одной из его модификаций. Так вот. Не встречался ли кто с ним (с версией, транслятор и линковщик которой имеют имена ftg и flink)? Если да, то где в сети можно их найти (я искал, но не нашел)? Может, вопрос не совсем корректный и без исходников трудно что-либо сказать, но все-таки...
Заранее благодарен.



Вопрос отправлен: 22.12.2002, 14:05
Отправитель: Shurik (acesoft@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Andrew Vext

Добрый день, Shurik!


Ответ отправлен: 23.12.2002, 12:50
Отправитель: Andrew Vext


Отвечает Portnov

Добрый день, Shurik!
Подозреваю, что это FigForth. Если вы думаете, что это вообще Forth, то см. www.forth.org.ru, там куча всего по Форту, в т. ч. компиляторы и доки к ним.
С уважением, Portnov.

Ответ отправлен: 23.12.2002, 21:51
Отправитель: Portnov


 Вопрос № 2232

Добрый день!
Допустим есть такая прога:
CSEG segment
assume CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG
org 100h
Start:
jmp far ptr 3000:0500h
CSEG ends
end Start
Выдает такую ошибку: A2096: segment, group, or segment register expected.
Что сдесь не правильно?
Заранее спасибо!



Вопрос отправлен: 22.12.2002, 14:59
Отправитель: sw

[Следующий вопрос >>] [Список вопросов]

Отвечает LIFO

Приветствую Вас, sw!
Нужно чтобы например был регистр
jmp far ptr es:[0500h]
а то что у тебя это дизассемблерный вариант

Ответ отправлен: 22.12.2002, 17:32
Отправитель: LIFO


Отвечает Traish

Добрый день, sw!
Ты можешь испоьзовать опкоды
db 0eah
dw 0
dw 0
или помещаешь в сегментный регистр то, что тебе нужно и:
jmp es:[offset].


Ответ отправлен: 22.12.2002, 17:54
Отправитель: Traish


Отвечает Bob Johnson

Приветствую Вас, sw!
Создатели компиляторов для ассемблера решили, что такую команду пользователям использовать незачем. Поэтому ассемблер ее не знает. Так что пиши руками:
EA 00 05 00 30.


Ответ отправлен: 24.12.2002, 22:40
Отправитель: Bob Johnson


Отвечает Dark_Lord

Здравствуйте, sw!
Нет вида программы(использования памяти) у тебя должно быть tiny (.model tiny)!

Ответ отправлен: 22.12.2002, 20:18
Отправитель: Dark_Lord


Отвечает Maverick

Здравствуйте, sw!
Tasm не любит таких понтов: jmp far ptr 3000:0500h
Напиши так:
db 0eah
dw 0500h
dw 3000h
И все зафурыкает.


Ответ отправлен: 23.12.2002, 07:03
Отправитель: Maverick


 Вопрос № 2233

Доброго времени суток Эксперты.
У меня тут маленькая загвоздочка, думаю с вашей помошью она решится.
В приложении прожка, я пытался взять хендл этой программы и вывести его в MsgBox, но чего то не катит. Точнее, как я понял у меня просто не выходит вывести число в MsgBox. Любое чило трактуется как символ с этим номером в т. ASCII. Пробовал и 30h отнимать, не получается. Как же быть? Посоветуйте чего нибудь please.
Заранее благодарен.


Приложение:


Вопрос отправлен: 22.12.2002, 15:13
Отправитель: Евгений

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Добрый день, Евгений!
Тебе нужно число преобразовать в строку. Т.е. MessageBox берет у тебя параметр - указатель на строку. Там должен быть текст по любому. Вот тебе нужно туда текст и засунуть. Но тебе немного повезло - в Windows есть функция wsprintf, которая в состоянии преобразовать целое число в текст (а вот дробное... нет):
push число
push offset format
push offset buffer
call _wsprintfA
add esp, 12
...
buffer db 256 dup (?)
format db '%i', 0
и тогда в buffer у тебя будет число + 0 как конец строки.


Ответ отправлен: 24.12.2002, 22:41
Отправитель: Bob Johnson


Отвечает Dark_Lord

Доброе время суток, Евгений!
для вывода еах можешь использовать мою процедуру (см. приложение). Вставь всё что там есть в твою программу а потом в том месте где нужно вывести еах напиши call message!

Приложение:

Ответ отправлен: 22.12.2002, 20:24
Отправитель: Dark_Lord


Отвечает St

Привет, Евгений!
Для того чтобы вы могли увидеть ваше число в десятичном (если я правильно понял, или шестнадцатиричном?) виде вам нужно перевести содеджимое регистра eax в строку содержащцю коды цифр. Посылаю процедуру (TASM) такого преобразования для 16-битного числа, ее легко можно переделать для 32-битных чисел.
St

Приложение:

Ответ отправлен: 22.12.2002, 22:42
Отправитель: St


Отвечает vitya

Доброе время суток, Евгений!
Так ведь тебе сначала надо получить строку. Для этого ты должен с получать по очереди символы. Делишь на 10, берешь остаток прибавляешь 30h - получаешь, самый правый символ и так далее двигаешься налево... и только потом выводишь эту полученную строчку. Да и не забудь про то, что в конце надо поставить 0.

Ответ отправлен: 23.12.2002, 09:34
Отправитель: vitya


Отвечает Gibbel

Приветствую Вас, Евгений!
Прототип функции MessageBox:
int MessageBox(
HWND hWnd, //Хэндл родительского окна
LPCTSTR lpText, //Строка (!) текста
LPCTSTR lpCaption, //Строка заголовка окна
UINT uType //Тип Message Boxа
);
Таким образом, тебе для начала необходимо хэндл проги преобразовать из числа в строку, а затем уже выводить, передавая вторым параметром адрес этой строки.

Ответ отправлен: 23.12.2002, 10:56
Отправитель: Gibbel


 Вопрос № 2234

Приветствую Вас!
Как написать письмо кому-нибудь одному, а то Ваших мыльных адресов не видно на страницах рассылки.
Maverick, план таков:
1.Интро.
Чего это такое-вирь, с чем его едят, когда стали
повляться, etc.
2.Классификация
Тут ясно
3.Механизмы заражения.
Куда дописываются, как ищут свежее мясо, как передают
управление куда им надо, etc.
4.Как защищаются от антивирусов.
Обман анализатора, или чего там?
5.Шифрование.
Олиго-,поли- морфизм, перемутация, etc.
6.Резидент.
Немного об этом.
7.Деструктивные функции
...
Вроде ничего не забыл?
Предпологаю все это про win, а то много и долго будет, а январь уже скоро.
Большое спасибо!
DyC



Вопрос отправлен: 22.12.2002, 18:23
Отправитель: DyC (dyc@nm.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Maverick

Добрый день, DyC!
Короче под вин у меня мало, но под дос я тебе найду весь материал. Можно основной удар сделать в виде доса, и в конце кратко о вин, устроит так?
У бургера пресс инфы, но она старая и какая то ламерская, но от туда можно навыдерать кусков.
"4.Как защищаются от антивирусов.
Обман анализатора, или чего там?"
Это к господину Касперскому, ни один автор тебе не даст свои примочки для реферата, но старые у меня есть, принцип их понять можно. Еще и по антиотладке триков дам.
Вобщем наваяем, препод залюбуется и станет вирмаком :)
Жалко, что не курсовик :(
Мыло: Maverick@nightmail.ru
У тебя выход в инет есть?
А может препода удовлетворят пара-тройка живых вирей на его компе? :)


Ответ отправлен: 23.12.2002, 07:03
Отправитель: Maverick


Отвечает masquer

Приветствую Вас, DyC!
Заходишь на сайт 29A (ищешь в поисковике) качаешь, скажем, последние три выпуска, читаешь, или сразу берешь любой исходник, ежели с аглицким напряг, идешь на сайт z0mbie из их команды и оттуда берешь инфу или находишь все выпуски Infected Voice.

Ответ отправлен: 23.12.2002, 11:38
Отправитель: masquer


Отвечает LIFO

Доброе время суток, DyC!
Это вы типа журнал собрались делать,а!
Идея конечно хорошая, но ведь их уже столько есть(у меня дома около 30 разных журналов только с России и еще столько же с других стран), так что инфой могу помочь.

Ответ отправлен: 25.12.2002, 10:30
Отправитель: LIFO


 Вопрос № 2235

Подскажите, пожалуйста, как куда надо "вешать" обработчик прерывания CTRL+ALT+DELETE



Вопрос отправлен: 22.12.2002, 19:06
Отправитель: Алексей

[Следующий вопрос >>] [Список вопросов]

Отвечает Александр

Доброе время суток, Алексей!
Туда же куда и другие обработчики клавиатуры, на int 09h. При нажатии клавиши DELETE проверяешь флаги для ctrl и alt. Если всё правильно, то делаешь свои "грязные" дела. Я помню была малюсенькая такая программа kill.com которая по CTRL+ALT+DELETE переспрашивала действительно ли я хочу презагрузиться.


Ответ отправлен: 22.12.2002, 20:44
Отправитель: Александр


Отвечает Andrew Vext

Приветствую Вас, Алексей!
На стенку в рамочке :-)
Перехватывайте аппаратное прерывание от контроллера клавиатуры.

Ответ отправлен: 23.12.2002, 13:02
Отправитель: Andrew Vext


Отвечает Maverick

Приветствую Вас, Алексей!
Насколько я знаю, винда этого не допустит, это святыня...


Ответ отправлен: 23.12.2002, 07:05
Отправитель: Maverick


Отвечает Ayl

Здравствуйте, Алексей!
Обработчик прерывания CTRL+ALT+DELETE? Это что за прерывание такое? :-)
В общем, тебе нужно вешаться на прерывание от клавиатуры. Его номер - 9. В нем ты должен проверить, какой скен-код выдал контроллер клавиатуры (байтовый порт 60h).
Если это не 53h, то передаешь управление старому обработчику прерывания 9 (ОО). Иначе проверяешь значение битов 2 и 3 в байте по адресу 0000:0417h. Если они оба установлены в единицу, то это значит, что ты отловил нажатие CTRL+ALT+DELETE. Иначе тебе опять надо вызвать ОО.
В случае обнаружения CTRL+ALT+DELETE ты должен послать контроллеру клавиатуры подтверждение получения скен-кода (
in al, 61h
mov ah, al
or al, 80h
out 61h, al
mov al, ah
out 61h, al
) и сбросить блокировку контроллера прерываний (
mov al, 20h
out 20h, al
).
После этого можешь выполнить свои действия по реакции на это нажатие.
Учти, что перехватить эту комбинацию ты сможешь только под чистым DOS'ом. Под виндой - фиг получится.


Ответ отправлен: 23.12.2002, 15:32
Отправитель: Ayl



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "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 (40)
C / C++ (29)
Perl (5)
Delphi (22)
Pascal (23)
Basic / VBA (11)
Java / JavaScript (7)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (32)
Windows NT/2000/XP (27)
"Железо" (31)
Поиск информации (13)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (14)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (2)

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




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

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


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

В избранное