| 
 
 
 
 Легенда:
  новое сообщение 
  закрытая нитка 
  новое сообщение 
  в закрытой нитке 
  старое сообщение   | 
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
Новичкам также крайне полезно ознакомиться с данным документом.
|  |  |  |  | Сам придумал :))  18.04.04 01:04  Число просмотров: 1996 Автор: shadow_agent Статус: Незарегистрированный пользователь
 |  
|  |  | <site updates> |  
| Кейлоггер под MS-DOS  13.04.04 02:06 Publisher: dl <Dmitry Leonov>
 |  
| Кейлоггер под MS-DOS -PaShIX- pashix@pochta.ru
 
 ЧАСТЬ 1. Что такое кейлоггер и с чем его едят?
 Кейлоггер (key stroke programm, keylogger) - программа, которая запоминает список нажимаемых пользователем клавиш. Обычно, кейлоггеры работают без ведома пользователей (иначе зачем они нужны, вед юзер итак знает, что нажимает =) ). Обычно, такие программы используются для того, что бы узнать набираемый логин и пароль, причём, не обязательно при входе в систему (например на почтовом сервере). В данном конкретном случае, я буду говорить про написание кейлоггера только под MS-DOS. Почему? Всё очень просто: во многих учебных заведениях (в т.ч. и в ВУЗах) для обучения программированию используют компиляторы под ДОС (например, Borland C, Borland Pascal, etc.) Более того, в некоторых таких заведениях всё ещё пашет какой-нибудь старый Novell Netware, опять таки, под ДОС. Ну а самая главная причина, почему я выбрал ДОС - я собираюсь только продемонстрировать принципы работы таких программ. Если вам нужен кейлоггер под вынь,...
 
 Полный текст
 |  
|  | Уточнения. [updated]  15.04.04 22:26 Автор: Den <Денис Т.> Статус: The Elderman
 Отредактировано 15.04.04 22:46  Количество правок: 1
 |  
| > Можно попробовать такой вариант: _SS + (_SP + запас_памяти) / 16 - _psp Лучше пробовать такой вариант:  _SS + _SP / 16 + 16 - _psp
 
 Старые обработчики лучше вызывать так:
 jmp far old_hdlr
 тогда старый обработчик сразу вернет управление на то место, где произошло прерывание.
 
 И наверное хорошо бы маскировать прерывание от клавиатуры на время работы обработчика.
 |  
|  | Блин, как актуально!!!  15.04.04 13:45 Автор: Den <Денис Т.> Статус: The Elderman
 |  
| И все-таки, почему пример не под Win32, а под DOS - мне непонятно. Не было под рукой соответствующего примера и пришлось обойтись древними манускриптами? |  
|  |  | Попробуй ещё разок самое начало прочитать  16.04.04 01:21 Автор: shadow_agent Статус: Незарегистрированный пользователь
 Отредактировано 16.04.04 01:24  Количество правок: 1
 |  
| Попробуй ещё разок самое начало прочитать: 
 >...Ну а самая главная причина, почему я выбрал ДОС - я собираюсь только >продемонстрировать принципы работы таких программ. Если вам нужен >кейлоггер под вынь, в яндексе найдёте туеву хучу таких...
 
 ...ну нравится мне ДОС, вот я и пишу я под ДОС :)
 Дело здесь не в кейлоггере даже, а в принципах программирования - под ДОС!
 |  
|  |  |  | :)) Хорошая отмазка.  16.04.04 12:25 Автор: Den <Денис Т.> Статус: The Elderman
 |  
|  |  
|  |  |  |  | Сам придумал :))  18.04.04 01:04 Автор: shadow_agent Статус: Незарегистрированный пользователь
 |  
|  |  
|  | Рентабельность, это маленько не из этой оперы. ;)
  14.04.04 11:48 Автор: Иван Статус: Незарегистрированный пользователь
 |  
| > Может быть вариант, что мы вызовем 0x21 находясь в нём же, что не есть хорошо (это называется нерентабельностью) 
 Рентабельность, это маленько не из этой оперы. ;)
 Реентерабельность - свойство программы, корректно выполняться при рекурсивном вызове из прерывания. А в целом статья неплохая. :)
 |  
|  |  | Блин, обшибся малость с понятиями :) sorry  15.04.04 02:37 Автор: shadow_agent Статус: Незарегистрированный пользователь
 |  
|  |  
|  |  | тьфу, не обратил внимания при выкладывании  14.04.04 15:26 Автор: dl <Dmitry Leonov>
 |  
|  |  
|  | а вот такие вещи лучше как раз таки на асме писать  13.04.04 03:45 Автор: Killer{R} <Dmitry> Статус: Elderman
 Отредактировано 13.04.04 10:04  Количество правок: 1
 |  
| В свое время тоже писал кейлоггер под дос,  сделал буфер и повесил обработчик на 09 для скидывания нажатий в буфер и обработчик на прерывание 1c - в нем тоже вначале стояла быстрая проверка наличия в буфере символов, затем при наличии таковых проверялся флаг indos, и если все в порядке буфер скидывался на винт. Таймер срабатывает 18.2 раза в секунду так что потери нажатий не могло быть в принципе даже при буфере хотябы на 128 символов (учитывая фокус с переносом части проги в PSP программа в памяти получалась совсем мизерная - пару сотен байт). Кстати замечание - при входе в обработчик прерывания и перед установкой обработчков надо все таки делать CLI не полагаясь на авось (авось сработавшее irq не вызовет нас еще раз) |  
|  |  | Хех ;)
  13.04.04 09:30 Автор: cybervlad <cybervlad> Статус: Elderman
 |  
| > принципе даже при буфере хотябы на 128 символов (учитывая > фокус с переносом части проги в PSP программа в памяти
 > получалась совсем мизерная - пару сотен байт). Кстати
 Хех ;)
 Перенос части данных в PSP - это не фокус. Фокус в том, чтобы вообще обойтись без PSP. Я как-то делал резидентик (будильник), он занимал в памяти 80 байт (включая "расписание" звонков и сообщения), не фрагментировал память, не использовал вызов TSR-прерывания, и, как следствие, не обнаруживался ни одним монитором резидентов ;)
 А вообще, мне при работе с ms-dos нравилась одна вещь: если комп повис, то исключительно по причине кривизны твоих рук, а не "злого Билла Гейтса с мерзкой виндой" ;)
 
 |  
|  |  |  | Хех ;)  21.05.04 19:54 Автор: Rept Статус: Незарегистрированный пользователь
 |  
| > А вообще, мне при работе с ms-dos нравилась одна вещь: если > комп повис, то исключительно по причине кривизны твоих рук,
 > а не "злого Билла Гейтса с мерзкой виндой" ;)
 
 Лафа начала кончаться вместе с 640К. ;)
 |  
 
 
 |  |