Сейчас на форуме: (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Detours -- проблема с перехватом функции ReadFile
Посл.ответ Сообщение

Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

Создано: 26 мая 2014 18:02 · Поправил: b0r3d0m
· Личное сообщение · #1

Приветствую.

Имеется некоторое кол-во процессов "notepad.exe". Необходимо пропатчить их таким образом, чтобы при сохранении файла текст, введённый пользователем, зашифровывался, а при загрузке -- расшифровывался. Каким именно алгоритмом будет осуществляться шифрование в данный момент особого значения не имеет, т.к. в моём случае проблема оказалась вовсе не в этом.

Разумеется, первым делом у меня возникло желание использовать для этих целей Detours. Т.е. создаём динамическую библиотеку с перехватом интересующих меня WinAPI-функций (вероятнее всего, WriteFile и ReadFile), после чего загружаем её во все текущие процессы с именем "notepad.exe" при помощи CreateRemoteThread.

Перехватка функций работает, текст успешно шифруется на сохранении файла. Попытка дешифровать этот же текст путём перехвата ReadFile почему-то не работает. Взял в руки Process Monitor и стал наблюдать за тем, что же на самом деле используется notepad'ом для чтения файла. Да, функция ReadFile действительно вызывается для проверяемого мной файла. Добавил вызов функции MessageBoxA в код хука, поставленного на ReadFile, и обнаружил, что вызывается он не в момент нажатия на кнопку "Open" в GUI notepad'а, а при выделении документа в диалоге выбора файла. Интересно, почему бы это? Неужели notepad заранее загружает в память содержмое файла ещё до непосредственного нажатия на клавишу "Open"? Если да, то зачем? Если нет, то почему я наблюдаю подобное поведение? Более того, текст при чтении файла всё равно не подменяется на нужный мне. Специально для упрощения эксперимента пытался на ReadFile всегда возвращать в качестве прочитанных данных "str", однако даже в таком случае в GUI отображается оригинальное содержимое файла, а не "str".

Тут можно посмотреть код с хуками на вызов функций WriteFile и ReadFile.

Заранее благодарю за возможные ответы.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 мая 2014 18:08
· Личное сообщение · #2

b0r3d0m
Помниться, там маппинг. Могу и ошибаться.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

Создано: 26 мая 2014 18:44
· Личное сообщение · #3

ARCHANGEL пишет:
Помниться, там маппинг

Спасибо за подсказку.
Правда, вызов функции CreateFileMapping я вижу, а вот MapViewOfFile нет. Не вспомните деталей?



Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 26 мая 2014 19:49
· Личное сообщение · #4



Это при сохранении.

А это открытие файла:



Win7 x32 .

Я подобное уже делал, если надо могу поискать исходники.



Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

Создано: 26 мая 2014 21:12
· Личное сообщение · #5

vovanre пишет:
Это при сохранении

А чем Вы поймали эти вызовы?

vovanre пишет:
Я подобное уже делал, если надо могу поискать исходники

Да, был бы признателен. Написал в ПМ.



Ранг: 134.1 (ветеран), 246thx
Активность: 0.220.1
Статус: Участник
realist

Создано: 26 мая 2014 21:16
· Личное сообщение · #6

b0r3d0m пишет:
А чем Вы поймали эти вызовы?

--> API Monitor v2 <--

| Сообщение посчитали полезным: b0r3d0m


Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 26 мая 2014 21:26
· Личное сообщение · #7

b0r3d0m

Конечная цель какая, можно безпалевно(без патчей) всё мониторить, тот же например диалог.



Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

Создано: 26 мая 2014 21:29
· Личное сообщение · #8

Dr0p пишет:
Конечная цель какая

Конечная цель в шифровке и дешифровке как раз и заключается.

Dr0p пишет:
можно безпалевно(без патчей) всё мониторить, тот же например диалог

Вы про функции наподобие FindWindow? В любом случае, мне же не сам диалог мониторить надо, а события сохранения и загрузки текстовых файлов.




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 26 мая 2014 21:36
· Личное сообщение · #9

b0r3d0m

Сомневаюсь что вам нужен именно блокнот, им никто не пользуется и даже не знает как запустить(хомяки). Походу на примере блокнота откатывается технология, которая будет юзаться на другом софте. Вот интересно на каком.



Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

Создано: 26 мая 2014 21:44
· Личное сообщение · #10

Dr0p пишет:
Сомневаюсь что вам нужен именно блокнот, им никто не пользуется и даже не знает как запустить

Да нет, почему же -- у нас полно подобных людей, например.

Dr0p пишет:
Походу на примере блокнота откатывается технология, которая будет юзаться на другом софте

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

Добавлено спустя 4 часа 28 минут
Оказывается, Process Monitor почему-то просто не перехватывает вызов функции MapViewOfFile. Попробовал проделать то же самое с winapioverride -- да, вызов MapViewOfFile действительно имеется.

| Сообщение посчитали полезным: Dr0p
 eXeL@B —› Вопросы новичков —› Detours -- проблема с перехватом функции ReadFile
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати