реклама на сайте
подробности

 
 
> abort handler. вопрос к гуру: как узнать адрес, куда пишутся данные?
max sagaydachny
сообщение Oct 23 2007, 12:56
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 23-10-07
Пользователь №: 31 645



имеется устройство с процессором arm946es.
его родной firmware позволяет запускать бинарные файлы с SD карточки.
в результате запуска стартует не родная операционная система, а код из бинарного файла.

цель проекта: запустить процесс в уже работающей операционной системе.
для этого код из бинарного файла должен передать управление обратно на ROM, чтобы продолжилась загрузка операционной системы ( скорее всего с этим у нас проблем нет )

вопрос: как к нашему коду вернется управление после старта операционной системы?
ответ: используя Protection Unit мы пытаемся не позволить операционной системе установить ее родной abort handler
проблема в том, что минимальный размер страницы при использовании Protection Unit - 4kb
a нам нужно не позволить записать только 4(8?) байтов в vector table (data abort handler и prefetch abort handler )

тоесть наш обработчик должен иметь возможность узнать, что и куда в этом сегменте пытались записать.
если записываемый адрес не наш abort handler - нам нужно записать эти данные как и предполагал их записать "чужой" код.
получается, что нам нужен парсер инструкциЙ STR.
изобретать велосипед не хочется. скорее всего этот код давно существует.
мне не удалось этот код найти.
я смотрел проекты: qemu, skyeye, softgun, swarm
немного тяжело анализировать такие большие проекты, когда мне всего лишь нужен парсер для двух инструкций STR.

вопрос: где такой код искать, который позволяет узнать, по какому адресу предполагалась запись?
также возможно мы используем совершенно не правильный подход для решения нашей проблемы.


выслушаю и приму любые дикие идеи.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dron_Gus
сообщение Oct 25 2007, 12:40
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Это уже сродни вирусописательству. Там тоже решаются задавчи, как "приклеиться" к чужому коду.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
max sagaydachny
сообщение Oct 25 2007, 13:28
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 23-10-07
Пользователь №: 31 645



Цитата(Dron_Gus @ Oct 25 2007, 15:40) *
Это уже сродни вирусописательству. Там тоже решаются задавчи, как "приклеиться" к чужому коду.


давайте назовем это по другому - модификация системы для выполнения дополнительных действий... :-)
Go to the top of the page
 
+Quote Post
max sagaydachny
сообщение Oct 25 2007, 13:50
Сообщение #4





Группа: Новичок
Сообщений: 5
Регистрация: 23-10-07
Пользователь №: 31 645



defunct
я думаю, что родной дата аборт хандлер там висит просто "на всякий случай".
я думаю, что его подмена не повлияет на работу операционной системы.
зачем менять обработчики IRQ и FIQ?

устройства, на которые нацелен проект: Canon камеры, на которых работает vxWorks

перезаписывать Flash, даже если бы это было возможно, не хочется по многим причинам (если что-то пойдет не так, я нехотел бы пытаться объяснять в сервисном центре , почему в моем аппарате не правильный образ Flash).


Цитата(max sagaydachny @ Oct 25 2007, 16:39) *
перезаписывать Flash, даже если бы это было возможно, не хочется по многим причинам (если что-то пойдет не так, я нехотел бы пытаться объяснять в сервисном центре , почему в моем аппарате не правильный образ Flash).


некоторые модели камер не позволяют запускать внешние исполняемые файлы, поэтому в принципе для этих моделей было бы неплохо изменить Flash, чтобы он позволял запускать файлы с карточки памяти.
тогда уже можно не заботиться о том, что что-то поломалось - просто удали файл с карточки....
Go to the top of the page
 
+Quote Post
max sagaydachny
сообщение Oct 25 2007, 14:24
Сообщение #5





Группа: Новичок
Сообщений: 5
Регистрация: 23-10-07
Пользователь №: 31 645



abort handler - это обработчик ситуации, когда совсем все плохо. такого не может быть в работающих цифровых фото камерах, поэтому я считаю, что этот обработчик там - "на всякий случай", поэтому подмена его на наш обработчик достаточно безопасна.

мы его собираемся менять, чтобы иметь возможность получить управление обратно.

А как вы себе представляете процесс передачи управления из ОС вашему процессу?
используя data abort handler
я примерно знаю, с какими адресами оперирует операционная система.
на основе этого я могу написать свой data abort handler

еще раз напомню, что я не знаю достаточно хорошо архитектуру.
я могу быть кучу раз неправ.
поэтому и появился этот топик.

Сообщение отредактировал max sagaydachny - Oct 25 2007, 14:28
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- max sagaydachny   abort handler. вопрос к гуру: как узнать адрес, куда пишутся данные?   Oct 23 2007, 12:56
- - scifi   Такая штука реализована в Linux. Ссылка на код ест...   Oct 24 2007, 05:32
|- - max sagaydachny   scifi - спасибо за идею defunct подробнее: 1) ш...   Oct 25 2007, 12:33
|- - defunct   Цитата(max sagaydachny @ Oct 25 2007, 15...   Oct 25 2007, 13:23
- - defunct   Цитатаa нам нужно не позволить записать только 4(8...   Oct 25 2007, 11:42
|- - defunct   Цитата(max sagaydachny @ Oct 25 2007, 16...   Oct 25 2007, 13:32
|- - defunct   Цитата(max sagaydachny @ Oct 25 2007, 16...   Oct 25 2007, 13:54
|- - defunct   Цитата(max sagaydachny @ Oct 25 2007, 17...   Oct 25 2007, 14:38
- - Dron_Gus   2 defunct На мой взгляд автор хочет подменить Дат...   Oct 25 2007, 14:47
- - defunct   Цитата(Dron_Gus @ Oct 25 2007, 17:47) На ...   Oct 25 2007, 15:22


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 14:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016