Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сканирование портов, клавиатура 
:(
    Опции темы
S.A.P.
Дата 24.9.2004, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Народ, нужна помощь. Можно ли как нибудь прочитать состояние порта клавиатуры под виндой? Короче надо в один раз снять состояние клавиатуры на низком уровне без хуков и сообщений.
Пробовал через 96, 60, 64 порты не получается sad.gif .



Или в винде вобще нельзя?
PM MAIL   Вверх
shedon
Дата 24.9.2004, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 1
Всего: 11



К портам обращатся напрямыю приложениям user-mode нельзя, можно, написать фильтр на драйвер клавы, и получить доступ через него, а можно использовать недокументированные функции ядра
void Ke386SetIoAccessMap(int, IOPM *);
void Ke386QueryIoAccessMap(int, IOPM *);
void Ke386IoSetAccessProcess(PEPROCESS, int);
которые могут установить разрешение для твоего приложения, напрямую обращатся к портам, использование этих функций продемонстрировано в драйвере WinIO


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 24.9.2004, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



А можно пример, желательно на C++?
PM MAIL   Вверх
shedon
Дата 24.9.2004, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 1
Всего: 11



пример чего, драйвера ?


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 24.9.2004, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Почему драйвера? Я так понял, что используя вышеприведенные недокументированные функции можно разрешить приложению прямой доступ к портам.

Или приложению вобще нельзя? withstupid.gif
PM MAIL   Вверх
shedon
Дата 24.9.2004, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 1
Всего: 11



Цитата(Perchilla @ 24.9.2004, 18:56)
Почему драйвера? Я так понял, что используя вышеприведенные недокументированные функции можно разрешить приложению прямой доступ к портам.

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


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 24.9.2004, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Ясно.
Могу ли я как нибудь использовать существующие дрова для прямого доступа к клавиатуре?
PM MAIL   Вверх
shedon
Дата 24.9.2004, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 1
Всего: 11



Да я же сказал можешь использовать драйвер WinIO, он идёт вместе с сырцами, скачать можно тут http://www.internals.com/


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 25.9.2004, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Тут возникла такая проблема, может знаешь в чем дело. Скачал архив, подключил либу, все библиотеки и драйвера в папке как положено, но при линковке VC пишет вот что
Цитата

invalid file or disk full: cannot seek to 0x3c800f8b

Архив качал заново - та же история, на диске у меня еще 200 мегов свободно. Скандиск тоже делал - безполезно. В чем может быть ошибка?

Я тебя наверное уже достал, да и тема начала выходить за рамки асма.

PM MAIL   Вверх
shedon
Дата 25.9.2004, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 1
Всего: 11



странно, а полный текст об ошибке можешь выдать ?


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 25.9.2004, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Код

Linking...
WINIO.lib : fatal error LNK1106: invalid file or disk full: cannot seek to 0x3c800f8b
Error executing link.exe.

11.exe - 1 error(s), 0 warning(s)

А вот, примерно, как я тестировал
Код

#include <windows.h>
#include <stdio.h>
#include <iostream.h>
#include "winio.h"

void main()
{
unsigned long buf;
InitializeWinIo();
while(1)
{
 GetPortVal(0x60, &buf, 4);
 cout << buf << endl;
};
ShutdownWinIo();
};

Добавлено @ 12:37
Либы всякие подключал и для NT и для 9x, и из примера брал, не работает sad.gif
PM MAIL   Вверх
shedon
Дата 25.9.2004, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 1
Всего: 11



А ты пробывал компилить пример, который там идёт ?
Попробуй перекомпилировать сам WinIO(библиотеук DLL, а не драйвер), и попробуй ещё раз. Каким компилятором компилишь, я сейчас пробывал в VC6.0 VC7.0 всё нормально компилируется.


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.