Перейти к содержанию
    

Преобразование LDR файла

Возможно даный вопрос поднимался на форуме, но я его не нашол. Так что извините за тафтологию.

А вопрос такой, скажите пожалуйста:

1)Можно ли как-нибудь получить код программы из ldr файла.

2)Добавить в него несколько строчек.

3) И свернуть его обратно в ldr файл.

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

Изменено пользователем ZEbr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) ldr и есть ваша программа

2,3) не вижу никаких проблем это сделать

Описание формата файла в ЕЕ-240 если не ошибаюсь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вам не сложно, uriy, можете поподробнее объяснить 2 и 3 пункт. Заранее спасибо!

Подскажите НУБУ хотябы что такое ЕЕ-240

Изменено пользователем ZEbr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

EE-240

 

Только мне кажется, что вы и uriy говорите о разных вещах. Если я правильно понял вам

необходимо дизассемблирование/декомпилирование, а uriy говорил о модификации загрузочного файла.

Поправьте, если я не прав.

 

ps. Не знаю какое у вас семейство, но, ЕМНИП, у 54x (и скорее всего у 50x, 51x и 52x) семейства

немного изменился формат ldr. Описание изменений - в hardware reference manual

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да возможно автор хочет дизассемблировать, этим я не занимался. Я не то имел ввиду. У меня возникало желание править LDR чтобы затолкать в конец, дату компиляции, порядковый номер билда ревзию из SVN и чтобы все это автоматом. В итоге остановился на этом:

sprintf(buf, "   Boot build at \"%s %s\"\r\n\r\n", __DATE__, __TIME__);
printf(buf);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В принципе в моём скудном представление данной проблемы, по идеи должно быть так, я сначала дизассемблирую ldr файл, получаю код(в языке C), добавляю несколько нужных мне строчек. И обратно компилирую в ldr файл. Вроде бы так. Если с дизассемблером я хотя бы понимаю что делать(примерно), и даже начал его немного писать на C#, то вот с повторным созданием ldr файла, без VisualDSP есть небольшие(большие) проблемы. Семейство у меня 53x. А можете уточнить что подразумевается, под модификацией файла, это модификация его внутреннего содержимого, или каких-то его параметров. Заранее спасибо!

Изменено пользователем ZEbr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дизассемблирую ldr файл, получаю код(в языке C)

Это как из фарша корову целую получить примерно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

добавляю несколько нужных мне строчек

По существующему коду без прекомпиляции и перелинковки это не получится, т к добавив свою функцию вы сдвинете всю адресацию в файле.

Максимум что Вы сможете сделать если нет доступа к исходникам, это отдебажить существующий файл и найти не критические для работы кода функции которые можно грохнуть. Затем заменить их код на свою ассемблерную вставку. Тут важно чтоб её размер не перекрывал размер старой, пустое пространство можно забить нопами итп. Ну и проверить чтоб адреса входа выхода совпадали. Где то так... люди dll патчат "по живому", приаттачивают вирусы и работает... ;)

 

Только подобная работа потребует очень высокой квалификации, знания asm и тонких подробностей работы процессора, форматов файлов, времени. Стоит ли возиться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sevstels, думаю стоит возится. Скажите пожалуйста, я что-то никогда не задумывался, линковку делает компилятор или что-то ещё?

Слушайте а можно как-нибудь вытащить из VisualDSP компилятор, и линкёр(если такое понятие есть).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Компилятор или линкер вытаскивать не надо, они уже отдельно лежат в директории IDE, например: VisualDSP 5.0/linker.exe

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, теоретически я могу их использовать, отдельно от VisualDSP, например в какой-нибудь своей программе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, теоретически я могу их использовать, отдельно от VisualDSP, например в какой-нибудь своей программе.

Что значит "отдельно"? Установить VDSP всё равно придётся. А собственно компиляторы, ассемблеры, линкер - это отдельные файлы, экзешники, их можно запускать из командной строки. Чем и пользуемся, когда производим сборку проекта вне среды VDSP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В продолжение темы,dxp можете привести пример, как собирается проект вне среды VDSP? Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...