Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
существуют три способа (я говорю о юзермоде, кернел не интересует) логирования клавиатурного ввода:
1. Опрос в цикле функций состояния клавиатуры GetKeyboardState/GetAsyncKeyState и так далее.
2. Хуки.
3. перехват функций, оконных сообщений и т.п.
1. Из того, что я понял в ходе изучения, эти функции - самое простое и самое первое, к чему приходит любой разработчик подобного софта. Ну а что - бери да вызывай в цикле и логируй, что там получилось. Но по факту, есть некоторые нюансы. Если слишком часто вызывать функцию (например - GetAsyncKeyState , опрос каждой клавиши), то это нагрузка на проц + будет логироваться несколько раз подряд одно и тоже (вида - вводишь "а", а он логирует "ааа"). Если слишком редко - часть символов пролетит. Нередко логирование было не в том порядке, что нужно - вместо "слово" логировалось "совло" и подобное. Если для обычной переписки это еще куда не шло (понять суть можно), то для логирования паролей, ес-но, не подойдет. Поигравшись с этими функциями, я так и не понял, как их оптимально использовать - наверное, все таки никак (или в комплексе с чем-то другим).
2. Более точный вариант, т.к. просто - получил сигнал что ввели новый символ, залогировал. С другой стороны, хуки - это дополнительная нагрузка на ОС, это страшное палево, и (возможно) нестабильность работы. Кто-то писал, что кривые хуки (вместе с аверами) могут уронить систему в бсод.
3. Экзотика - из-за этого нестабильная работа, ну и палево (перехват функций это обычно инжект).
В общем, интересует ваше мнение на эту тему, особо мнение тех, кто реверсил такую малварь. Что чаще всего используют, плюсы и минусы.
Если что, я не буду использовать эту инфу для камерца, интерес чисто личный.
1. Опрос в цикле функций состояния клавиатуры GetKeyboardState/GetAsyncKeyState и так далее.
2. Хуки.
3. перехват функций, оконных сообщений и т.п.
1. Из того, что я понял в ходе изучения, эти функции - самое простое и самое первое, к чему приходит любой разработчик подобного софта. Ну а что - бери да вызывай в цикле и логируй, что там получилось. Но по факту, есть некоторые нюансы. Если слишком часто вызывать функцию (например - GetAsyncKeyState , опрос каждой клавиши), то это нагрузка на проц + будет логироваться несколько раз подряд одно и тоже (вида - вводишь "а", а он логирует "ааа"). Если слишком редко - часть символов пролетит. Нередко логирование было не в том порядке, что нужно - вместо "слово" логировалось "совло" и подобное. Если для обычной переписки это еще куда не шло (понять суть можно), то для логирования паролей, ес-но, не подойдет. Поигравшись с этими функциями, я так и не понял, как их оптимально использовать - наверное, все таки никак (или в комплексе с чем-то другим).
2. Более точный вариант, т.к. просто - получил сигнал что ввели новый символ, залогировал. С другой стороны, хуки - это дополнительная нагрузка на ОС, это страшное палево, и (возможно) нестабильность работы. Кто-то писал, что кривые хуки (вместе с аверами) могут уронить систему в бсод.
3. Экзотика - из-за этого нестабильная работа, ну и палево (перехват функций это обычно инжект).
В общем, интересует ваше мнение на эту тему, особо мнение тех, кто реверсил такую малварь. Что чаще всего используют, плюсы и минусы.
Если что, я не буду использовать эту инфу для камерца, интерес чисто личный.