eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: novichoker, rmn (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Определить место вызова ReadFile
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Статус: Участник

Создано: 26 февраля 2015 11:49 New!
Цитата · Личное сообщение · #1

Всем привет!
Если софтина LiveViewRift - это плеер, он бесплатный.
Нужно его немного "подкорректировать", а точнее - перехватывать api чтения файла и менять входную информацию. Я уже написал соответствующую утилиту на основе библиотеки mhook. Утилита прекрасно работает на разных плеерах типа VLC и MPC, но на этом - не работает.
Суть в том, что вызов ReadFile проиcходит, похоже, не из самого процесса LiveViewRift.exe. В общем я открыл IDA, поставил точку остановки в ReadFile, нажал в плеере Start и... Плеер спокойно начал проигрывать видео, не остановившись в отладчике. При этом, если открыть ProcessMonitor, то мы увидим, как процесс LiveViewRift.exe спокойно себе читает наш видео файл.
Я в замешательстве
Может кто сталкивался с подобным поведением, подскажите.

ps
плеер на Qt, ни чем не упакован, код чистый.

Заранее спасибо


Ранг: 1984.9 (!!!!)
Статус: Модератор
retired

Создано: 26 февраля 2015 12:03 New!
Цитата · Личное сообщение · #2

А кто обещал, что будет чтение файла? Может файл мапится, скажем. И где линк?

Ранг: 1.0 (гость)
Статус: Участник

Создано: 26 февраля 2015 12:15 New!
Цитата · Личное сообщение · #3

вот плеер: http://soft.viarum.com/download/liveviewrift3131_win_220914.msi

Archer пишет:
Может файл мапится, скажем

Да, но ProcessMonitor четко показывает, что идет чтение искомого файла (по 32 кб).

Добавлено спустя 35 минут
Установил WinDbg и поставил точку остановки на ReadFile. И, о чудо! Отладчик вывалился в nvoglv32.dll - это библиотека nvidia.

[ASM]...
692c68b1 6a00 push 0
692c68b3 8d45fc lea eax,[ebp-4]
692c68b6 50 push eax
692c68b7 6a04 push 4
692c68b9 8d45f8 lea eax,[ebp-8]
692c68bc 50 p[/ASM]ush eax
692c68bd 57 push edi
692c68be ffd3 call ebx ; << вызов ReadFile
692c68c0 8b4dfc mov ecx,dword ptr [ebp-4] ss:002b:05b4fb3c=00000004
692c68c3 85c9 test ecx,ecx
692c68c5 0f84af000000 je nvoglv32!DrvPresentBuffers+0x205eaa (692c697a)
692c68cb 85c0 test eax,eax
692c68cd 0f84d9000000 je nvoglv32!DrvPresentBuffers+0x205edc (692c69ac)
...
[/ASM]

В общем, как я понял куда-то в Opengl передается имя файла, а он уже сам открывает.

Вопрос вот в чем. Почему тогда не удается подцепиться к процессу, перехватив ReadFile в основном процессе? Как я понимаю, адрес ReadFile для всех подключенных dll так же будет одним и тем же.
 eXeL@B —› Вопросы новичков —› Определить место вызова ReadFile

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS