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

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


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

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

Выпуск № 559
от 06.06.2003, 08:00

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


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

Maverick
Статус: Профессиональный
Общий рейтинг: 132.04
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Lynx
Статус: Опытный
Общий рейтинг: 129.44
Телефон: (8442) 750522
[Подробней >>]
Дмитрий
Статус: Опытный
Общий рейтинг: 156.42
[Подробней >>]
 
Pin
Статус: Опытный
Общий рейтинг: 120
URL: My HOMEPAGE
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 138.32
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 122.45
URL: моя рассылка по Protected Mode
[Подробней >>]
 
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 151.51
URL: Программирование
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.07
[Подробней >>]
Ramzes
Статус: Профессиональный
Общий рейтинг: 126.98
URL: Microsoft homepage
[Подробней >>]
 
[MozgC]
Статус: Профессиональный
Общий рейтинг: 169.58
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 110.61
URL: Мой сайтик...
[Подробней >>]
Tigran K. Kalaidjian
Статус: Опытный
Общий рейтинг: 117.59
URL: Методы оптимизации работы ПК
[Подробней >>]
 
_vt
Статус: Опытный
Общий рейтинг: 118.78
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.88
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 108.25
URL: Beeblebrox / TMA HomePage
[Подробней >>]
 
Илья
Статус: Опытный
Общий рейтинг: 103.84
[Подробней >>]
Knignick
Статус: Опытный
Общий рейтинг: 111.24
URL: Мой каталог ссылок по программированию
[Подробней >>]
Hayk
Статус: Доверительный
Общий рейтинг: 110
[Подробней >>]


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

Вопрос № 3322. Здравствуйте, эксперты. Сам я на ассемблере не пишу, пишу на C++, но думаю, что для решения моей про... (ответов: 1)
Вопрос № 3323. Здравствуйте, уважаемые эксперты. Вопрос по защищенному режиму: как разные Windows относятся к тому,... (ответов: 8)
Вопрос № 3324. Здравствуйте ,уважаемые эксперты.Не подскажите где можно скачать работающий не с битыми файлами IDA ... (ответов: 4)
Вопрос № 3325. Здравствуйте, ребята помогите с LPT/ Проблема такова: Значит выплюнуть в порт байт относительно 378h... (ответов: 2)
Вопрос № 3326. Здравствуйте. Уважаемые эксперты, у меня к вам вопрос по поводу запуска программ, а если точнее, то ... (ответов: 3)
Вопрос № 3327. Добрый день ув.Эксперты... Есть в секции .data? inR db 512 dup(?) потом загоняю туды 333 -ВСЁ Норма... (ответов: 5)
Вопрос № 3328. Здраствкйте Помогите пожалуйста с програмированием звуков на ассемблере. И еще очень нужен исходник ... (ответов: 6)
Вопрос № 3329. Уважаемые эксперты! Вашему вниманию предлагается программа, позволяющая автоматизировать процесс отв... (ответов: 1)
Вопрос № 3330. Приветик всем... Мне интересно: под ДОСом было int 13h для доступа непосредственно к винту, можно бы... (ответов: 3)
Вопрос № 3331. Вот код , посредствам которого я хочу определить Есть ли какая-нибудь реакция на то что я ... (ответов: 1)
Вопрос № 3333. Привет всем! Пишу в эту категорию, потому что думаю, что местные эксперты по роду своей второстепенн... (ответов: 6)
Вопрос № 3334. Доброго времени суток. Вот наткнулся на проблемму при переходе в защищённый режим. Едиственное отлич... (ответов: 4)
Вопрос № 3335. 2Broken_Sword "я вот непойму только одного момента: если тебе не важен критерий защищенности... (ответов: 3)
Вопрос № 3336. Здравствуйте, подскажите, пожалуйста, какое сообщение посылается при появлении подсказки на tray ico... (ответов: 2)
Вопрос № 3337. Hi, menЫ ! Не подскажете с какими функциями Api надо работать, чтобы преобразовать число в строку. (... (ответов: 7)
Вопрос № 3338. Здравствуйте эксперты! Подскажите пожалуйста простой и надежный способ блокировки Ctrl+Alt+Del в Win... (ответов: 7)
Вопрос № 3339. Приветик... Хочу шутливую рожку написать. Чтот-то типа: вы буковку 'W' нажимаете, а она перелавливае... (ответов: 2)
Вопрос № 3340. Hi! Если не трудно киньте мне плиз доки или(и) ссылки на доки о процессе загрузки компа (желательно ... (ответов: 1)

Вопросов: 18, ответов: 66


 Вопрос № 3322

Здравствуйте, эксперты. Сам я на ассемблере не пишу, пишу на C++, но думаю, что для решения моей проблемы потребуются ассемблерные вставки. Проблема в том, что нужно перехватывать API-функции в Win9x. Где-то прочитал, что(цитирую):
"В системах Win95/98 некоторые системные библиотеки (kernel32, user32 и др.) загружаются в адресное пространство "2Gb, которое проецируется на все контексты, присутствующие в системе. Это усложняет процесс перехвата их функций, так как содержимое памяти свыше 2Gb не может быть изменено стандартными документированными API функциями. Установить разрешение на запись в эту область памяти может функция _PageModifyPermissions, вызывающаяся с помощью kernel32!VxDCall0 и имеющая номер 1000dh. После установки атрибута "writable" на необходимый регион памяти и осуществления записи в него изменения произойдут во всех присутствующих контекстах одновременно..."
Не могли бы вы показать какой-нибудь пример, как это реализовать.



Вопрос отправлен: 01.06.2003, 08:20
Отправитель: Marouder (marouder@list.ru)

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

Отвечает Maverick

Доброе время суток, Marouder!
Иогу предложить другой способ, переходишь на нулевой уровень привелегий и пиши куда хочешь.
Исходников в инете кучи, гляди на вирусных сайтах.

Ответ отправлен: 04.06.2003, 15:41
Отправитель: Maverick


 Вопрос № 3323

Здравствуйте, уважаемые эксперты.
Вопрос по защищенному режиму: как разные Windows относятся к тому, что я буду модифицировать в памяти исполняемый код своей уже загруженной программы? Например, расшифровывать/зашифровывать "на лету" некую процедурку.
Защищенный режим подразумевает защиту программ только друг от друга, или внутри программы тоже?



Вопрос отправлен: 01.06.2003, 08:56
Отправитель: Blackman (www.blackman2003.da.ru)

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

Отвечает Lynx

Доброе время суток, Blackman (www.blackman2003.da.ru)!
Да модифицируй ради бога, тебе никто слова не скажет, пока твой код не залезет на код чужой программы. :))) А почему ты задаёшь вопрос, вместо того, что бы взять и попробовать? ;)


Ответ отправлен: 02.06.2003, 15:29
Отправитель: Lynx


Отвечает Дмитрий

Приветствую Вас, Blackman (www.blackman2003.da.ru)!
Самомодифицирующийся код в винде возможен. См. Криса Касперски.

Ответ отправлен: 03.06.2003, 12:54
Отправитель: Дмитрий


Отвечает Pin

Здравствуйте, Blackman (www.blackman2003.da.ru)!
В общем реакция будет отрицательной, т.к. запись в сегмент кода не разрешена.
PS. Такие вещи можно просто взять и проверить.

Ответ отправлен: 02.06.2003, 23:33
Отправитель: Pin


Отвечает masquer

Здравствуйте, Blackman (www.blackman2003.da.ru)!
Виндам все равно, главное чтобы соответствующий флаг в характеристиках секций стоял

Ответ отправлен: 01.06.2003, 13:05
Отправитель: masquer


Отвечает Broken Sword

Здравствуйте, Blackman
можешь изменять код СВОЕЙ проги через селектор на дескриптор сегмента данных USER-ских прог (в Win XP это 23h селектор). Он описывает RW сегмент данных.
Через селектор кода (CS) естественно не сможешь

код чужой изменить не сможешь (хотя если сможешь изменить себе CPL - ради бога).

Ответ отправлен: 01.06.2003, 14:33
Отправитель: Broken Sword


Отвечает Bob Johnson

Добрый день, Blackman (www.blackman2003.da.ru)!
Windows 98 вполне нормально на это отреагирует. А вот НТ-системы не позволяют просто так записывать в свой сегмент кода - он может быть только прочитан и выполнен. Но тут решается все просто - вызывается функция VirtualProtect, которая позволяет изменить защиту страниц и обеспечить возможность модификации байт в сегменте кода.
P.S. Кстати, я бы и в Windows 98 на всякий случай вызывал VirtualProtect.

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 01.06.2003, 16:37
Отправитель: Bob Johnson


Отвечает vitya

Доброе время суток, Blackman (www.blackman2003.da.ru)!
Боюсь, что в защищенном режиме вам не удастся менять код на лету. Так как он находится в кодовом сегменте, записьв который запрещена на аппаратном уровне.

Ответ отправлен: 02.06.2003, 13:53
Отправитель: vitya


Отвечает Ramzes

Добрый день, Blackman (www.blackman2003.da.ru)!
Я думаю нормально...
Только тебе придется перед записью переделать аттрибуты зашиты страницы, т.к. страницы содержащие код программы имеют аттрибуты защиты PAGE_EXECUTE, т.е только для исполнения. Тебе придется добавить еще и PAGE_READWRITE.

Ответ отправлен: 04.06.2003, 12:37
Отправитель: Ramzes


 Вопрос № 3324

Здравствуйте ,уважаемые эксперты.Не подскажите где можно
скачать работающий не с битыми файлами IDA Pro старше версии
4.01 ,с удовольствием бы купил лицензионную версию программы,
но как говориться много дыр на житейские проблеммы.



Вопрос отправлен: 01.06.2003, 09:26
Отправитель: Yury

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

Отвечает Lynx

Здравствуйте, Yury!
Точно не знаю, но попробуй на Pilorama.com.ru или Pilorama.nm.ru поискать. Там как то одно время был.


Ответ отправлен: 02.06.2003, 15:29
Отправитель: Lynx


Отвечает Дмитрий

Здравствуйте, Yury!
filesearch.ru в поле поиска введи ida, ida4 и тому подобное. Рабочие линки часто прикрываются.

Ответ отправлен: 03.06.2003, 12:57
Отправитель: Дмитрий


Отвечает [MozgC]

http://mera.net.ru/~freeexec/binary/IDA_PRO_Advanced_4.04.exe

Ответ отправлен: 01.06.2003, 12:32
Отправитель: [MozgC]


Отвечает Portnov

Доброе время суток, Yury!
Не буду оригинален. ftp.exetools.com, пароль на www.exetools.com/forum - надо на форуме зарегиться, а потом зайти в раздел announcements and news. На FTP найдете и иду всех версий, и сайс... Одна проблема - сервак вечно перегружен (больше 1000 пользователей не пускает), придется с сотого раза...


Ответ отправлен: 01.06.2003, 17:14
Отправитель: Portnov


 Вопрос № 3325

Здравствуйте, ребята помогите с LPT/
Проблема такова:
Значит выплюнуть в порт байт относительно 378h базового адреса проблем нет, байт вылетает за милую душу.
Но параллельно надо принять сигнал подтверждения принятого байта. Я хотел заэксплуатировать или INT или WAIT,т.е.
Байт ушёл а на вход (допустим) WAIT пришёл сигнал подтверждения и.т.д.
Но поблема что в базовом регистре состояний
0397 нет не каких изменений. Т.Е. нет реакции на сигналы подтверждения, не зависимо от того что подаю в регистре одно и тоже. Пожалуйста помогите разобраться.
С у важением, Алексей.



Вопрос отправлен: 01.06.2003, 10:33
Отправитель: Алёксей (TARANOV_A@RAMBLER.RU)

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

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

Здравствуйте, Алёксей!
Я извиняюсь, но входа WAIT я не знаю. Возможно Вы имели ввиду BUSY. Если это так, то надо иметь виду, что он инвертированный, т.е. при подаче на него сигнала соответствующий бит устанавливается в нуль, а не в единицу.
Было бы интересно посмотреть на программу. На исходник. Так будет легче понять в чем дело.

Ответ отправлен: 01.06.2003, 12:45
Отправитель: Tigran K. Kalaidjian


Отвечает Дмитрий

Доброе время суток, Алёксей!
Что за устройство болтается на LPT? Не во всех устройствах поддерживаются все сигналы от LPT. Я хочу сказать, что для работы LPT порта необходимы только Data, Gnd, Busy и Strob. Остальное - опционально. Возможно твое устройство игнорирует некоторые сигналы. Уточни данный момент, плюс пришли исходник.

Ответ отправлен: 03.06.2003, 13:31
Отправитель: Дмитрий


 Вопрос № 3326

Здравствуйте. Уважаемые эксперты, у меня к вам вопрос по поводу запуска программ, а если точнее, то вся проблемма в выделении памяти. У меня досовская COM программа. Известно, что дос запускаемой программе отдает всю свободную память, поэтому, чтобы из своей программы запустить другую необходимо выделить ей память. Вот не понятно мне, как дос распределяет память: если дос загрузилась и отдала управление моей программе, то разве код этой самой программы не должен быть последним? В следующем сегменте после программы находятся данные. Как с ними быть? Сотрутся ли они при запуске подпрограммы? Перед тем, как урезать память, нужно указать адрес в параграфах откуда начинать. Можно указать следующий сегмент? Если нет, то как быть? Заранее благодарен всем ответившим мне экспертам.



Вопрос отправлен: 01.06.2003, 14:08
Отправитель: a1 (a111_666@mail.ru)

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

Отвечает _vt

Здравствуйте, a1!
Несовсем ясно, что требуется...
В COM-программе данные и код находятся в одном сегменте, и при вызове функции урезания памяти нужно указать этот сегмент и размер кода программы в параграфах. Если проблема в том, как узнать этот размер, почитай 21-й выпуск рассылки по DOS.


Ответ отправлен: 02.06.2003, 21:27
Отправитель: _vt


Отвечает Bob Johnson

Доброе время суток, a1!
> то разве код этой самой программы не должен быть последним?
В общем случае так и есть.
> В следующем сегменте после программы находятся данные
У тебя же com файл, какой следующий сегмент? Все, что у тебя есть (т.е. программа и данные) находятся в одном единственном сегменте.
> Сотрутся ли они при запуске подпрограммы?
Для запуска дочернего процесса (тьфу, как-то по виндовски) тебе необходимо перераспределить память. Делается это с помощью функции 4Ah, а в качестве сегментного адреса (в es) указываешь свой единственный сегмент (т.е. он там уже указан при запуске), в bx указываешь требуемый размер блока в параграфах (1 пар = 16 байт). Если тут ты укажешь меньше, чем у тебя есть на самом деле, то часть данных (или что там у тебя в конце программы? стек?) ты потеряешь. Кстати, со стеком надо быть особенно внимательным, т.к. по умолчанию в com файле он находится в конце сегмента, т.е. может потребоваться его перенести. В общем это выглядит так:
...
org 100h
start:
mov ah, 4Ah
mov bx, offset my_last_used_address_ + 15
shr bx, 4
int 21h
...
end start
Здесь +15 используется для определения частично занятых блоков.

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 01.06.2003, 16:37
Отправитель: Bob Johnson


Отвечает Ayl

Доброе время суток, a1!
DOS выделяет память из свободного пула. На практике может получится так, что после запуска резидентных программ твоя прога окажется где-то в середине памяти, причем и сверху, и снизу будут занятые участки (даже в простейшем случае в верхних адресах памяти находится транзитная часть COMMAND.COM.
Насчет освобождения памяти для COM-программы все очень просто. Во-первых, Она у тебя занимает не больше сегмента. Причем в этом сегменте и код, и данные, и стек. Этот сегмент адресуется через регистр CS (DS и SS при старте приравниваются DS и обычно не изменяются).
Для функции 4ah (изменить размер блока памяти) тебе нужно указать не адрес в параграфах (что это такое, я не понял), а сегментный адрес начала существующего блока и его желаемый размер в параграфах. Т.е. регистры должны быть заполнены так:
AH = 4ah
ES = CS
BX = 4096 (4096 параграфов или 64К памяти).


Ответ отправлен: 02.06.2003, 12:29
Отправитель: Ayl


 Вопрос № 3327

Добрый день ув.Эксперты...

Есть в секции
.data?
inR db 512 dup(?)
потом загоняю туды 333
-ВСЁ Нормально
потом.. не закрывая приложения загоняю туда.... 111
-ВСЁ Нормально
потом.. не закрывая приложения загоняю туда.... 55555
-ВСЁ Нормально
потом.. опять ...не закрывая приложения загоняю туда.... 111
-ВСЁ НЕНормально
там оказывается 11155 !!!
Что сделать.... чтобы в inR находилось то,что надо ...
или может можно как нибудь каждый раз отчищать,т.е. опять загонять
туда ?, эту переменную...?
(не обнулять... а отчищать)
....
Это присвоение происходит в процедуре..
пробывал локальные переменные так...
LOCAL inR[128]:BYTE
...
Вроде в процедурах,если используются локальные переменные, нельзя использовать offset
с этими лок. переменными....
что тогда делать.. если нужно.. следующее:
invoke lstrlen, DATA
mov ecx,eax
mov esi, offset DATA
mov edi, offset INDATA
label1:
lodsb
Спасибо..
PS. В ответах экспертов есть такое поле..."Благодарностей: 0"... как можно сделать 1 ;)
pAcU



Вопрос отправлен: 01.06.2003, 15:03
Отправитель: pAcU (pacu@mail.ru)

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

Отвечает [MozgC]

Ну если все таки хочешь туда вручную загонять символы, то добавь после процедуры добавления строки еще добавления 0 вот и все. Или используй апишную функцию lstrcpy, она автоматически добавит 0 в конце после копирования.

Ответ отправлен: 02.06.2003, 16:28
Отправитель: [MozgC]


Отвечает Lynx

Доброе время суток, pAcU!
>(не обнулять... а отчищать)
Это ещё как??? Что ты подразумеваешь под словом "очищать"??? Делаешь цикл:
mov cx, 512 ;Длина строки
mov si, offset inR ;Смещение строки
mov al, 20h ;Символ, которым заливать
SpaceFill:
mov [si], al
inc si
loop SpaceFill



Ответ отправлен: 02.06.2003, 15:29
Отправитель: Lynx


Отвечает Bob Johnson

Добрый день, pAcU!
Ты со строками работаешь? Конец строки в виндах традиционно обозначается нулем ("0"). Поэтому, если ты хочешь записать, например, "111", то надо реально записывать "111\0", где "\0" обозначает конец строки. Можешь использовать функцию lstrcpy, она все это сделает сама.
> Вроде в процедурах,если используются локальные переменные, нельзя использовать offset с этими лок. переменными....
Можно, только не так - там, где тебе нужен offset надо загружать адрес в регистр с помощью lea и потом уже передавать значение регистра:
lea eax, INDATA
call lstrlen, eax
...
> В ответах экспертов есть такое поле..."Благодарностей: 0"... как можно сделать 1 ;)
Видимо пока никак ...

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 01.06.2003, 16:37
Отправитель: Bob Johnson


Отвечает Дмитрий

Приветствую Вас, pAcU!
Естественно там оказывается 11155. Когда прога записывает строку 55555 в переменную записывается пять байт. А когда записывается строка 111 в переменную записывается три байта, но предыдущая запись так и осталась там! И две пятерки остались неприкосновенными. Так, что перед занесением строки в переменную эту переменную надо предварительно очистить. Скажем обнулить ее в цикле.


Ответ отправлен: 04.06.2003, 05:39
Отправитель: Дмитрий


Отвечает Ayl

Приветствую Вас, pAcU!
>потом.. опять ...не закрывая приложения загоняю туда.... 111
>-ВСЁ НЕНормально
>там оказывается 11155 !!!
А по-моему, все как раз нормально. Ты выделил память для 512 байт.
Сначала загнал туда 333 (насколько я понял, это 3 байта с тройками, а не число 333). Занято 3 первых байта. Потом записал 111, затерев первые 3 байта. Потом записал 55555, затерев первые 5 байтов. Потом записал 111, затерев только 3 первых байта из занятых 5-ти. Вот и получаешь 11155.
Как с этим бороться? Ну либо обнулять всю область перед новой записью (долго и противно), либо записывать доп.информацию. Например, длину строки в первый байт, либо признак конца строки после самой строки.


Ответ отправлен: 02.06.2003, 12:36
Отправитель: Ayl


 Вопрос № 3328

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



Вопрос отправлен: 01.06.2003, 16:26
Отправитель: byzy

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

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

Приветствую Вас, byzy!
Очень подробно на эту тему написано у Р.Журдена(если надо - пишите). Пример программы с комментариями - в приложении

Приложение:

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


Отвечает Bob Johnson

Доброе время суток, byzy!
Самый простой способ добиться звука - функция PlaySound. Она позволяет воспроизводить звуковые файлы, системные звуки или звуки из ресурсов приложения. Последний вариант наиболее приемлем для обычных программ, т.к. не требует никаких дополнительных файлов.
> которая играет простенькую мелодию
Смотри воспроизведение midi файлов.

* EMan1.1: ---===*** Eternal power ***===---


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


Отвечает Broken Sword

Приветствую Вас, byzy!
гимн Советского Союза подойдет?
говори куда слать

Ответ отправлен: 01.06.2003, 19:39
Отправитель: Broken Sword


Отвечает Дмитрий

Добрый день, byzy!
Программирование звуков? Смотря что понимается под программированием. Если вывод звука через звуковую карту, то с помощью ассемблера это вряд ли можно организовать (у меня к примеру Audigy Platinum и его аппаратная реализация я думаю даже в Инете не полностью документирована). А вот обработка звука - это вполне реально. Под обработкой я понимаю преобразование wav в mp3, наложение различных эффектов (Chorus, Reverberation...) и тому подобное. По этому поводу могу порекомендовать книжку Тима Книтцеля "Руководство программиста по работе со звуком". Там все сделано под C++, но алгоритмы ведь можно перевести и на ассемблер. Блин! Где мыло твое? Адрес свой скинь. Есть чуть инфы и примеров. В приложение вставлять не стал. Не войдет :)


Ответ отправлен: 04.06.2003, 05:41
Отправитель: Дмитрий


Отвечает Beeblebrox

Здравствуйте, byzy!
Звук на PC speaker или бластер?

Ответ отправлен: 02.06.2003, 14:20
Отправитель: Beeblebrox


Отвечает Maverick

Доброе время суток, byzy!
Лови про гусей...


Приложение:

Ответ отправлен: 04.06.2003, 15:41
Отправитель: Maverick


 Вопрос № 3329

Уважаемые эксперты!
Вашему вниманию предлагается программа, позволяющая автоматизировать процесс ответа на вопрос читателей, вот ее основные достоинства:

  • Графический интерфейс.
  • Автоматический импорт писем с вопросами.
  • Возможность работы одной программы с несколькими экспертами и несколькими рассылками.
  • Удобное разбиение вопросов по категориям, задаваемым пользователем.
  • Встроенный HTML-просмотрщик вопросов, приложений и ответов.
  • Хранение вопросов (с ответами) в базе данных для быстрого последующего просмотра.
  • Полноценный поиск вопросов.
  • Небольшой редактор ответов с несколько большими возможностями, чем простой plain-text editor.
  • Автоматическая отправка ответов на RusFAQ.
  • Исходные коды программы.

Более подробно с ней можно ознакомиться по адресу:
bobjohnson.nm.ru/EMan/ReadMe.html - там же приведены некоторые скрин-шоты.
скачать же (если кого заинтересовала) ее можно из раздела "Files":
bobjohnson.nm.ru/files.html - исходные коды там же (Borland C++ Builder 6).
Все вопросы, замечания и предложения по поводу этой программы прошу отсылать на мой адрес - bobjohn@newmail.ru.



Вопрос отправлен: 01.06.2003, 16:36
Отправитель: Bob Johnson (BobJohn@NewMail.ru)

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

Отвечает Дмитрий

Приветствую Вас, Bob Johnson!
Одобряем и всеми руками за!

Ответ отправлен: 04.06.2003, 06:04
Отправитель: Дмитрий


 Вопрос № 3330

Приветик всем...
Мне интересно: под ДОСом было int 13h для доступа непосредственно к винту, можно было сектора читать, перезаписывать и т. д.; а под win32 есть нечто анологичное?
Я имею ввиду можно ли под Виндовсом (что-нибудь из Win API) отдельно какой-нибудь сектор прочитать и/или переписать. Мне очень нужно добраться до начальных секторов (которые до разделов)...............................
Заранее благодарен zOmegA.................



Вопрос отправлен: 01.06.2003, 16:40
Отправитель: zOmegA (zOmegA@inbox.ru)

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

Отвечает Bob Johnson

Доброе время суток, zOmegA!
Под Windows NT можно открывать целые логические (и физические) диски как большие файлы - см. CreateFile. Под 98 есть DeviceIoControl.

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 01.06.2003, 21:04
Отправитель: Bob Johnson


Отвечает Илья

Приветствую Вас, zOmegA!
Судя по моим знаниям, таких функций нет и не должно быть. Win вообще не любит когда кто-то что-то делает с аппаратурой. Все это можно и нужно делать драйверу. Хотя win9x и позволяет(с трудом) все это делать, то win на ядре nt - нет. Вывод - если очень нужно, можно писать драйвер. Там через hal можно все это сделать. Исходники чего-то подобного видел на сайте Bob Johnson'а. Можно и самому быстренько сварганить используя Numega SoftIce Driver Suite.
З.Ы. Надеюсь не ввел в заблуждение.

Ответ отправлен: 01.06.2003, 20:38
Отправитель: Илья


Отвечает Дмитрий

Добрый день, zOmegA!
Под виндами какой-нибудь отдельный сектор вряд ли получится прочитать-ЗАПИСАТЬ (под NT вообще проблема будет, шибко она о безопасности беспокоится!). Но есть функции, с помощью которых можно работать с MBR, FAT и т. д. Похоже на работу с базой данных. А так, чтоб посекторно, как в ДОС - нет.

Ответ отправлен: 04.06.2003, 06:03
Отправитель: Дмитрий


 Вопрос № 3331


Вот код , посредствам которого я хочу определить
Есть ли какая-нибудь реакция на то что я подаю сигнал на 10 и 11 ножки
Т.е. Хочу использовать вход INT или BASY для подтверждения приёма
Байта внешним устройством.
Пожалуйста помогите , т.к. регистр 0379 не изменяет своего состояния
Независимо подаю или нет я сигнал на 10 или 11 ножку.
У меня индицируется состояние регистра 0379 всё время таким двоичным числом «00011100»
Заранее благодарю, с уважением ,Алексей.

.Model tiny
.code
org 100h
lpt1 equ 0378h
delay equ 10000
lops equ 1000
start:
xor bx,bx
xor ax,ax
mov dx,lpt1
out dx,ax ; Регистр данных обнуляем и всё светодиоды гаснут
cycle:
xor cx,cx
mov dx,delay ;Задержка в mks.
mov ah,86h
int 15h
mov dx,0379H ; считываем состояние 0379h
in ax,dx
mov dx,lpt1
out dx,ax ;Для наглядности состояние регистра 0379 отправляем в 0378
inc bx
cmp bx,lops ;Кол- во опросов регистра 0379
je quit
jmp cycle
quit:
ret
end start



Вопрос отправлен: 01.06.2003, 16:48
Отправитель: Алёксей

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

Отвечает Knignick

Добрый день, Алёксей!
В каком режиме у тебя работает LPT порт(Centronics/EPP/ECP)? По идее перед посылкой байта ACK(10) должна быть 1(у тебя - 0), а BUSY - 0. Так что попробуй сделать так чтобы вначале твое устройство устанавливало ACK в 1.

Ответ отправлен: 02.06.2003, 00:30
Отправитель: Knignick


 Вопрос № 3333

Привет всем! Пишу в эту категорию, потому что думаю, что местные эксперты по роду своей второстепенной деятельности (я думаю это "исследование" программ, или нет? =)) должны хорошо быть знакомы с упакоыщиками.
Вот и вопрос мой состоит в следующем : Какой упаковщик исполняемых файлов лучше всего сжимает, уточню, не лучше всего защищает от взлома, а именно лучше всего уменьшает размер приложения. Приложения написаны на Borland C++ Builder & Delphi, если это имеет значение =)
Заранее спасибо. Просто не имею возможности качать все упаковщики и проверять на деле, а тут может кто знает.



Вопрос отправлен: 01.06.2003, 17:23
Отправитель: [MozgC]

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

Отвечает Lynx

Здравствуйте, [MozgC]!
Я тут накопал старый выпуск журнала "ХАКЕР" (04.02) и в нем описывается тест упаковщиков. Результаты следущие:
--- Exe (338Kb) ---
NeoLite - 60%
ASPack - 66%
PECompact aPlib - 66%
PECompact JCalg - 60%
--- Dll (199Kb) ---
NeoLite - 55%
ASPack - 57%
PECompact aPlib - 57%
PECompact JCalg - 55%
--- Ocx (338Kb) ---
NeoLite - 0% (Глюки)
ASPack - 10%
PECompact aPlib - 48%
PECompact JCalg - 40%
Вот такие результаты. Но для меня до сих пор остаётся загадкой, почему они не использовали UPX??? Лично я всегда им пользуюсь.

Ответ отправлен: 02.06.2003, 15:30
Отправитель: Lynx


Отвечает Bob Johnson

Добрый день, [MozgC]!
Рекомендую UPX - в его пользу скажу, что он используется Евгением Рошалом в SFX архивах RAR. UPX полностью бесплатен, поддерживает кучу форматов (в том числе dos/com, dos/exe, win32/pe и т.д.). Скачать можно с http://upx.sourceforge.net
Запускать лучше так:
upx --best --force программа.exe
После чего обязательно проверь, чтобы программа работала, т.к. upx, в принципе, не гарантирует, что любая программа будет работать (но ведь работает почти все...)
P.S. Если твое приложение будет работать на компе, где установлен Delphi или Builder той версии, в которой ты его компилировал, то установи в свойствах проекта "Use run-time libraries" и "Use run-time packages", тогда размер его значительно сократится (особенно в builder'е) (но будет требовать библиотеки).

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 01.06.2003, 21:05
Отправитель: Bob Johnson


Отвечает Дмитрий

Доброе время суток, [MozgC]!
Из личного опыта: даже проги, скомпилированные одним компилятором по разному жмуться разными упаковщиками. Видимо степень сжатия сильно зависит от их содержимого.


Ответ отправлен: 04.06.2003, 06:06
Отправитель: Дмитрий


Отвечает Broken Sword

Добрый день, [MozgC]!
я вот непойму только одного момента: если тебе не важен критерий защищенности, почему бы просто не воспользоваться rar-ом или zip-ом

Ответ отправлен: 01.06.2003, 19:39
Отправитель: Broken Sword


Отвечает masquer

Приветствую Вас, [MozgC]!
Насколько я знаю, лучше всего сжимает ASPack.

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


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

Доброе время суток, [MozgC]!
Я понял, что Вам нужно, чтобы файлы оставались исполняемыми, не так ли ?
В этом случае можно использовать PKLITE. Раньше я им ОЧЕНЬ хорошо сжимал 16-битные ЕХЕ-шники. Сейчас, говорят, есть вариант для 32-битных программ. Честно говоря не пробовал, но видел эту версию. Попробовать можно.
P.S. Второстепенная работа программеров - пить пиво =)

Ответ отправлен: 02.06.2003, 17:37
Отправитель: Tigran K. Kalaidjian


 Вопрос № 3334

Доброго времени суток.
Вот наткнулся на проблемму при переходе в защищённый режим. Едиственное отличие от всех примеров это то, что я пытаюсь перейти в него используя model tiny. при выполнении следующих строк компьютер перезагружается:
mov eax,cr0
and eax,1
mov cr0,eax



Вопрос отправлен: 01.06.2003, 19:02
Отправитель: Dark_Lord (Dark_Lord@RusFAQ.ru)

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

Отвечает Ramzes

Добрый день, Dark_Lord!
БЛИН ! ты же обнуляешь регистр CR0, Чего-ж ты еще хотел ? :))
НЕ AND eax, 1 a OR eax, 1


Ответ отправлен: 04.06.2003, 12:30
Отправитель: Ramzes


Отвечает Bob Johnson

Добрый день, Dark_Lord!
Ну да, а почему это ты переходишь в защищенный режим с помощью and? Она оставляет значение самого младшего бита (т.е. как раз PE) неизменным (классный переход!), а остальные - сбрасывает. Надо делать:
mov eax, cr0
or eax, 1
mov cr0, eax

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 01.06.2003, 21:05
Отправитель: Bob Johnson


Отвечает Broken Sword

Добрый день, Dark_Lord!
надеюсь, это ты так думаешь не потому что оно в отладчике перегружается...?
у меня было такое, но проблема была в описании сегментов (причем даже каких то левых, данных) в TASM-е
кстати, какой у тебя проц (модель и фирма) ?

Ответ отправлен: 01.06.2003, 19:39
Отправитель: Broken Sword


Отвечает vitya

Здравствуйте, Dark_Lord!

а ты пробовал
or eax, 1
?

Ответ отправлен: 02.06.2003, 13:26
Отправитель: vitya


 Вопрос № 3335

2Broken_Sword

"я вот непойму только одного момента: если тебе не важен критерий защищенности, почему бы просто не воспользоваться rar-ом или zip-ом"
Мне интересна сама идея того, что файлы остаются исполняемыми + защита от отладки + в некоторых случаях размер уменьшается ООЧЧЧЕННЬ сильно. Совокупность этих свойств засатвляет меня хотеть восмпользоваться именно такими упаковщиками, вместо рара или зипа, однако все-таки решающее значение имел бы размер. Рар же и зип позволяют выполнить только последнее свойство, поэтому....
А мне часто приходится слать экзешники по модему, и если размер получается примерно одинаковый, то почему бы не воспользоваться упаковщиком, у которого в три раза больше преимуществ. Ну и по секрету скажу, там мне просто инетересно.. Так что там с упаковщиками ? кто лучше всех сжимает то ? =)



Вопрос отправлен: 01.06.2003, 20:02
Отправитель: [MozgC] (MozgCnoSpam@avtograd.ru)

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

Отвечает Broken Sword

Здравствуйте, [MozgC]!
ну ASpack использует стандартный алгоритм ZIP, UPX кричит что он круче чем ZIP/GZIP, а как оно на деле - незнаю, много разных версий программ, нужно сидеть и тыкать специально каждую. Тем более EXE-файлы не так избыточны как текстовые, разные они все, бывают сжимаются и в 10-20 раз, а бывают вообще не сожмешь (особенно когда прога на асме писана и избыточность практически нулевая). Незнаю даже что тут сказать толкового можно

Ответ отправлен: 01.06.2003, 21:48
Отправитель: Broken Sword


Отвечает masquer

Добрый день, [MozgC]!
Broken Sword тебе рпавильно сказал. Толку от сжимания нет, практически. WinRar 3.0 жмет лучше чем аспак, а защита от отладки - не смешите меня, аспак только ребенок не снимет, туториалов и анпакеров - море.

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


Отвечает Bob Johnson

Приветствую Вас, [MozgC]!
Позволю себе полностью не согласиться с Broken Sword:
> особенно когда прога на асме писана и избыточность практически нулевая
На чем ты пишешь программу практически не влияет на ее степень сжатия (а уж если и влияет, то асмовские проги сжимаются лучше!). Почему? Да потому что сам по себе код сжимается практически одинаково, не важно, на чем ты ее пишешь (а избыточность в нем всегда есть, например, call и jmp - чаще всего применяются в 32-битном варианте, т.е. с 4-мя байтами смещения, из которых, опять-таки чаще всего 2 равны нулю или 0FFh, т.к. переход ближе 32768). Адреса всех почти переменных начинаются с 0040h или 0041h (особенно в асмовских прогах, где код небольшой) и т.д. Ну а теперь остаются прежде всего данные программы (инициализируемые), ресурсы (которые не зависят от языка программирования) и таблицы импорта/экспорта. (а это практически текст).
Вот реальный пример - я писал на асме игру сапер (вроде виндовской, но получше), так ее exe файл имеет размер 30208 байт без всех ресурсов и с выравниванием секций 512 байт (т.е. меньше нельзя без сжатия). После UPX ее размер становится 6656 байт! (22,03% от оригинальной!) А что у нас было? Только код, данные, таблицы импорта и все...
Полный размер игры (с ресурсами, в которых есть картинки, манифест (ну он не сжимается upx-ом :) и звуки - 206336 байт, после сжатия тем же upx - 157696, т.е. относительно другого содержимого лучше всего сжимаются код и данные! Ну а для сравнения winrar сделал из этого файла 141302 байт, а из безресурсного - 5951. Но ведь upx-то делает как-бы SFX файлы! А SFX от winrar будет на 50 кб больше занимать...
Ну и в конце мне самому стало интересно, как же сжимается именно код - я выделил около 8 кб только кода из программы и сжал раром - получил 3392 байта, т.е. upx дал бы где-то 50% - разве здесь нет избыточности?

* EMan1.1: ---===*** Eternal power ***===---


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


 Вопрос № 3336

Здравствуйте, подскажите, пожалуйста, какое сообщение посылается при появлении подсказки на tray icon. Т.е. можно ли программно узнать, что на иконке появилась подсказка. Заранее спасибо.



Вопрос отправлен: 01.06.2003, 21:06
Отправитель: Евгений (other@mail.kz)

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

Отвечает Ramzes

Здравствуйте, Евгений!
В MSDN написано следующее
If a user passes the mouse pointer over an icon with which a balloon ToolTip is associated, the version 5.0 Shell sends the following messages.
NIN_BALLOONSHOW - Sent when the balloon is shown (balloons are queued).
NIN_BALLOONHIDE - Sent when the balloon disappears—when the icon is deleted, for example. This message is not sent if the balloon is dismissed because of a timeout or mouse click by the user.
NIN_BALLOONTIMEOUT - Sent when the balloon is dismissed because of a timeout.
NIN_BALLOONUSERCLICK - Sent when the balloon is dismissed because the user clicked the mouse.


Ответ отправлен: 04.06.2003, 12:28
Отправитель: Ramzes


Отвечает Bob Johnson

Приветствую Вас, Евгений!
Это возможно для Win200 и новее для подсказок типа "Balloon". В этой ситуации shell посылает следующие сообщения:
NIN_BALLOONSHOW - Sent when the balloon is shown (balloons are queued).
NIN_BALLOONHIDE - Sent when the balloon disappears-when the icon is deleted, for example. This message is not sent if the balloon is dismissed because of a timeout or mouse click by the user.
NIN_BALLOONTIMEOUT - Sent when the balloon is dismissed because of a timeout.
NIN_BALLOONUSERCLICK - Sent when the balloon is dismissed because the user clicked the mouse.
Если хочешь менять текст подсказки, то делай это сам время от времени, например, по таймеру.

* EMan1.1: ---===*** Eternal power ***===---


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


 Вопрос № 3337

Hi, menЫ !
Не подскажете с какими функциями Api надо работать, чтобы преобразовать число в строку. (если можно пример)



Вопрос отправлен: 01.06.2003, 21:49
Отправитель: D.M. (_dm@list.ru)

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

Отвечает Ramzes

Доброе время суток, D.M.!
char *_itoa( int value, char *string, int radix );
преобразовывает данное число в строку по в заданной системе исчисления (radix)

Ответ отправлен: 04.06.2003, 12:22
Отправитель: Ramzes


Отвечает Lynx

Здравствуйте, D.M.!
Чёто в последнее время участились подобные вопросы. Таких АПИ нет. Поэтому, всё, что ты хочешь придётся преобразовать самому (т.е. Код самому писать).


Ответ отправлен: 02.06.2003, 15:29
Отправитель: Lynx


Отвечает [MozgC]

Это делается с помощью wsprintf.
.const
formatDec db "%u", 0
.code
invoke wsprintf, addr buffer, addr formatDec, 16
;получишь "16"
Если нужна реализация этой функции на асме поищи в "Assembly Programming Journal". Вроде там было.
ну и в masm32 тоже есть.
dwtoa конвертирует 2х байтовое число в ASCII-строку
например
local buffer[16]:CHAR
invoke dwtoa, 123, addr buffer

Ответ отправлен: 01.06.2003, 22:20
Отправитель: [MozgC]


Отвечает Дмитрий

Доброе время суток, D.M.!
Если числа десятичные целые, то лучше не использовать API, а самому написать процедурку перевода (где-то в рассылке уже был примерчик).


Ответ отправлен: 04.06.2003, 06:48
Отправитель: Дмитрий


Отвечает Bob Johnson

Приветствую Вас, D.M.!

str db 16 dup (?)
frm db "%i", 0
num dd ?
...
extern _wsprintfA : proc
call _wsprintfA, offset str, offset frm, [num]
add esp, 12

А вообще у меня на странице этот вопрос рассматривается в разделе FAQ.

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 02.06.2003, 02:21
Отправитель: Bob Johnson


Отвечает masquer

*printf

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


Отвечает Hayk

Доброе время суток, D.M.!
_itoa, _ltoa, _gcvt

Ответ отправлен: 02.06.2003, 12:34
Отправитель: Hayk


 Вопрос № 3338

Здравствуйте эксперты!
Подскажите пожалуйста простой и надежный способ блокировки Ctrl+Alt+Del в Windows 9x. Спасибо!



Вопрос отправлен: 01.06.2003, 22:10
Отправитель: Alex

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

Отвечает Илья

Добрый день, Alex!
Как отключить срабатывание комбинации Ctrl+Alt+Del?
Для отключения срабатывания комбинации клавиш Ctrl+Alt+Del (а также Alt+Tab) напишите следующий код:
int Action = 1;
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, 1, (void*) &Action, 0);
Источник в приложении.
Данный код работает только в WIndows 9x/Me.

Приложение:

Ответ отправлен: 01.06.2003, 22:41
Отправитель: Илья


Отвечает Lynx

Здравствуйте, Alex!
Зачем тебе блокировать Alt+Ctrl+Del??? Есть предположение, что таким образом ты пытаешься скрыть список процессов, что бы твой Троян (ну или что нибудь другое) случайно не попалили. Тогда посоветую тебе просто использовать RegisterServiceProcess.


Ответ отправлен: 02.06.2003, 15:29
Отправитель: Lynx


Отвечает Portnov

Приветствую Вас, Alex!
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0); - выключает Ctrl-Alt-Del, Alt-Tab,Win,Win-Tab
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0); - включает обратно
А можно vxd писать....


Ответ отправлен: 02.06.2003, 15:54
Отправитель: Portnov


Отвечает [MozgC]

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, &dummy, 0);

Ответ отправлен: 01.06.2003, 22:30
Отправитель: [MozgC]


Отвечает Дмитрий

Доброе время суток, Alex!
А теперь все хором! Это невозможно! Если только не переписать кусочек ОС заново.


Ответ отправлен: 04.06.2003, 06:49
Отправитель: Дмитрий


Отвечает Bob Johnson

Доброе время суток, Alex!
Драйвер, который будет обрабатывать 9-е прерывание.

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 02.06.2003, 02:21
Отправитель: Bob Johnson


Отвечает Ramzes

Здравствуйте, Alex!
Можно перехватить прерывание от клавиатуры...
По идее должно сработать...

Ответ отправлен: 02.06.2003, 14:08
Отправитель: Ramzes


 Вопрос № 3339

Приветик...
Хочу шутливую рожку написать. Чтот-то типа: вы буковку 'W' нажимаете, а она перелавливает, исправляет и на выводится какая-нибудь абраКадабра. Но оказалось не так просто...
Хуук написал, пропихнул в библиотеку. Функция исправляет wParam и передает ее в CallNextHookEx. Я думал, что это изменит wParam для всех приложений получивших сообщение после моего хука, но....
Подскажите, плеазе.



Вопрос отправлен: 01.06.2003, 23:13
Отправитель: zOmegA (zOmegA@inbox.ru)

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

Отвечает Bob Johnson

Доброе время суток, zOmegA!
Какой хук-то? Я делал это в Windows 98 с помощью хука WH_GETMESSAGE и это работало. Проблемы были только в том, что некоторые проги нормально работают с WM_CHAR, а некоторые (особенно КрУтЫе) - с WM_KEYUP и WM_KEYDOWN. А вот тут возникает проблема языка и всего такого. Я так это и не доделал.
У меня, кстати, была идея еще интересней - я хотел написать "русификатор" - т.е. ты нажимаешь английскую "А", а в программу попадает русская... Знаешь как помагает программы писать? Я когда-то давно сделал такую штуку под дос, принес в институт, установил, потом парень один стал писать прогу в паскале (а паскаль уже умел синтаксис подсвечевать) - пишет и все удивляется, почему она у него вся желтая (цветом)... В общем компилироваться не стала (пишет типа program not found или что-то в этом духе). Так ему препод за другой компьютер сесть посоветовал (а там программы моей не было), но парень догадался с собой на дискете текст принести, который набрал. В общем было весело...

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 02.06.2003, 02:21
Отправитель: Bob Johnson


Отвечает masquer

Доброе время суток, zOmegA!
Исходник в студию, пожалуйста.

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


 Вопрос № 3340

Hi! Если не трудно киньте мне плиз доки или(и) ссылки на доки о процессе загрузки компа (желательно поподробнее). Заранее сэнкс.



Вопрос отправлен: 02.06.2003, 00:35
Отправитель: Псих

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

Отвечает Дмитрий

Доброе время суток, Псих!
Можно с помощью Sourcer'а BIOS расковырять. Очень много интересного!


Ответ отправлен: 04.06.2003, 07:16
Отправитель: Дмитрий



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (36)
C / C++ (29)
Perl (5)
Builder / Delphi (17)
Pascal (29)
Basic / VBA (11)
Java / JavaScript (11)
PHP (7)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (31)
"Железо" (26)
Поиск информации (14)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (8)
Юристу
Гражданское право (5)
Семейное право (2)
Трудовое право (3)
КоАП (3)

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




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


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


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

В избранное