Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 589
от 11.07.2003, 11:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3682 Отправлено ответов: 10791 Активность: 293.0 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152 URL: Программирование [Подробней >>] |
Hubba Статус: Доверительный Общий рейтинг: 145.28 [Подробней >>] |
Евгений Иванов Статус: Доверительный Общий рейтинг: 128.57 [Подробней >>] |
Hangatyr Статус: Опытный Общий рейтинг: 114.13 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 107.85 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 121.18 URL: Методы оптимизации работы ПК [Подробней >>] |
Zedr0n Статус: Доверительный Общий рейтинг: 107.69 [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 107.73 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3645. Добрый день, коллеги. Я хочу написать программу, которая будет протоколировать все загрузки .dll-биб... (ответов: 3)
Вопрос № 3646. Ай-ай-ай.. Ну зачем обманывать. Конечно, вы свиньи (ну, ладно, пусть будет хрюшки), но не обманщики ... (ответов: 3)
Вопрос № 3647. Не, ну я так не играю - писал, понимаешь, весь вечер прогу к вопросу 3598 от Zensora, отправил, а ту... (ответов: 2)
Вопрос № 3649. Здраствуйте уважаемые эксперты! есть диалоговое окно созданное с помощью DialogBoxParam какие есть с... (ответов: 3)
Вопрос № 3650. Здравствуйте, многоуважаемые Эксперты! Я хотел бы у вас проконсультироваться по одному вопросу - чит... (ответов: 3)
Вопрос № 3651. Приветствую ещё раз, эксперты. Огромное спасибо Бобу Джонсону за развёрнутый ответ на предыдущей воп... (ответов: 1)
Вопрос № 3652. Привет всем как програмировать Vesa 2.0 1024x768 32bit знаю что функция 4F09h... (ответов: 3)
Вопрос № 3653. Привет все Для RegisterHotKey нужен хэндл окна, так? А как получить этот самый хендл? GetActiveWind... (ответов: 4)
Вопрос № 3654. Приветствую вас, Коллеги. Как получить отклик от модема после посылки команды (например, ATI0) коман... (ответов: 3)
Вопросов: 9, ответов: 25
Вопрос № 3645 |
Добрый день, коллеги.
Я хочу написать программу, которая будет протоколировать все загрузки .dll-библиотек.
Я предполагаю, мне необходимо сделать перехват функций LoadLibraryA и LoadLibraryW.
Не подскажите ли, как это можно осуществить.
Так как для платформ Win9x и WinNT способы могут различатся, меня интересуют методики решения и в том, и в другом случае.
P.S.
Хотелось бы услышать развёрнутый ответ, а не "читай MSDN" - уже читал...
А если кто-то из уважаемых экспертов не удержится и скажет-таки "RTFM", пусть приведёт ссылочку на этот самый FM :)
Вопрос отправлен: 06.07.2003, 11:28
Отправитель: Даниил
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Даниил!
> пусть приведёт ссылочку на этот самый FM
По твоему вопросу ни FM, ни просто М нет и быть не может - т.к. manual - это руководство пользователя, т.е. официальное, от фирмы-производителя, а перехват апи что-вот не приветствуется MS (вот странно...).
В общем ситуация такая:
9х: все системные библиотеки находятся в верхней части памяти, куда запись запрещена. При этом эта область памяти одна на все процессы системы, что очень хорошо в твоей ситуации - изменил один раз и в одном месте и все программы будут использовать уже твою функцию. Чтобы изменить данные в этой области можно воспользоваться драйвером, дескриптор сегмента данных в котором позволяет изменять эту область. Другой вариант - перейти на нулевое кольцо (например, как в CIH), загрузить в ds 30h (это стандартный сегмент данных для vxd, но загрузить его на 3-м кольце нельзя), изменить все, что тебе нужно и вернуться обратно.
Теперь о том, как изменять - берешь, например, w32dasm, дизассемблируешь библиотеку kernel32.dll и смотришь, с чего начинается код требуемых функций (кстати, ты забыл еще две с суффиксом "Ex"). Далее определяешь, сколько команд попадают в первые 6 байт и переписываешь их в свою прогу. В исходное место ставишь push xxx ret (это и есть 6 байт, а ххх - это адрес твоего обработчика функции). Если будешь писать драйвер, то имей ввиду, что код функции, которую ты запатчил хоть и будет находиться внутри драйвера, но вызываться будет с 3-м уровнем привелегий! Ну и последнее - для вызова оригинальной функции тебе необходимо выполнить вот те команды, которые ты переписал из оригинального кода, после чего передать управление на следующую команду, например:
push offset ret_addr
_original_commands_
jmp dword ptr [old_func]
ret_addr:
...
В НТ такая штука не пройдет - но там можно патчить соседние процессы, если есть на то права (системные процессы патчить не удастся) - для этого делаешь снапшот модулей выбранного процесса (toolhelp32), находишь среди них kernel32.dll, а главное - его image base, т.е. адрес, по которому он загружен в том процессе (в теории он всегда по одинаковому адресу, но для 100% уверенности лучше сделать так), затем определяешь адрес выбранной тобой функции в этом процессе (я это делал как адрес функции в моем процессе минус image base модуля в моем процессе (т.е. смещение функции от начала модуля) плюс image base модуля в том процессе). Теперь меняешь защиту страниц на read+write+exec (VirtualProtectEx) и пишешь туда свой код (WriteProcessMemory). Если нужна дополнительная память - можешь ее получить с помощью VirtualAllocEx.
Таким образом это вполне возможно, но для одного процесса (либо для каждого отдельно).
Еще есть такой вариант - пишешь dll, которую называешь kernel32.dll, в ней делаешь все функции обычной kernel32.dll как wrapper на скажем kernel32_old.dll (а так ты переименовываешь стандартную), кроме тех, которые будешь патчить (в них пишешь нужный тебе код) и подставляешь ее в систему. Тут недостаток - тебе придется делать по одной dll на каждую версию виндов, и как-то автоматизировать процесс получения экспортируемых функций и создание wrap'ов.
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 06.07.2003, 17:50
Отправитель: Bob Johnson
Отвечает Hubba
Доброе время суток, Даниил!
Ответ отправлен: 07.07.2003, 14:50
Отправитель: Hubba
Отвечает Евгений Иванов
Добрый день, Даниил!
Думаю, HOOK (ловушку) надо делать на подпрограммы:
A hook is a point in the MicrosoftR WindowsR message-handling mechanism
where an application can install a subroutine to monitor the message
traffic in the system and process certain types of messages before they
reach the target window procedure.
HHOOK SetWindowsHookEx(
int idHook, // type of hook to install
HOOKPROC hkprc, // address of hook procedure
HINSTANCE hMod, // handle of application instance
DWORD dwThreadID // identity of thread to install hook for
);
Ответ отправлен: 06.07.2003, 17:24
Отправитель: Евгений Иванов
Вопрос № 3646 |
Ай-ай-ай.. Ну зачем обманывать. Конечно, вы свиньи (ну, ладно, пусть будет хрюшки), но не обманщики же. На письма я отвечаю. Правда, на Тигранчика не ответила, но и он тоже должен понимать, что приличная женщина на такие приглашения не отвечает.
> ...девушки ассемблером...
Ну, в принципе, верно, конечно. Но бывают исключения. Я же не зря интересовалась SGWW. Почитайте их журнальчики - разве там нет девушек? И LovinGod симпатяга.. А вспомнить Киевское Фидо.. И-эээ-хх...
> А вдруг это я сам???
Да нет.. До Овода нам с тобой еще далеко, если, конечно, здесь кто-нибудь читал "Овода". А то у вас, наверное, как у Захарова: "Мне едва хватает времени на специальную литературу" ;)))
> ...книгу издать...
Умная мысль. Как закончу с вами регулироваться, обязательно подумаю.
> ...вполне устраивает вариант...
Отвечаю абсолютно серьезно - мне совершенно начихать, отвечаете вы в рассылку на 10тыс подписчиков, либо просто мне на ящик. Мне просто смешно, что вы обвиняете меня в спаме в рассылке, когда вы сами же этот спам и создаете. Другое дело - ваши ящики. Вы не можете поставить фильтр именно на мои вопросы, и не можете заставить меня заткнуться, хотя большинство личных писем пришло именно с такой просьбой (на большинство я и ответила). Но я думаю, что 8Кб моего спама не слишком для вас будут обременительны, потому что, судя по последним 140 выпускам ассемблерной рассылки, у вас там такой бред в ящиках, что куда уж мне. Калашников наступил на все те же извечные психологические грабли: как найти золотую середину между спамом и полезной информацией в открытом сообществе. В Фидо это решалось набором идиотских правил, в других рассылках модераторами, Калашников же возложил ответственность за появление спама на вас. Вот мне и интересно наблюдать, как вы с ней справляетесь. Одни на меня уже плюнули, другие тихо матюкаются, но все же упрямо не отвечают. Остались только ты Бобушка, и Тигранчик. И что с Вами делать, ума не приложу... Сходить с Вами обоими в кафе, что-ли..
> Нам же не платят за...
Ну, ты Тигранчик, даешь. А ты требуй с Калашникова по бутылке водки за каждый ответ. помню, когда-то ваш небезызвестный Валик пытался Калашникову пиво через милицию передать. Ты у него поконсультируйся..
Вопрос отправлен: 06.07.2003, 11:22
Отправитель: Наталья Березовец (stalmk@bk.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Hubba
Добрый день, Наталья Березовец!
Ответ отправлен: 07.07.2003, 14:50
Отправитель: Hubba
Отвечает Hangatyr
Доброе время суток, Наталья Березовец!
>Почитайте их журнальчики - разве там нет девушек?
Нет.
>Но бывают исключения.
Что-то верится с трудом.
>Если, конечно, здесь кто-нибудь читал "Овода"
Ой-ой-ой... Какого вы о нас мнения-то. Представьте себе такие люди имеются. Но позвольте спросить, причем же здесь "Овод"?
>И LovinGod симпатяга
Давно общались?
>Но я думаю, что 8Кб моего спама не слишком для вас будут обременительны
Очнитесь, девушка (или нет?), давно уж за 30 K перевалило...
>Как закончу с вами регулироваться, обязательно подумаю
Обязательно подумай, лучше начать прямо сейчас.
>как найти золотую середину между спамом и полезной информацией в открытом сообществе.
Нет никакой золотой середины. И быть не может, даже в принципе...
>Вот мне и интересно наблюдать, как вы с ней справляетесь.
А зачем с ней справляться-то? По-моему, это никого из подписчиков сильно не задевает. Получать "ответ" от придурка типа этой хубы дело одно, и с этим надо бы бороться, а вот читать то, что вы пишете и что вам отвечают - совсем другое...
И вот еще, почему вас интересуют именно SMF и Stealth?
Ответ отправлен: 06.07.2003, 19:06
Отправитель: Hangatyr
Отвечает Bob Johnson
Здравствуйте, Наталья Березовец!
> Правда, на Тигранчика не ответила, но и он тоже должен понимать, что приличная женщина на такие приглашения не отвечает.
Вот что-то мне кажется, что никакого приглашения там и не было... (да и разве можно говорить о приличии после просьбы об изнасиловании ящика?).
> Да нет.. До Овода нам с тобой еще далеко, если, конечно, здесь кто-нибудь читал "Овода"
К сожалению нет. Я вообще редко книги читаю - еще в школе все время получал "1" по литературе, причем любые (и "специальные"). Но "Да нет" еще ничего не доказывает...
> мне совершенно начихать, отвечаете вы в рассылку на 10тыс подписчиков, либо
Просто не верю. Если бы это было так, то ты могла бы: первое - отправлять персональный вопрос; второе - писать письма сама (я помню адреса тебе тут все оставили). Но удовольствие-то от этого будет не то...
> И что с Вами делать, ума не приложу... Сходить с Вами обоими в кафе, что-ли..
Ага, на катере мы уже покатались...
> А ты требуй с Калашникова по бутылке водки за каждый ответ.
А он тут причем? Это с тебя тогда уж надо требовать :)
> Конечно, вы свиньи (ну, ладно, пусть будет хрюшки)
А раз так, то что в нас тебя так привлекает?
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 06.07.2003, 17:49
Отправитель: Bob Johnson
Вопрос № 3647 |
Не, ну я так не играю - писал, понимаешь, весь вечер прогу к вопросу 3598 от Zensora, отправил, а тут оказывается, что оно не дошло... Так что шлю прогу ещё раз. Отступы потерялись, но скопируйте куда-нибудь, всё будет нормально. Всё должно быть понятно, ибо есть комментарии, но если будут вопросы, то пишите на kalaidjian@pochtamt.ru - с удовольствием отвечу. Вообще полезно изучать работу с BOOT-сектором на примере написания вирусов. Туториалы на эту тему есть. Пишите.
P.S. Рассылка с 1-го июля не приходит... Непорядок.
Приложение:
Вопрос отправлен: 06.07.2003, 12:41
Отправитель: Tigran Kalaidjian (kalaidjian@pochtamt.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Hubba
Добрый день, Tigran Kalaidjian!
Ответ отправлен: 07.07.2003, 14:50
Отправитель: Hubba
Отвечает Bob Johnson
Добрый день, Tigran Kalaidjian!
Ну раз еще никто не ответил...
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 06.07.2003, 17:49
Отправитель: Bob Johnson
Вопрос № 3649 |
Здраствуйте уважаемые эксперты!
есть диалоговое окно созданное с помощью DialogBoxParam
какие есть существующие способы сделать так, чтобы когда окно находится в состоянии MINIMIZED с помощью горячей клавиши (например F7) можно было выполнить какие-либо действия?
Заранее благодарен. Опишите пожалуйста поподробнее
Вопрос отправлен: 06.07.2003, 16:27
Отправитель: ?
[Следующий вопрос >>] [Список вопросов]
Отвечает Hubba
Приветствую Вас, ?!
Ответ отправлен: 07.07.2003, 14:50
Отправитель: Hubba
Отвечает Bob Johnson
Приветствую Вас, ?!
1. RegisterHotKey.
2. Хук на WH_KEYBOARD или аналогичный.
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 06.07.2003, 23:46
Отправитель: Bob Johnson
Отвечает Gibbel
Доброе время суток, ?!
Копай MSDN в сторону RegisterHotKey() / UnregisterHotKey() / WM_HOTKEY
Ответ отправлен: 07.07.2003, 11:29
Отправитель: Gibbel
Вопрос № 3650 |
Здравствуйте, многоуважаемые Эксперты!
Я хотел бы у вас проконсультироваться по одному вопросу - читаю туториалы Iczelion'а, дошел до места где описываются способы использования диалогового окна в качестве главного, так вот хочу узнать как можно окну созданному с помощью DialogBoxParam присвоить иконку (ту, которая в системном меню)? Это задается в ресурсах или еще как нибудь? Извините за беспокойство.
Вопрос отправлен: 06.07.2003, 18:29
Отправитель: Alex_osipov (alex_osipov@bk.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Приветствую Вас, Alex_osipov!
Попробуй эту функцию с GCL_HICON:
Приложение:
Ответ отправлен: 06.07.2003, 23:48
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Доброе время суток, Alex_osipov!
Послать окну сообщение WM_SETICON.
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 06.07.2003, 23:46
Отправитель: Bob Johnson
Отвечает Hangatyr
Добрый день, Alex_osipov!
Отправь сообщение WM_SETICON c wParam = 1/0 в зависимости от того, какую иконку хочешь сопоставить окну и lParam, равным хэндлу иконки (т.е. надо ее предварительно загрузить).
Приложение:
Ответ отправлен: 06.07.2003, 18:44
Отправитель: Hangatyr
Вопрос № 3651 |
Приветствую ещё раз, эксперты.
Огромное спасибо Бобу Джонсону за развёрнутый ответ на предыдущей вопрос.
Вот новый вопрос.
Хочу перехватывать все входящие и исходящие IP-пакеты с моего компутера и либо сохранять их на диск, либо отображать на экране.
Каким образом это лучше сделать.
Оффтопик: если существуют уже готовые подобные программки,
то ткните носом. Попробывал несколько снифферов, но все они для перехвата чужих пакетови по дляEthernet, а мне нужну только свои пакеты, идущие по модему.
Заранее спасибо.
Вопрос отправлен: 06.07.2003, 19:15
Отправитель: Даниил
[Следующий вопрос >>] [Список вопросов]
Отвечает Hubba
Приветствую Вас, Даниил!
Ответ отправлен: 07.07.2003, 14:49
Отправитель: Hubba
Вопрос № 3652 |
Привет всем как програмировать Vesa 2.0 1024x768 32bit
знаю что функция 4F09h
Вопрос отправлен: 07.07.2003, 00:35
Отправитель: Ri-Jenea (Ri-Jenea@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Ri-Jenea!
Вот описание из Ральфа Брауна:
INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
AX = 4F09h
BL = subfunction
00h set (primary) palette
01h get (primary) palette
02h set secondary palette data
03h get secondary palette data
80h set palette during vertical retrace
CX = number of entries to change
DX = starting palette index
ES:DI -> palette buffer, array of DAC entries (see #00086)
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
SeeAlso: AX=4F0Ah,AX=D000h"S3VBE"
Format of VESA VBE palette entry:
Offset Size Description (Table 00086)
00h BYTE red
01h BYTE green
02h BYTE blue
03h BYTE alpha or alignment byte
Ответ отправлен: 07.07.2003, 20:28
Отправитель: Tigran K. Kalaidjian
Отвечает Hubba
Здравствуйте, Ri-Jenea!
Ответ отправлен: 07.07.2003, 14:49
Отправитель: Hubba
Отвечает Zedr0n
Здравствуйте, Ri-Jenea!
Привожу полный список доступных режимов 1024*768:
104h - 1024*768 16(4 bit)
105h - 1024*768 256(8 bit)
116h - 1024*768 32K(15 bit)
117h - 1024*768 64K(16 bit)
118h - 1024*768 16M
Функция 4F09h никакого отношения к этому режиму не имеет.
Она позволяет изменять палитру. Читай RBIL.
Для установки режима используется функция 4F02h.
Насчет самого вопроса. Во-первых, программировать можно
с использованием LFB, тогда все точно так же как в
стандартном 320*200, так как тогда вся видеопамять
представлена непрерывным блоком. Либо, если не использовать
LFB(который, кстати, можно использовать не на всех
видеокартах), то у Вас есть окна по 64K(максимальный размер
сегмента в DOS'е), между которыми надо переключаться, чтобы
получить доступ к определенной области видеопамяти. В
общем, это обширная тема, и я советую почитать
специализированные книги.
Ответ отправлен: 08.07.2003, 13:26
Отправитель: Zedr0n
Вопрос № 3653 |
Привет все
Для RegisterHotKey нужен хэндл окна, так?
А как получить этот самый хендл? GetActiveWindow в DIALOG_INIT еще возвращает 0, а когда оно возвратит реальное значение - отловить невозможно.
какие есть способы получить хендл окна, которого по сути еще нет? (в сайсе по hwnd уже в DIALOG_INIT есть окно и хэндл, а GetActiveWindow возвращает 0)
Вопрос отправлен: 07.07.2003, 11:20
Отправитель: ?
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, ?!
Когда у тебя вызывается оконная процедура (например, на WM_INITDIALOG), то что у тебя передается ей первым параметром? Именно хэндл твоего окна. GetActiveWindow не может тебе ее вернуть, потому что еще не закончена инициализация. Используй его, потому что других способов в данной ситуации нет (функция CreateDialog еще не вернулась и не возвратила хэндл).
* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---
Ответ отправлен: 07.07.2003, 17:02
Отправитель: Bob Johnson
Отвечает Zedr0n
Здравствуйте, ?!
Насколько я понимаю, разговор идет о Dialog Box? Вспомним
определение DlgProc:
INT_PTR CALLBACK DialogProc(
HWND hwndDlg, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
Вот hwndDlg и есть необходмый хэндл окна. Он находится
в стэке, то есть можно спокойно использовать. Проблем
никаких нет. Удачи!
Ответ отправлен: 08.07.2003, 13:36
Отправитель: Zedr0n
Отвечает Евгений Иванов
Доброе время суток, ?!
В обработчике WM_INITDIALOG номер (hwnd) окна передаётся в оконный обработчик!
Его и используй!:
BOOL CALLBACK DialogProc(
HWND hwndDlg, // handle of dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
Ответ отправлен: 07.07.2003, 20:55
Отправитель: Евгений Иванов
Отвечает Gibbel
Добрый день, ?!
В функции окна (диалога) первый параметр - хэндл окна.
Ответ отправлен: 07.07.2003, 14:47
Отправитель: Gibbel
Вопрос № 3654 |
Приветствую вас, Коллеги.
Как получить отклик от модема после посылки команды (например, ATI0) команды?
Вопрос отправлен: 07.07.2003, 11:33
Отправитель: URiS (urisff@inbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Beeblebrox
Здравствуйте, URiS!
Так же, как и послать команду. То есть, если ты набрал ее в терминале, то - увидеть глазами
Ответ отправлен: 07.07.2003, 11:50
Отправитель: Beeblebrox
Отвечает Hubba
Добрый день, URiS!
Ответ отправлен: 07.07.2003, 14:49
Отправитель: Hubba
Отвечает Tigran K. Kalaidjian
Здравствуйте, URiS!
Я, в свое время, делал так: открываем файл "СOM3"(ну или где у Вас модем висит), пишем в него команду(например "AT"),закрываем файл, ждем некоторое время(зависит от модема), затем открываем его же для чтения, читаем отклик модема. Вот и все!
Пример программы на Паскале в приложении. Работает чуток глюкаво, но всё же работает =)
Приложение:
Ответ отправлен: 10.07.2003, 14:21
Отправитель: Tigran K. Kalaidjian
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (37) C / C++ (23) Perl (4) Builder / Delphi (17) Pascal (24) Basic / VBA (8) Java / JavaScript (10) PHP (8) MySQL / MSSQL (7) Криптография (5) WinAPI (7) |
Пользователю Windows 95/98/Me (30) Windows NT/2000/XP (25) "Железо" (22) Поиск информации (15) |
Администратору Windows NT/2000/XP (14) Linux / Unix (5) |
Юристу Гражданское право (9) Семейное право (4) Трудовое право (8) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||