Jump to content

    
Sign in to follow this  
ZEbr

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

Recommended Posts

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

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

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

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

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

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

Edited by ZEbr

Share this post


Link to post
Share on other sites

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

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

Edited by ZEbr

Share this post


Link to post
Share on other sites

EE-240

 

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Edited by ZEbr

Share this post


Link to post
Share on other sites
добавляю несколько нужных мне строчек

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

Share this post


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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this