Russian Qt Forum
Ноябрь 23, 2024, 17:54
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
С/C++
>
WinAPI запуск файла с памяти и перехват API
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: WinAPI запуск файла с памяти и перехват API (Прочитано 15842 раз)
bixbit
Гость
WinAPI запуск файла с памяти и перехват API
«
:
Апрель 12, 2012, 21:20 »
Есть файл
нужно открыть файл ы изменить в нем даные (например сделать xor для файла)
ы не сохраняя даные в входящий файл, а в идеале не сохрання на диск запустить на исполнение ассоциированой прогарммой
пробовал експерементировать с времеными файлами ы проекцией файла в память, но не добился результата (не смог запустить файл имея только хендл)
«
Последнее редактирование: Апрель 18, 2012, 20:23 от bixbit
»
Записан
V1KT0P
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #1 :
Апрель 12, 2012, 21:25 »
Цитата: bixbit от Апрель 12, 2012, 21:20
Есть файл
нужно открыть файл ы изменить в нем даные (например сделать xor для файла)
ы не сохраняя даные в входящий файл, а в идеале не сохрання на диск запустить на исполнение ассоциированой прогарммой
пробовал експерементировать с времеными файлами ы проекцией файла в память, но не добился результата (не смог запустить файл имея только хендл)
RAM disk спасет тебя =).
Записан
bixbit
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #2 :
Апрель 12, 2012, 21:55 »
Цитата: V1KT0P от Апрель 12, 2012, 21:25
RAM disk спасет тебя =).
так он смонтирует раздел, но проблема останется
или я не так понял?
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: WinAPI запуск файла с памяти
«
Ответ #3 :
Апрель 13, 2012, 11:11 »
записывай временный файл
Записан
bixbit
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #4 :
Апрель 13, 2012, 16:12 »
Цитата: Alex Custov от Апрель 13, 2012, 11:11
записывай временный файл
я уже делал так, но как мне его запустить на выполнение имея HANDLE?
тоесть мне нужно, чтоб файл нельзя был открыть в другой программе пока моя программа запущена, но можно было б передать на исполнение конткретной программе только для чтения
«
Последнее редактирование: Апрель 13, 2012, 16:21 от bixbit
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: WinAPI запуск файла с памяти
«
Ответ #5 :
Апрель 13, 2012, 16:25 »
Цитата: bixbit от Апрель 13, 2012, 16:12
Цитата: Alex Custov от Апрель 13, 2012, 11:11
записывай временный файл
я уже делал так, но как мне его запустить на выполнение имея HANDLE?
тоесть мне нужно, чтоб файл нельзя был открыть в другой программе пока моя программа запущена
Ну извращаться с правами доступа, запускать все равно через имя файла.
Если уж все равно придется копаться в WinAPI, то есть смысл посмотреть: LoadModule/LoadLibrary имеет возможность (одну из опций) грузить но не выполнять. Может там удастся проскочить (хотя шансов мало)
Записан
V1KT0P
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #6 :
Апрель 13, 2012, 17:34 »
Цитата: bixbit от Апрель 13, 2012, 16:12
Цитата: Alex Custov от Апрель 13, 2012, 11:11
записывай временный файл
я уже делал так, но как мне его запустить на выполнение имея HANDLE?
тоесть мне нужно, чтоб файл нельзя был открыть в другой программе пока моя программа запущена, но можно было б передать на исполнение конткретной программе только для чтения
Как уже тебе сказали ты можешь через права ограничить доступ к файлу. Другое дело что той программе которой подсунешь может отказаться его принимать если захочет с доступом на чтение. Ты просто хочешь чего-то странного.
Чем тебе не нравится писать в RAM диск с одним и тем-же именем? Если ты хочешь реверснуть программа или протокол то лучше используй IDA, OllyDbg и т.д. А то впечатление складывается что ты хочешь "удалить зуб через жопу".
Записан
bixbit
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #7 :
Апрель 13, 2012, 17:52 »
Цитата: Igors от Апрель 13, 2012, 16:25
Ну извращаться с правами доступа, запускать все равно через имя файла.
да я уже понял что через хендл не получится(
Цитата: Igors от Апрель 13, 2012, 16:25
Если уж все равно придется копаться в WinAPI, то есть смысл посмотреть: LoadModule/LoadLibrary имеет возможность (одну из опций) грузить но не выполнять. Может там удастся проскочить (хотя шансов мало)
LoadModule/LoadLibrary не подошли The parameter is incorrect/The process cannot access the file because it is being used by another process
может в сторону хуков надо смотреть?
Цитата: V1KT0P от Апрель 13, 2012, 17:34
Как уже тебе сказали ты можешь через права ограничить доступ к файлу. Другое дело что той программе которой подсунешь может отказаться его принимать если захочет с доступом на чтение. Ты просто хочешь чего-то странного.
Чем тебе не нравится писать в RAM диск с одним и тем-же именем? Если ты хочешь реверснуть программа или протокол то лучше используй IDA, OllyDbg и т.д. А то впечатление складывается что ты хочешь "удалить зуб через жопу".
как именно организовать ограничение прав?
я не совсем поимаю роботу с рам диском
так ничего станного я не хочу
надо открыть файл
разшыфровать его и не сохрання в первичный запустить асоциированой програмой
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: WinAPI запуск файла с памяти
«
Ответ #8 :
Апрель 13, 2012, 18:13 »
Цитата: bixbit от Апрель 13, 2012, 17:52
LoadModule/LoadLibrary не подошли The parameter is incorrect/The process cannot access the file because it is being used by another process
Что-то слишком быстро они "не подошли". Удастся запустить или нет - но как минимум загрузка должна пройти без ошибки. Откуда взялся тот "another process"? Что-то не так
Записан
V1KT0P
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #9 :
Апрель 13, 2012, 18:16 »
Цитата: bixbit от Апрель 13, 2012, 17:52
Цитата: Igors от Апрель 13, 2012, 16:25
Ну извращаться с правами доступа, запускать все равно через имя файла.
да я уже понял что через хендл не получится(
Цитата: Igors от Апрель 13, 2012, 16:25
Если уж все равно придется копаться в WinAPI, то есть смысл посмотреть: LoadModule/LoadLibrary имеет возможность (одну из опций) грузить но не выполнять. Может там удастся проскочить (хотя шансов мало)
LoadModule/LoadLibrary не подошли The parameter is incorrect/The process cannot access the file because it is being used by another process
может в сторону хуков надо смотреть?
Цитата: V1KT0P от Апрель 13, 2012, 17:34
Как уже тебе сказали ты можешь через права ограничить доступ к файлу. Другое дело что той программе которой подсунешь может отказаться его принимать если захочет с доступом на чтение. Ты просто хочешь чего-то странного.
Чем тебе не нравится писать в RAM диск с одним и тем-же именем? Если ты хочешь реверснуть программа или протокол то лучше используй IDA, OllyDbg и т.д. А то впечатление складывается что ты хочешь "удалить зуб через жопу".
как именно организовать ограничение прав?
я не совсем поимаю роботу с рам диском
так ничего станного я не хочу
надо открыть файл
разшыфровать его и не сохрання в первичный запустить асоциированой програмой
А ну теперь хоть стала ясна задача, так бы сразу и написал что хочешь обеспечить защиту шифрованных файлов.
На WinApi могу посоветовать перехватывать функции работы с файлами и директориями. И через перехват эмулировать наличие файла, но давать доступ только тому приложению которому разрешено.
Но сразу скажу средний специалист легко перехватит расшифрованный файл. А достаточно опытные еще и разберут алгоритм расшифровки. Тут нет 100% способов защиты. Ты можешь два месяца вешать разной степени сложности защиты, а программа будет взломана за пару дней. Хорошим примером служат игры, какие защиты не вешают все взламывается.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: WinAPI запуск файла с памяти
«
Ответ #10 :
Апрель 13, 2012, 20:00 »
Цитата: bixbit от Апрель 13, 2012, 17:52
разшыфровать его и не сохрання в первичный запустить асоциированой програмой
А какой смысл расшифровки данных для ассоциированого приложения? Ну напр "секретная картинка" (крутые писи-сиси) открывается для вьюера который имеет выбор сохранить ее в неск форматах. И чего добились шифрованием исходного файла?
Записан
bixbit
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #11 :
Апрель 13, 2012, 20:34 »
Цитата: Igors от Апрель 13, 2012, 18:13
Что-то слишком быстро они "не подошли". Удастся запустить или нет - но как минимум загрузка должна пройти без ошибки. Откуда взялся тот "another process"? Что-то не так
Да я пробовал запустить файл, уже открытый через хендл
В других случаях я б использовал ShellExecute
Цитата: Igors от Апрель 13, 2012, 20:00
Цитата: bixbit от Апрель 13, 2012, 17:52
разшыфровать его и не сохрання в первичный запустить асоциированой програмой
А какой смысл расшифровки данных для ассоциированого приложения? Ну напр "секретная картинка" (крутые писи-сиси) открывается для вьюера который имеет выбор сохранить ее в неск форматах. И чего добились шифрованием исходного файла?
Мы б добились того, что перед запуском можно спросить пароль
Цитата: V1KT0P от Апрель 13, 2012, 18:16
А ну теперь хоть стала ясна задача, так бы сразу и написал что хочешь обеспечить защиту шифрованных файлов.
На WinApi могу посоветовать перехватывать функции работы с файлами и директориями. И через перехват эмулировать наличие файла, но давать доступ только тому приложению которому разрешено.
Но сразу скажу средний специалист легко перехватит расшифрованный файл. А достаточно опытные еще и разберут алгоритм расшифровки. Тут нет 100% способов защиты. Ты можешь два месяца вешать разной степени сложности защиты, а программа будет взломана за пару дней. Хорошим примером служат игры, какие защиты не вешают все взламывается.
Да я знаю, что идеальной защиты нет. Задание больше в целях ознакомления с системами защиты средствами API, чем в целях безопасности.
А почему просто не перехвытовать открытие, перемищение и копирование?
Читаю тут в Рихтера про хуки, но почему-то пример LastMsgBoxInfo приведеный в книжке не работает
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: WinAPI запуск файла с памяти
«
Ответ #12 :
Апрель 13, 2012, 20:51 »
Хмм.. ну критиковать легко, спрашивать "а как же звучит задание" и.т.п. - долгие разборки но (как правило) без всякого полезного результата.
Хорошо, а если зайти с др стороны - повесить "фильтр/хук" просто на чтение файла? Мои познания в WinAPI давно устарели, но, по идее, это "должно быть". Вызывающий наш - делаем напр хоr (получаем хорошие данные) иначе нет.
Записан
bixbit
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #13 :
Апрель 13, 2012, 21:31 »
Цитата: Igors от Апрель 13, 2012, 20:51
Хмм.. ну критиковать легко, спрашивать "а как же звучит задание" и.т.п. - долгие разборки но (как правило) без всякого полезного результата.
Хорошо, а если зайти с др стороны - повесить "фильтр/хук" просто на чтение файла? Мои познания в WinAPI давно устарели, но, по идее, это "должно быть". Вызывающий наш - делаем напр хоr (получаем хорошие данные) иначе нет.
В общих чертах задание звучит: "На любую манипуляцию файла спросить пароль. При открытии из-под другой ОС "каша" а не файл."
Такой вопрос какой самый простой вариант внедрения хука?
Записан
V1KT0P
Гость
Re: WinAPI запуск файла с памяти
«
Ответ #14 :
Апрель 13, 2012, 21:58 »
Цитата: bixbit от Апрель 13, 2012, 21:31
Цитата: Igors от Апрель 13, 2012, 20:51
Хмм.. ну критиковать легко, спрашивать "а как же звучит задание" и.т.п. - долгие разборки но (как правило) без всякого полезного результата.
Хорошо, а если зайти с др стороны - повесить "фильтр/хук" просто на чтение файла? Мои познания в WinAPI давно устарели, но, по идее, это "должно быть". Вызывающий наш - делаем напр хоr (получаем хорошие данные) иначе нет.
В общих чертах задание звучит: "На любую манипуляцию файла спросить пароль. При открытии из-под другой ОС "каша" а не файл."
Такой вопрос какой самый простой вариант внедрения хука?
Начни с статьи: "Ms-Rem - Перехват API функций в Windows NT (часть 1). Основы перехвата. ":
http://wasm.ru/article.php?article=apihook_1
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...