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

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


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

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

Выпуск № 591
от 15.07.2003, 00:20

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


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

Евгений Иванов
Статус: Доверительный
Общий рейтинг: 131.81
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152
URL: Программирование
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 122.68
[Подробней >>]
 
vitya
Статус: Профессиональный
Общий рейтинг: 108.07
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 112.19
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Zedr0n
Статус: Доверительный
Общий рейтинг: 108.87
[Подробней >>]
 
Tigran K. Kalaidjian
Статус: Профессиональный
Общий рейтинг: 121.08
URL: Методы оптимизации работы ПК
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 113.69
[Подробней >>]
Andy
Статус: Начальный
Общий рейтинг: 108.63
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 118.31
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 121.64
URL: мой сайт
[Подробней >>]
Hangatyr
Статус: Опытный
Общий рейтинг: 114.32
[Подробней >>]


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

Вопрос № 3669. Здравствуйте, эксперты ! Моему другу дали задание. Программа считывает в память файл и затем,не обра... (ответов: 2)
Вопрос № 3670. Добрый день, ув. эксперты ! Уже около месяца меня беспокоит вопрос по диалоговым окнам. Очень Вас пр... (ответов: 2)
Вопрос № 3671. Здравствуйте, уважаемые эксперты! Пробовал я использовать в VC++ асмовский код. Работает прекрасно, ... (ответов: 6)
Вопрос № 3673. хубба, ответь на вопросы: Ты долба#$б? Или нет? Шизофреник? Или просто тормоз(типа не )? Ко всем э... (ответов: 4)
Вопрос № 3676. Вам не кажется, что Hubba и Наталья Березовец - это один и тот же человек? Собрались, извините за не... (ответов: 3)
Вопрос № 3677. Товарищи специалисты помогите с конвертером мне надо растровое изображение перевести в векторное(Же... (ответов: 1)
Вопрос № 3678. Подскажите,пожалуйста,где можно добыть исходник хорошего трояна на Win32, написанного на ASM! Нужен ... (ответов: 2)
Вопрос № 3679. Всем мои Приветствия!!! В книге Зубкова - "Assembler для DOS, Windows и Unix" для описания... (ответов: 8)

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


 Вопрос № 3669

Здравствуйте, эксперты !
Моему другу дали задание. Программа считывает в память
файл и затем,не обращаясь к диску, запускает его из памяти.
Программа для Windows. Как это реализовать на Win32 ?



Вопрос отправлен: 09.07.2003, 19:48
Отправитель: IceWINteR (brothers@atnet.ru)

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

Отвечает Евгений Иванов

Доброе время суток, IceWINteR!
Для этого есть функция:
The ShellExecute function opens or prints a specified file. The file can be
an executable file or a document file. See ShellExecuteEx also.
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename string
LPTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);
Или:
The ShellExecuteEx function performs an action on a file. The file can be
an executable file or a document.
WINSHELLAPI BOOL WINAPI ShellExecuteEx(
LPSHELLEXECUTEINFO lpExecInfo // pointer to SHELLEXECUTEINFO structure
);


Ответ отправлен: 10.07.2003, 18:09
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Добрый день, IceWINteR!
А что за файл и какого формата? Если обычный exe-pe, то тебе придется реально заморочиться (лучше брось эту идею вообще), т.к. надо будет эмулировать все действия загрузчика.
Если тебе просто надо что-либо запустить, то пиши некое подобие com-файл - т.е. win32-программу, рассчитанную на работу под определенным адресом (например, 500000h), после чего получай память по этому адресу (VirtualAlloc), загружай туда этот файл и делай push 500000h ret.
В случае обычного exe можно открыть его как Memory-mapped-file, весь полностью, прочитать его (это вызовет его загрузку в кэш), после чего выполнить createprocess, который может не стать обращаться к диску, т.к. файл уже в памяти. Но может и обратиться.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 10.07.2003, 23:10
Отправитель: Bob Johnson


 Вопрос № 3670

Добрый день, ув. эксперты !
Уже около месяца меня беспокоит вопрос по диалоговым окнам.
Очень Вас прошу, не откажите в помощи...
Мне нужно получить доступ к объектам, расположеным на диалоговом окне программы, при том условии, что окно не вызвано.
Т.е. хэндл диалогового окна я не знаю, а знаю только
ID объектов, которые на нем будут находится.
Под "получить доступ" я подразумеваю любые операции над объектами,
например: SendMessage WM_GETTEXT, WM_SETTEXT и т.п.
Может можно как-нибудь создать свое окно и заставить программу подумать, что это ее окно, но я не знаю как.
Возможно вы знаете более легкие способы решения моей задачи. Очень прошу... очень нужно...
Всего доброго !
Сергей.



Вопрос отправлен: 09.07.2003, 21:22
Отправитель: Fantomas

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

Отвечает Bob Johnson

Здравствуйте, Fantomas!
Если окно не создано, то никаких элементов нигде нет вообще и получить доступ к ним невозможно. Ты можешь только создать это диалоговое окно в стиле invisible (т.е. невидимое), тогда оно появится, появится его hwnd и все элементы в нем, после этого ты сможешь получить к ним доступ (SendDlgItemMessage, SetDlgItemText и т.д.).

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 10.07.2003, 23:10
Отправитель: Bob Johnson


Отвечает Евгений Иванов

Доброе время суток, Fantomas!
Во первых, тут должно быть много интересного:
http://www.cpetzold.com
Зная номер окна кОнтроля, находишь его родителя.
hwndParent = GetParent (hCtrl) ;
Вообще-то номер окна - главное.
Зная ID, ты ничего не сможешь сделать, только через HWND.


Ответ отправлен: 11.07.2003, 08:48
Отправитель: Евгений Иванов


 Вопрос № 3671

Здравствуйте, уважаемые эксперты!
Пробовал я использовать в VC++ асмовский код. Работает прекрасно, но когда дело доходит до прерываний (таких, например, как 21h и ещё нескольких) появляются жуткие баги: либо при запуске выдается ошибка, либо вешает винду намертво (пишу в W98). Прочие прерывания (10h, 11h, ...)работают нормально. Помогите, пожалуйста!!!



Вопрос отправлен: 10.07.2003, 07:14
Отправитель: Ренат (renatka_f@mail.ru)

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

Отвечает _vt

Здравствуйте, Ренат!
Если программа для Win32 - прерывания DOS использовать нельзя, исключение - драйверы устройств.
> Прочие прерывания (10h, 11h, ...)работают нормально.
Нормально, это как ??? :-)

---===*** E-Man 1.4 - waiting for 1.5...***===---


Ответ отправлен: 11.07.2003, 18:56
Отправитель: _vt


Отвечает vitya

Доброе время суток, Ренат!
Понимаете, Ренат, из программы под окна вызывать функции доса - не совсем правильно. Точнееб вообще неправильно. Поэтому такие вещи и происходят. 10 прерывание - это прерывание bios-а, которое не зависит от операционной системы. Оно прошито в компьютер - и поэтому вызовы проходят.

Ответ отправлен: 10.07.2003, 08:54
Отправитель: vitya


Отвечает baldr

Здравствуйте, Ренат!
В винде нельзя вызывать прерывания, ибо там - защищенный режим, а прерывания, по своей сути, работают в реальном.

Ответ отправлен: 10.07.2003, 16:45
Отправитель: baldr


Отвечает Bob Johnson

Приветствую Вас, Ренат!
А ты что, хочешь под виндами досовские функции вызывать? Это невозможно - виндовс предоставляет набор апи-функций, но не прерываний (это же не линух). Например, чтобы вывести текст в консоль используются WriteFile и GetStdHandle.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 10.07.2003, 23:10
Отправитель: Bob Johnson


Отвечает Евгений Иванов

Приветствую Вас, Ренат!
Зачем тебе в Окнах прерывания РЕАЛЬНОГО режима?
В системе есть покруче функции, без всяких прерываний!
Да, может некоторые функции и хорошо эмулируются, но тебе это нужно?
Не проще ли использовать 32-битный защищённый режим?
А ты пишешь для консоля?
Пишешь программу PE или MZ?
Если MZ (для ДОС), то должны все функции работать.
Приведи кусок кода, где не работает и я скажу, в чём дело.
А гадают на кофейной гуще...


Ответ отправлен: 11.07.2003, 08:50
Отправитель: Евгений Иванов


Отвечает Zedr0n

Здравствуйте, Ренат!
Насколько я знаю, с помощью VC++ нельзя создавать DOS'овские
приложения, а родные win32 приложения работают в защищенном
режиме. В этом-то и состоит проблема. В защищенном режиме
прерывания работать не обязаны. Некоторые прерывания, в том
числе упомянутые вами, в некоторых версиях Windows работают.
Но никакой определенной информации по этому поводу нет.
Поэтому используйте Borland C, а как помочь Вам в данном случае я не знаю.


Ответ отправлен: 12.07.2003, 14:30
Отправитель: Zedr0n


 Вопрос № 3673

хубба, ответь на вопросы:
Ты долба#$б? Или нет?
Шизофреник?
Или просто тормоз(типа не )?

Ко всем экпертам? А кто знает реальный адрес этого придурка Хуббы? А то бригаду санмтаров к нему прислать бы...



Вопрос отправлен: 10.07.2003, 09:55
Отправитель: hubba (idiot)

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

Отвечает _vt

Доброе время суток, hubba (idiot)!
Странно, по-мнению автора вопроса, Hubba ответит сам себе (это следует из подписи читателя)... А адрес вроде baldr знает...


Ответ отправлен: 10.07.2003, 14:12
Отправитель: _vt


Отвечает Bob Johnson

Доброе время суток, hubba (idiot)!
zirewin@yandex.ru

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 10.07.2003, 23:10
Отправитель: Bob Johnson


Отвечает Евгений Иванов

Приветствую Вас, hubba (idiot)!
Тоже заметил, что какой-то эксперт отвечает пустышками...
Но зачем же так сердито, может, у него технические проблемы...


Ответ отправлен: 11.07.2003, 08:53
Отправитель: Евгений Иванов


Отвечает Tigran K. Kalaidjian

Приветствую Вас, hubba (idiot)!
Не провацируйте его - хуже будет. Посмотрите, например Mtu.Inform за прошлый год =(

Ответ отправлен: 11.07.2003, 09:09
Отправитель: Tigran K. Kalaidjian


 Вопрос № 3676

Вам не кажется, что Hubba и Наталья Березовец - это один и тот же человек?
Собрались, извините за неконструктивную критику, здесь мудрейшие корни и не могут избавиться от одного гермофрадита :(
Да, Hubba, раз уж ты всё равно это письмо в рассылку отправишь, то пусть все знают, что ты - ЛОХ.



Вопрос отправлен: 10.07.2003, 20:42
Отправитель: Antonio

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

Отвечает Bob Johnson

Добрый день, Antonio!
Ты знаешь, а вот я кстати недавно думал об этом - это вполне возможно...
> не могут избавиться от одного гермофрадита
Да дело даже не в нем одном - можно, конечно, его удалить, но он может и еще раз зарегистрироваться... А если закрыть свободную регистрацию, то надо какой-то тест делать и т.д. В общем сложно это все.
> Да, Hubba, раз уж ты всё равно это письмо в рассылку отправишь, то пусть все знают, что ты - ЛОХ.
Согласен. Но если hubba = Наташа Б., то тогда ему еще долго не надоест отвечать на вопросы... :)

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 10.07.2003, 23:11
Отправитель: Bob Johnson


Отвечает Tigran K. Kalaidjian

Здравствуйте, Antonio!
Чего ж Вы сразу наезжаете? Кто сказал, например, что Вы - это не хуба или не один из экспертов (BJ, например?=). Зачем строить предположения, и из них делать выводы, которые могут унизить человека? Я не защищаю этих 2 наших пользователей, но и не советую Вам их оскорблять, т.к. E-MAIL'a своего Вы не оставили, а значит и Вам нельзя отправить ответное письмо на Ваше оскорбление, а 2 человек Вы обозвали в Рассылке на 10тыс. человек. Нехорошо это как-то.
А что хуба-лох знают и без Вас, и вообще не стоит его провоцировать, ему самому станет скучно. Подтверждаю опытом участия в немодерируемой конфе Mtu.Inform
Если есть мысли по этому поводу, пишите на kalaidjian@pochtamt.ru

Ответ отправлен: 11.07.2003, 11:18
Отправитель: Tigran K. Kalaidjian


Отвечает _vt

Добрый день, Antonio!
Действовать против Хубы его же приемами в корне неправильно - достаточно его проигнорировать... А Наталья Березовец ничего плохого никому не сделала - так, неудовлетворенная жизнью дамочка (если, конечно, дамочка:-)). Люди это скорее всего разные...
P.S. Сейчас меня начнут подозревать в хуббизме :-)

---===*** E-Man 1.4 - waiting for 1.5...***===---


Ответ отправлен: 12.07.2003, 01:00
Отправитель: _vt


 Вопрос № 3677

Товарищи специалисты помогите с конвертером
мне надо растровое изображение перевести в векторное(Желательно в AutoCad)или посоветуйте программку какую-нибудь



Вопрос отправлен: 10.07.2003, 20:42
Отправитель: !!!WeSeL!!! (wesel@piligrim.com.ua)

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

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

Приветствую Вас, !!!WeSeL!!!!
Насколько я знаю, эта задача никем еще до конца не решена, а ты сразу захотел готовый конвертер.

Ответ отправлен: 14.07.2003, 10:14
Отправитель: ASMодей


 Вопрос № 3678

Подскажите,пожалуйста,где можно добыть исходник хорошего трояна на Win32, написанного на ASM! Нужен не для использования! Пошлите пожалуйста ссылки на сайты с исходниками!



Вопрос отправлен: 11.07.2003, 00:00
Отправитель: Mafia32

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

Отвечает Tigran K. Kalaidjian

Доброе время суток, Mafia32!
Отослал бы, если б Вы хоть E-MAIL свой указали...
У меня есть исходники на Ассемблере, С, а также Delphi.
Если нужны, то пишите на kalaidjian@pochtamt.ru , указав, что именно Вам нужно.

Ответ отправлен: 11.07.2003, 11:03
Отправитель: Tigran K. Kalaidjian


Отвечает Andy

Приветствую Вас, Mafia32!
Вот держи... только смотри не используй(скачай и удаляй быстрей ;) )
http://www.ishodnikov.net/hacking/trojans/sources.php

Ответ отправлен: 12.07.2003, 16:19
Отправитель: Andy


 Вопрос № 3679

Всем мои Приветствия!!!
В книге Зубкова - "Assembler для DOS, Windows и Unix" для описания DOS- функции 02h, приводится пример, который выводит на экран все ASCII-символы (16 строк по 16 символов в строке). То же самое я попытался сделать используя INT 29h, но моё творение выводит на экран только две строки и завершает работу. Почему?
И исчо - у меня TASM v5 компилирует под Windows (98SE), а MASM 6.13 только под DOS, под виндой пишет любимую фразу о недопустимойошибке, так надо? или можно и на MASM' е под виндой компилировать?
Спсибо всем!


Приложение:


Вопрос отправлен: 11.07.2003, 00:11
Отправитель: clayman

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

Отвечает Евгений Иванов

Здравствуйте, clayman!
Надо так:
Будь внимательней!


Приложение:

Ответ отправлен: 11.07.2003, 13:24
Отправитель: Евгений Иванов


Отвечает Ayl

Добрый день, clayman!
Ты код-то свой хоть проверял? Сначала выводишь символ через прерывание 29h - это правильно. Потом вместо вывода на экран символов с кодами 0Dh и 0Ah делаешь следующее:
> mov al,0Dh
> int 21h
хм... сбросить буферы обмена на диск... Интересный подход...
> mov al,0Ah
> int 21
А это что за вызов? В прерывании 15h (15h = 21!) нет функции 0Ah
См. в приложении работающую прогу. Криво выводится только первая строка, т.к. там несколько управляющих символов "заныкалось" - BS, Tab, LF, CR и т.п. Можно и их обработать, но не хотелось перегружать прогу.
Второй вариант - вывод с помощью прямого отображения в память, здесь табличка строится очень ровно.

Приложение:

Ответ отправлен: 11.07.2003, 11:18
Отправитель: Ayl


Отвечает Broken Sword

Добрый день, clayman!
Удивительно как это у тебя две строки выводятся - по идее должна одна: перед первым int 21h в AH лежит 0, а это функция выхода


Ответ отправлен: 11.07.2003, 18:11
Отправитель: Broken Sword


Отвечает Hangatyr

Приветствую Вас, clayman!
1. Что же тут удивительного? Выводишь с помощью int 29h, а 0dh и 0ah с помощью вызова int 21h (при этом ah равен непонятно чему).
2. Можно при большом желании, но лучше использовать Masm32.

Приложение:

Ответ отправлен: 11.07.2003, 05:59
Отправитель: Hangatyr


Отвечает Tigran K. Kalaidjian

Доброе время суток, clayman!
Замените строки 12 и 14 на:
int 29h
И все будет в порядке.
У Вас ошибка из-за неправильного использования int21h, а в строке 14 это вообще int15h.

Ответ отправлен: 11.07.2003, 09:22
Отправитель: Tigran K. Kalaidjian


Отвечает Bob Johnson

Доброе время суток, clayman!
1. Если ты стал использовать прерывание 29h для вывода текста, то зачем ты используешь 21h для вывода символа 0Dh?
2. Ну а что такое int 21?
-------
в общем см. приложение

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Приложение:

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


Отвечает _vt

Доброе время суток, clayman!
По-твоему, для перевода строки можно использовать любое прерывание??? :-)
Ведь вместо int 21h надо везде подставить int 29h, а у тебя то 21h, то просто 21...

---===*** E-Man 1.4 - waiting for 1.5...***===---


Ответ отправлен: 12.07.2003, 01:00
Отправитель: _vt


Отвечает Zedr0n

Доброе время суток, clayman!
Нет, я, может быть, чего-то не понимаю, но с чего у Вас
здесь:
mov al,0Dh
int 21h
mov al,0Ah
int 21
вместо
mov al,0Dh
int 29h
mov al,0Ah
int 29h
Наверное, опечатка ;) Но так все работает. Лично я советую
писать комментарии, очень помогает избегать ошибок. ;)

Ответ отправлен: 12.07.2003, 14:37
Отправитель: Zedr0n



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (34)
C / C++ (22)
Perl (5)
Builder / Delphi (16)
Pascal (23)
Basic / VBA (9)
Java / JavaScript (11)
PHP (9)
MySQL / MSSQL (8)
Криптография (6)
WinAPI (8)
Пользователю
Windows 95/98/Me (32)
Windows NT/2000/XP (27)
"Железо" (24)
Поиск информации (16)
Администратору
Windows NT/2000/XP (15)
Linux / Unix (5)
Юристу
Гражданское право (10)
Семейное право (5)
Трудовое право (9)
КоАП (5)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


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

В избранное