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

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


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

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

Выпуск № 754
от 30.07.2004, 23:20

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


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

PavPS
Статус: Доверительный
Общий рейтинг: 128.4
[Подробней >>]
Горячев Игорь
Статус: Доверительный
Общий рейтинг: 119.49
[Подробней >>]
Dragoon
Статус: Доверительный
Общий рейтинг: 109.69
[Подробней >>]
 
Стас
Статус: Опытный
Общий рейтинг: 125
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 118.27
[Подробней >>]
flasher
Статус: Доверительный
Общий рейтинг: 105.76
[Подробней >>]
 
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 133.36
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
bocha
Статус: Опытный
Общий рейтинг: 132.83
[Подробней >>]


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

Вопрос № 5629. Подскажите кто нибудь, как залезть в нулевое кольцо в системе Windows NT? Заранее от души.... (ответов: 3)
Вопрос № 5630. По-моему я не правильно установил MASM 6.11 При попытке ассемблирования файла выдается ошибка. См. п... (ответов: 2)
Вопрос № 5633. Дарова. Не знаете где можно взять оригинальный *.exe от вируса MSBLASTER?... (ответов: 2)
Вопрос № 5634. Привет. Я недавно по поводу загрузки гифов спрашивал. IDXSurfaceFactory это конечно круто. Только я ... (ответов: 2)
Вопрос № 5636. Добрый день. Какие программы остро нуждаются в наличие потоков(Threads). Можно ли без них писать до... (ответов: 2)
Вопрос № 5637. здравстсвуйте уважаемые эксперты. Где можно скачать учебник Юрова? заранее благодарен.... (ответов: 1)
Вопрос № 5639. Привет экспертам. Есть функция func: func proc A:DWORD mov [A],1 ret func endp Я вызываю ее так:... (ответов: 2)
Вопрос № 5640. Здравствуйте. Я бы хотел создать свою библиотеку API экспортирующую функции в Visual Basic. В книге ... (ответов: 2)
Вопрос № 5641. Привет! Подскажите, пожалуйста, как можно привести с помощью функций Win32 API полный путь файла (lo... (ответов: 4)
Вопрос № 5642. Привет всем участникам рассылки! Необходимо встроить в исполняемый файл небольшую программу, котора... (ответов: 2)
Вопрос № 5643. Привет Пишу: .data char db 'c',0 .data? abuff dd ? .code start: lea eax, char mov abuff,eax... (ответов: 3)

Вопросов: 11, ответов: 25


 Вопрос № 5629

Подскажите кто нибудь, как залезть в нулевое кольцо в системе Windows NT? Заранее от души.



Вопрос отправлен: 22.07.2004, 02:58
Отправитель: Васан (vasanin@rambler.ru)

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

Отвечает PavPS

Доброе время суток, Васан!
Официально - ч/з написание драйвера.
Не официально - придумай сам :/

Ответ отправлен: 22.07.2004, 13:02
Отправитель: PavPS


Отвечает Горячев Игорь

Добрый день, Васан!
Единственный шанс это присвоить своей проге статус драйвера. На WASM.RU есть статьи, про программирование драйверов режима ядра. Нетривиальная задачка! Почитай, там грамотно все описано.

Ответ отправлен: 22.07.2004, 22:48
Отправитель: Горячев Игорь


Отвечает Dragoon

Приветствую Вас, Васан!
Таблица прерываний не защищена ни в одной из
версий винды.
Полное описание алгоритма
(взято из книги
'Путеводитель по написанию вирусов под Win32')


Приложение:

Ответ отправлен: 24.07.2004, 18:52
Отправитель: Dragoon


 Вопрос № 5630

По-моему я не правильно установил MASM 6.11
При попытке ассемблирования файла выдается ошибка. См. приложения. Подскажите , пожалуйста, что я делаю неправильно. Файл Prog.asm из книги Калашникова.


Приложение:


Вопрос отправлен: 22.07.2004, 02:59
Отправитель: tRiNEX

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

Отвечает Стас

Здравствуйте, tRiNEX!
Суть твоей проблемы - MASM.EXE не может найти ML.EXE
а ML.EXE не найдет LINK.EXE.
Дело, скорее всего, в том, что компилятор разбросан по двум папкам: BIN и BINR. (Я обычно их соединяю в одну BIN)
Т.е. либо пропиши путь к папке C:MASM611BINR в PATH, либо пиши (если в ручную) полные пути к компилятору и линковщику.
Например:
C:MASM611BINRML.EXE /I. /Zm /c /a /FoT.obj /Ta C:MASM611BINProg01.asm
и
C:MASM611BINRLINK.EXE Prog01.obj

Ответ отправлен: 22.07.2004, 12:45
Отправитель: Стас


Отвечает _vt

Доброе время суток, tRiNEX!
Пропиши путь к C:\MASM611\BIN в переменной %PATH% - Win+Break, "Дополнительно", "Переменные среды". Просто добавь в конец переменной PATH строку C:\MASM611\BIN.
* Origin : Life begins at 1000Mhz!


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


 Вопрос № 5633

Дарова.
Не знаете где можно взять оригинальный *.exe от вируса MSBLASTER?



Вопрос отправлен: 22.07.2004, 17:26
Отправитель: andrey

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

Отвечает flasher

Добрый день, andrey!
А чем отличается оригинал от копии? :)

Ответ отправлен: 25.07.2004, 17:57
Отправитель: flasher


Отвечает Dragoon

Приветствую Вас, andrey!
Именно из-за таких как ты в Сети эпидемии

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


 Вопрос № 5634

Привет.
Я недавно по поводу загрузки гифов спрашивал.
IDXSurfaceFactory это конечно круто. Только я ни в SDK, ни в МСДН его не нашёл. МСДН у меня явно старее 2000 года, DirectXSDK версии 7, а на тачке юзается DirectX 8.
Я ещё на всякий случай сделал поиск по LIB и DLL, и тоже не нашёл IDXSurfaceFactory, а все встретившиеся LoadImage относились к USER32.
Отсюда опять два вопроса:
1-Если всё-таки у меня нет этого крутого интерфейса, то ведь должны же быть в винде всё равно какие нибудь средства стандартные. Explorer, например, грузит гифы. Или он не вызывает системных функций распаковки изображений, а использует только прошитые в его exe-шнике или его ДЛЛ?
2-Если всё-таки восьмой директ имеет этот интерфейс, то чё я его нигде не нашёл. Глупый вопрос. Возможно я идиот, вот и не нашёл. Может примерчик кто-нибудь вышлет, если юзал уже эту фишку.



Вопрос отправлен: 23.07.2004, 02:37
Отправитель: ПАПА

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

Отвечает _vt

Добрый день, ПАПА!
В моем MSDN этот интерфейс прописан в Direct Media SDK.
> Я ещё на всякий случай сделал поиск по LIB и DLL, и тоже не нашёл IDXSurfaceFactory
Искать надо по MSDN! :) Я поискал по реестру, и ссылки ведут к файлу dxtrans.dll, но в явном виде он никаких подобных функций не экспортирует - только через COM, и я тебе честно скажу, что в COM разбираюсь крайне плохо.
Ну и ответы на твои вопросы:
1) Explorer "грузит гифы", используя средства Internet Explorer. Кстати, IE 4 хотя бы, у тебя установлен? (Он требуется как раз этому IDXSurfaceFactory::LoadImage) IE, в свою очередь, использует как раз те патентованые механизмы, про которые я тебе давал вырезку из MSDN. Они - недокументированы.
2) ИМХО, этот интерфейс имеется в DirectX 6.1, т.к. насколько я знаю (могу ошибаться), интерфейсы 7,8,9 DirectX имеют цифру на конце, соответствующую версии. Пример: IDirectDrawSurface7.
"Примерчики" послать не могу, т.к. в моем MSDN их по этой теме почему-то нету, да и разбираюсь я в DirectX несильно.
* Origin : Life begins at 1000Mhz!


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


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

Приветствую Вас, ПАПА!
У меня же исходник лежит на сайте. Бери и пользуйся! Вот ведь какие вы ленивые!! готовенькое - и то не надо..
* EMan: -=- Любовь всегда неразделённая... =-=


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


 Вопрос № 5636

Добрый день.
Какие программы остро нуждаются в наличие потоков(Threads). Можно ли без них писать достаточно крупный клиентские программы(вроде браузеров). Если нет, то сколько в среднем нужно потоков.



Вопрос отправлен: 23.07.2004, 17:24
Отправитель: Alexej

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

Отвечает PavPS

Добрый день, Alexej!
Попробуй сначала почитать определение наиважнейших объектов OS, а потом спрашивать. Почитай про Job,Process,Thread(fiber). Оччень советую...

Ответ отправлен: 23.07.2004, 23:07
Отправитель: PavPS


Отвечает Dragoon

Доброе время суток, Alexej!
Даже довольно малое кол-во потоков(>3-4) может
конкретно притормозить систему. Обычно в прогах
типа браузеров всего 2 потока - один общается с сервером, а второй - с юзером.

Ответ отправлен: 24.07.2004, 18:58
Отправитель: Dragoon


 Вопрос № 5637

здравстсвуйте уважаемые эксперты.
Где можно скачать учебник Юрова?
заранее благодарен.



Вопрос отправлен: 23.07.2004, 18:02
Отправитель: Vlad (ivchencov@mail.ru)

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

Отвечает Горячев Игорь

Здравствуйте, Vlad!
Скорее всего в Инете его нет. Так что в ближайшем книжном магазине :) Много полезного есть на http://wasm.ru

Ответ отправлен: 24.07.2004, 00:14
Отправитель: Горячев Игорь


 Вопрос № 5639

Привет экспертам.
Есть функция func:
func proc A:DWORD
mov [A],1
ret
func endp
Я вызываю ее так:
invoke func, addr buff
.IF buff == 1
invoke MessageBox,0,"buff=1",0,0
.ENDIF
Здесь я в качесте параметра A пишу адрес переменой buff, а в самой функций func по адресу A пишется число 1(по ходу дела в buff должно быть число 1). Должен выскочить MessageBox если buff = 1, он не появляется :(. Почему?



Вопрос отправлен: 24.07.2004, 19:29
Отправитель: andrey

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

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

Приветствую Вас, andrey!
ты вот так кури:
func proc A:DWORD
mov esi, [A]
mov [esi], byte ptr 1
ret
Бывай!

* EMan: -=- Любовь всегда неразделённая... =-=


Ответ отправлен: 25.07.2004, 19:39
Отправитель: Евгений Иванов


Отвечает Горячев Игорь

Приветствую Вас, andrey!
Так MessageBox не вызывают! Передавать надо не строку, а указатель на строку. Т.е.
invoke MessageBox,0,addr szStr,0,0
где szStr db 'buff=1',0
И еще, лучше указывать дескриптор окна-владельца.
invoke MessageBox,hWin,addr szStr,0,0
Работать будет, но в заголовке MessageBox'a будет надпись "ошибка".
Чтоб этого не было:
invoke MessageBox,hWin,addr szText,szCaption,MB_OK
szText db 'buff=1',o
szCaption db 'Сообщение',0

Ответ отправлен: 24.07.2004, 22:59
Отправитель: Горячев Игорь


 Вопрос № 5640

Здравствуйте.
Я бы хотел создать свою библиотеку API экспортирующую функции в Visual Basic.
В книге В.Ю. Пирогова "Assembler для Windows" очень кратко рассмотрен процесс создания DLL с поздним связыванием экспортируемых функций.
Эти функции становятся доступны только из приложений на ассемблере. А в Visual Basic просто не находится файл, даже если четко указать путь.
Просьба рассмотреть более четко путь создания API, а также способ возврата результата в вызывающую программу.


Приложение:


Вопрос отправлен: 26.07.2004, 14:23
Отправитель: Владимир

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

Отвечает Dragoon

Доброе время суток, Владимир!
Функции, заложенные в DLL, доступны из ЛЮБОГО языка программирования, позволяющего использовать WinAPI.
Почитай справочник по нему по темам со словом Library

Ответ отправлен: 26.07.2004, 18:30
Отправитель: Dragoon


Отвечает _vt

Доброе время суток, Владимир!
К сожалению (или к счастью? ;-)) я не знаю, как Visual Basic работает с DLL, но чисто теоретически это ничем не отличается от любого другого высокоуровневого языка. В Visual Basic есть возможность вызывать API функции? Если есть, то чем не устраивает связка LoadLibrary/GetProcAddress? Соблюдаются ли calling conventions, и какие используются по умолчанию? Если нужно - ответь на эти вопросы мне на e-mail.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 28.07.2004, 20:43
Отправитель: _vt


 Вопрос № 5641

Привет!
Подскажите, пожалуйста, как можно привести с помощью функций Win32 API полный путь файла (long filenames), написанный символами произвольного регистра, в такой вид как в каталоге (как показывают файловые менеджеры)! То есть, например, c:\WiNdOwS\ABCDEFGHIJ.txt в (к примеру) c:\Windows\Abcdefghij.txt
St



Вопрос отправлен: 26.07.2004, 19:49
Отправитель: St (st23@yandex.ru)

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

Отвечает flasher

Здравствуйте, St!
юзай GetModuleFileNameA

Ответ отправлен: 26.07.2004, 20:40
Отправитель: flasher


Отвечает Стас

Здравствуйте, St!
А ручками слабо?
Перебрал все символы строки сделал первые после разделителей большими(and al,dfh), остальные малыми (or al,20h), и все...

Ответ отправлен: 26.07.2004, 21:29
Отправитель: Стас


Отвечает Dragoon

Добрый день, St!
Для этого WinApi не нужен
(да и нет там таких 'сложных' функций).
Пишешь процедуру, которая переводила бы все в
нужный тебе формат.


Ответ отправлен: 28.07.2004, 18:33
Отправитель: Dragoon


Отвечает bocha

Приветствую Вас, St!
LPTSTR CharLower(LPTSTR lpsz);
DWORD CharUpperBuff(LPTSTR lpsz, DWORD cchLength);


Ответ отправлен: 27.07.2004, 04:48
Отправитель: bocha


 Вопрос № 5642

Привет всем участникам рассылки!
Необходимо встроить в исполняемый файл
небольшую программу, которая будет выводить диалог
для пользователя и после того как соответствующих изменений
исполняемый код должен продолжить свою работу с определенной
точки. Подскажите плиз какие подходы здесь можно использовать
и если можно подробнее.
Заранее большое спасибо всем ответившим 1.



Вопрос отправлен: 26.07.2004, 21:55
Отправитель: 1

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

Отвечает _vt

Добрый день, 1!
А чем это отличается от процедуры? :) ИМХО, ты изобретаешь велосипед.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 28.07.2004, 20:43
Отправитель: _vt


Отвечает Dragoon

Добрый день, 1!
Если это защита, тогда надо это не сюда. Для этого
есть книги, по толщине не уступающие 'Войне и Миру';
А переход делай jmp или j**. Можно извратиться
с помощью ret и псевдо call'ов.

Ответ отправлен: 28.07.2004, 18:36
Отправитель: Dragoon


 Вопрос № 5643

Привет
Пишу:
.data
char db 'c',0
.data?
abuff dd ?
.code
start:
lea eax, char
mov abuff,eax
mov [abuff],'a'
invoke MessageBox,0,abuff,abuff,0

Здесь в eax загружается адрес char, а потом в abuff копируется eax, потом по адресу abuff пишется символ 'a', и выводится MessageBox. Дело в том что выводится не символ 'a' а 'c'. Где ошибка?



Вопрос отправлен: 26.07.2004, 23:12
Отправитель: andrey

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

Отвечает Dragoon

Приветствую Вас, andrey!
В MessageBox надо передавать не саму строку,
а её смещение. Т.е.
.data
a db 'Caption',0
b db 'Text',0
.code
invoke MessageBox,0,offset a,offset b, MB_OK

Ответ отправлен: 28.07.2004, 18:38
Отправитель: Dragoon


Отвечает Стас

Здравствуйте, andrey!
Что по твоему делает команда:
mov [abuff],'a'
Странно, что у тебя 'c' выводит. Должно вообще какуюто ерунду выводить. Т.к. только что положенный в abuff (mov abuff,eax) адрес забивается новым значением 0000061h.

Ответ отправлен: 27.07.2004, 14:05
Отправитель: Стас


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

Приветствую Вас, andrey!
тупым надо лечиться...
что тебе нужно сделать?!
вывести 'c' ?
прошу:
Call MessageBox,0,offset char,offset char,0
хотя я понял, что тебе нужно. так?
lea eax, char
mov abuff,eax
mov [eax],'a'
invoke MessageBox,0,abuff,abuff,0
вот сейчас будет выводиться "а".
только зачем тебе переменная?!
вот так лучше:
lea eax, char
mov [eax],'a'
invoke MessageBox,0,eax,eax,0
Бывай.
* EMan: -=- Любовь всегда неразделённая... =-=


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



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (23)
C / C++ (12)
Perl (5)
Builder / Delphi (17)
Pascal (23)
Basic / VBA (7)
Java / JavaScript (6)
PHP (16)
Криптография (8)
WinAPI (9)
Радиоэлектроника (11)
Пользователю
Windows 95/98/Me (46)
Windows NT/2000/XP (60)
"Железо" (45)
Поиск информации (15)
Администратору
Windows NT/2000/XP (37)
Linux / Unix (20)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (9)
КоАП (7)

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




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


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

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное