Сейчас на форуме: jinoweb, bartolomeo, rmn (+4 невидимых) |
eXeL@B —› Программирование —› Перехватить чтение с диска и подставить свои данные |
Посл.ответ | Сообщение |
|
Создано: 17 мая 2014 20:39 · Личное сообщение · #1 Есть некая программа которая читает файл с диска. Я сам ее загружаю в память, обрабатываю ее импорт, гружу DLL которые ей необходимы а потом запускаю. Адреса функций CreateFile и ReadFile заменяю указателями на мои функции. Поэтому все операции чтения с диска я контролирую. Когда в CreateFile я ловлю название некого хитрого файлика, мне нужно подменить его своими данными в ReadFile. Проблема в том, что с установленным хуком на ReadFile программа отказывается работать правильно, может как-то узнает это и обламывает меня. Хук на CreateFile работает нормально. Поэтому интересно, можно ли в CreateFile подставить указатель на буфер памяти, где лежат мои данные, и чтобы ReadFile читала их "думая", что читает с диска? |
|
Создано: 17 мая 2014 20:54 · Поправил: Initial · Личное сообщение · #2 |
|
Создано: 17 мая 2014 20:57 · Личное сообщение · #3 |
|
Создано: 17 мая 2014 21:04 · Личное сообщение · #4 |
|
Создано: 17 мая 2014 21:37 · Личное сообщение · #5 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 18 мая 2014 12:13 · Личное сообщение · #6 |
|
Создано: 18 мая 2014 13:02 · Поправил: jangle · Личное сообщение · #7 В общем разобрался с ReadFile. В HookedCreateFile я перехватываю имя файла + его хендл, записываю их в массив. В HookedReadFile пробегаю по массиву и сравниваю хендл в hFile и сохраненный, если хендл нужного мне файлика, то вместо чтения ReadFile записываю в lpBuffer мои данные, и возвращаю 1 и количество подставленных байтов в lpNumberOfBytesRead. Программа "думает" что прочитала данные с диска. Такой способ как мне кажется, лучше чем хранение промежуточных файлов на диске, т.к. никаких следов в файловой системе не остается. Code:
|
|
Создано: 18 мая 2014 18:55 · Личное сообщение · #8 |
eXeL@B —› Программирование —› Перехватить чтение с диска и подставить свои данные |
Эта тема закрыта. Ответы больше не принимаются. |