Сейчас на форуме: rmn, exp50848 (+9 невидимых)

 eXeL@B —› Основной форум —› Никто не занимался mikroC for ARM (EMCL format) ?
Посл.ответ Сообщение

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 31 марта 2014 15:03
· Личное сообщение · #1

http://www.mikroe.com/mikroc/arm/

Это компилятор ANSI C, генерирует прошивки ARM. Самое интересное это файл *.emcl - что-то вроде объектного файла, содержит символьную, строковую информацию и скомпилированный код в каком-то промежуточном формате.

Вот этот код и интересует. Задача декомпилировать его обратно в C.

Если кто-то уже делал декомпиляцию такого кода, напишите в этой ветке или в ЛС.

Я разобрал 90% структур в emcl. Сам компилятор написан на Delphi, поэтому большое спасибо IDR от Crypto

Проблема с псевдо-кодом, я пока не понял он ближе к машинному ARM или к абстрактному представлению. Теоретически с символьной информацией его можно с большой точностью перевести в C.

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

Триальной версии компилятора достаточно для анализа.

http://www.mikroe.com/downloads/get/1765/mikroc_pro_arm_2013_v420_setup.zip




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 31 марта 2014 16:10
· Личное сообщение · #2

а какой практический смысл в декомпиляторе emcl? Еще и привязанного к микроС, который мало кто юзает.



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 31 марта 2014 18:38 · Поправил: vden
· Личное сообщение · #3

внесение изменений, повторная компиляция




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 31 марта 2014 19:09
· Личное сообщение · #4

Это понятно. Просто если это промежуточный формат между исходником и бинарником, смысла его декомпилить нет - либо есть на руках исходник, либо бинарник. Или библиотеки МикроС надо декомпилить?



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 31 марта 2014 20:36 · Поправил: vden
· Личное сообщение · #5

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

Если нет, то тогда только анализировать бинарник.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 31 марта 2014 21:32 · Поправил: reversecode
· Личное сообщение · #6

что то мне подсказывает это некий аналог pdb/dwarf
иначе логика непонятна если туда и код запихали

а прекомпилед библиотеки тоже в emcl формате? тогда да, код там тоже должен быть



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 31 марта 2014 21:41 · Поправил: vden
· Личное сообщение · #7

есть опция -DL которая компилирует в emcl код, чтобы можно было распространять emcl без исходников
в моем случае код есть

точнее вот
-DL : Build all files as libraries in order to distribute MCLs without sources.



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 11 апреля 2014 15:28
· Личное сообщение · #8

Тема судя по всему обречена на смерть, просьба к модераторам удалить.


 eXeL@B —› Основной форум —› Никто не занимался mikroC for ARM (EMCL format) ?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати