|
Motorcode, 2009
Uraniumcode@gmail.com
Два простых способа защиты от WM_GETTEXT.
Бывает натолкаешь кучу антиотладочных приёмов в программу, сделаешь различные приёмы в неё, а какой — нибудь умник просто вызовет SendMessage с параметром WM_GETTEXT и получит себе важную инфу. Так вот, чтобы это не произошло, рассмотрим 2 очень простых способа как этому помешать.
1.Убираем имя окна.
Чтобы получить доступ например к Tedit, надо сначала найти то самое окно с этим. А когда имени окна нет, то найти его будет довольно сложно. Поэтому в настройках проекта оставляем пустое поле, где надо вводить имя. Если кому — то режет глаз отсутствие заголовка у окна, то можно написать маленькую программу по генерации этого заголовка(рандомно) например каждые 5 секунд. Но смотреться это будет довольно глупо.
2.Вижу одно, а думаю другое.
Если надо защитить поле для ввода пароля, то можно сделать обработчик событий для нажатия любой кнопки, чтобы при вводе отображались совершенно другие символы. А как собственно говоря читать то что надо? А очень просто, Создаём два Edit один выставляем на форму(как и другой), a второй делаем не видимым(Visible:= false). И для обработчика события для первого Edit, то что мы нажали перебрасываем во второй. А левые символы выоводим на экран. Примерно так:
Листинг 1.1
I:Integer;
…...
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
I:=Key; //Записываем в переменную код очередной клавиши
Edit2.SelText:= I; //Записываем её
Random; //Вызов
Key:= char(Random(120)); //И левые символы в Edit1
end;
Всё довольно просто, комментарии написаны.
Вот два самых простых способа как противостоять WM_GETTEXT. На этом они конечно не заканчиваются, но это может сделать каждый вне зависимости от квалификации. Удачи!
Автор: Motorcode | Добавлено: 12.10.2009, 12:16 | Просмотров: 12979
Добавить комментарий
|
|