ZEbr 0 2 ноября, 2011 Опубликовано 2 ноября, 2011 (изменено) · Жалоба Возможно даный вопрос поднимался на форуме, но я его не нашол. Так что извините за тафтологию. А вопрос такой, скажите пожалуйста: 1)Можно ли как-нибудь получить код программы из ldr файла. 2)Добавить в него несколько строчек. 3) И свернуть его обратно в ldr файл. Заранее спасибо! Изменено 2 ноября, 2011 пользователем ZEbr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 2 ноября, 2011 Опубликовано 2 ноября, 2011 · Жалоба 1) ldr и есть ваша программа 2,3) не вижу никаких проблем это сделать Описание формата файла в ЕЕ-240 если не ошибаюсь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZEbr 0 2 ноября, 2011 Опубликовано 2 ноября, 2011 (изменено) · Жалоба Если вам не сложно, uriy, можете поподробнее объяснить 2 и 3 пункт. Заранее спасибо! Подскажите НУБУ хотябы что такое ЕЕ-240 Изменено 2 ноября, 2011 пользователем ZEbr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik0 0 3 ноября, 2011 Опубликовано 3 ноября, 2011 · Жалоба EE-240 Только мне кажется, что вы и uriy говорите о разных вещах. Если я правильно понял вам необходимо дизассемблирование/декомпилирование, а uriy говорил о модификации загрузочного файла. Поправьте, если я не прав. ps. Не знаю какое у вас семейство, но, ЕМНИП, у 54x (и скорее всего у 50x, 51x и 52x) семейства немного изменился формат ldr. Описание изменений - в hardware reference manual Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 3 ноября, 2011 Опубликовано 3 ноября, 2011 · Жалоба Да возможно автор хочет дизассемблировать, этим я не занимался. Я не то имел ввиду. У меня возникало желание править LDR чтобы затолкать в конец, дату компиляции, порядковый номер билда ревзию из SVN и чтобы все это автоматом. В итоге остановился на этом: sprintf(buf, " Boot build at \"%s %s\"\r\n\r\n", __DATE__, __TIME__); printf(buf); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZEbr 0 3 ноября, 2011 Опубликовано 3 ноября, 2011 (изменено) · Жалоба В принципе в моём скудном представление данной проблемы, по идеи должно быть так, я сначала дизассемблирую ldr файл, получаю код(в языке C), добавляю несколько нужных мне строчек. И обратно компилирую в ldr файл. Вроде бы так. Если с дизассемблером я хотя бы понимаю что делать(примерно), и даже начал его немного писать на C#, то вот с повторным созданием ldr файла, без VisualDSP есть небольшие(большие) проблемы. Семейство у меня 53x. А можете уточнить что подразумевается, под модификацией файла, это модификация его внутреннего содержимого, или каких-то его параметров. Заранее спасибо! Изменено 3 ноября, 2011 пользователем ZEbr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 3 ноября, 2011 Опубликовано 3 ноября, 2011 · Жалоба дизассемблирую ldr файл, получаю код(в языке C) Это как из фарша корову целую получить примерно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 3 ноября, 2011 Опубликовано 3 ноября, 2011 · Жалоба добавляю несколько нужных мне строчек По существующему коду без прекомпиляции и перелинковки это не получится, т к добавив свою функцию вы сдвинете всю адресацию в файле. Максимум что Вы сможете сделать если нет доступа к исходникам, это отдебажить существующий файл и найти не критические для работы кода функции которые можно грохнуть. Затем заменить их код на свою ассемблерную вставку. Тут важно чтоб её размер не перекрывал размер старой, пустое пространство можно забить нопами итп. Ну и проверить чтоб адреса входа выхода совпадали. Где то так... люди dll патчат "по живому", приаттачивают вирусы и работает... ;) Только подобная работа потребует очень высокой квалификации, знания asm и тонких подробностей работы процессора, форматов файлов, времени. Стоит ли возиться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZEbr 0 3 ноября, 2011 Опубликовано 3 ноября, 2011 · Жалоба sevstels, думаю стоит возится. Скажите пожалуйста, я что-то никогда не задумывался, линковку делает компилятор или что-то ещё? Слушайте а можно как-нибудь вытащить из VisualDSP компилятор, и линкёр(если такое понятие есть). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 4 ноября, 2011 Опубликовано 4 ноября, 2011 · Жалоба Компилятор или линкер вытаскивать не надо, они уже отдельно лежат в директории IDE, например: VisualDSP 5.0/linker.exe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZEbr 0 4 ноября, 2011 Опубликовано 4 ноября, 2011 · Жалоба То есть, теоретически я могу их использовать, отдельно от VisualDSP, например в какой-нибудь своей программе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 5 ноября, 2011 Опубликовано 5 ноября, 2011 · Жалоба То есть, теоретически я могу их использовать, отдельно от VisualDSP, например в какой-нибудь своей программе. Что значит "отдельно"? Установить VDSP всё равно придётся. А собственно компиляторы, ассемблеры, линкер - это отдельные файлы, экзешники, их можно запускать из командной строки. Чем и пользуемся, когда производим сборку проекта вне среды VDSP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZEbr 0 5 ноября, 2011 Опубликовано 5 ноября, 2011 · Жалоба Ну в принципе я это и имел в виду :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZEbr 0 14 ноября, 2011 Опубликовано 14 ноября, 2011 · Жалоба В продолжение темы,dxp можете привести пример, как собирается проект вне среды VDSP? Заранее спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться