|
Cortex-M3 EFM32 |
|
|
|
May 27 2018, 05:06
|
Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674

|
Здравствуйте уважаемые. Помоги решить данную задачу. Есть процессор Cortex-M3 ARM 7, на нем программа, которая включается по коду нажатиями на кнопки. Исходника самой программы нет, но есть слитая программа в бине. Как найти в коде дизассемблированном строку, где этот код вводится. Как он может выглядеть в коде дизассемблера IDA. Смотрел по кнопкам на какие ноги процесса они идут. Такого вообще в коде нет. И возможно ли это ? Помогите уважаемые гуру. весь код такого плана.
|
|
|
|
|
May 27 2018, 10:58
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(gem @ May 27 2018, 08:06)  И возможно ли это ? Возможно, но я вижу только два варианта: 1) реверс-инжениринг за очень космические деньги, 2) разработка прошивки с нуля, что тоже ни разу не бесплатно. В подавляющем большинстве случаев выгоднее выбрать вариант 2. Я не шучу! Цитата Как он может выглядеть в коде дизассемблера IDA. Смотрел по кнопкам на какие ноги процесса они идут. Такого вообще в коде нет. На эти вопросы НИКТО не сумеет ответить, кроме разработчика прошивки. И то не факт ...
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 27 2018, 11:08
|
Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674

|
Цитата(Forger @ May 27 2018, 10:58)  Возможно, но я вижу только два варианта: 1) реверс-инжениринг за очень космические деньги, 2) разработка прошивки с нуля, что тоже ни разу не бесплатно.
В подавляющем большинстве случаев выгоднее выбрать вариант 2.
Я не шучу!
На эти вопросы НИКТО не сумеет ответить, кроме разработчика прошивки. И то не факт ... Допустим второй вариант, цена вопроса приблизительно от и до.
|
|
|
|
|
May 27 2018, 11:29
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Некогда когда-то, брал бинарник, прошивал его в STM32 и по нему отлаживался (как-то). Хотел поправить кое-что в прошивке ST-Link, который по сети слитый гуляет. Но не помню как отлаживал, если честно. Да и не добился нужного результата по причине отсутствия времени (а потом и желания). Мысли вслух. 1. По схеме понять, с каких GPIO считываются показания нажатий кнопок. 2. Найти все места, где происходит обращение к нужному регистру GPIO в пространстве ввода/вывода и анализировать программное окружение каждого из них. 3. Отлаживаться в железе через аппаратный отладчик, поставив условную точку останова по изменению данных подозреваемой переменной состояния нажатия кнопки (она по-любому где-то будет). 4. Profit?
P.S. Можете на Си накатать простейшую программу, скомпилировать ее, слинковать ее в .bin и потренироваться на простом примере. Там суть и поймете (при наличии светлой головы, конечно же).
|
|
|
|
|
May 27 2018, 11:30
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Эдди @ May 27 2018, 14:25)  Всяко дешевле будет, чем другие два варианта! Не факт! Например, если речь идет про крупно серийное изделие, то никто вам не продаст исходники. С другой стороны, если голая прошивка ТС досталась просто так, то велика вероятность, что и исходники вообще "валяются" на каком-нить гитхабе ))
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 27 2018, 11:37
|
Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674

|
Купить у автора, не вариант. Да еще знать бы автора. Потому как кто продает и автор, я думаю разные люди. Проще и дешевле готовое изделие купить. Вопрос, а ради чего ?) чтобы пароль поменять ?) Сомневаюсь что есть исходник в паблике, но ход мыслей понял.
Сообщение отредактировал gem - May 27 2018, 11:38
|
|
|
|
|
May 27 2018, 13:02
|
Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674

|
Цитата(Эдди @ May 27 2018, 12:25)  Есть еще третий вариант: найти автора прошивки и предложить ему заплатить за исходники. Всяко дешевле будет, чем другие два варианта! Найти бы его автора  А так я вижу что все теже на манеже, может и автор найдется.
Сообщение отредактировал gem - May 27 2018, 13:03
|
|
|
|
|
May 27 2018, 13:21
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Forger @ May 27 2018, 16:15)  А что это за девайс такой, что прошивка есть, а исходников нем? Да обычная контрактная разработка, есть железо, есть прошивка. За исходники, т.е. за возможность допиливать под себя, как правило требуют заметно больше денег, либо это оговаривается отдельно при заказе контрактной разработки. ЗЫ. Реверсировать можно, если есть опыт и куча времени, но если там автор решил чуток подзапутать, то проще новую прогу писать, как уже было сказано..
|
|
|
|
|
May 27 2018, 15:25
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Цитата(VladislavS @ May 27 2018, 19:19)  Что-то мне кажется, что спрашивать тут как на...ть нашего коллегу разработчика это как минимум неэтично, а как максимум противозаконно. Что-то мне кажется, что, судя по вопросам ТС, у него не получится свершить подобного рода злодеяние Даже если устройство и не сильно сложное, время для реверса нужно много + никаких гарантий, естественно. Ну а по деньгам - 300-400 тысяч, ТС, если предложите, возможно пару человек и заинтересуются (именно реверсом)
|
|
|
|
|
May 27 2018, 15:58
|
Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674

|
Интересно, давайте развивать. Дальше кто больше ?) Где коллега тут и кто его решил на.....ть так я и не понял. Я может знания проверяю и ищю себе хорошего программиста  Никаких гарантий и цена 300-400  ) Сами в это верите?
Сообщение отредактировал gem - May 27 2018, 16:11
|
|
|
|
|
May 27 2018, 16:42
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(Forger @ May 27 2018, 17:58)  1) реверс-инжениринг за очень космические деньги, Откуда там космические деньги? Есть схема, есть прошивка, и есть два простых варианта - сравнение с набранным кодом или какое-то ветвление при нажатии кнопок. В первом варианте несколько часов работы, во втором день-два в самом худшем случае. Вероятность попасть на третий вариант, самомодифицирующийся код - минимальна.
|
|
|
|
|
May 27 2018, 16:56
|
Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674

|
Да мне тоже интересно откуда такие ?) Автор где ?))
Сообщение отредактировал gem - May 27 2018, 16:56
|
|
|
|
|
May 27 2018, 17:21
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(gem @ May 27 2018, 19:56)  Автор где ?)) Автор поста #15 заявляет, что тут все просто ))) Так смело может заявлять только тот, кто, либо очень хорошо знаком с этой прошивкой, либо не в курсе, что прошивка - прошивке рознь: примитивный проект на голом С (или даже ASM) или толстый проект на С++. Современные компиляторы если и работают для облегчения жизни колупателей прошивок, то в самую самую последнюю очередь
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 27 2018, 19:23
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(Forger @ May 28 2018, 00:21)  Так смело может заявлять только тот, кто, либо очень хорошо знаком с этой прошивкой, либо не в курсе, что прошивка - прошивке рознь: примитивный проект на голом С (или даже ASM) или толстый проект на С++. Если вы ни разу не занимались разбором прошивок, то ничем не могу помочь. На каком бы языке не писалось, процессор выполняет инструкции последовательно. Поэтому разобраться в обработке нажатия кнопок не составляет труда, и не стоит космических денег - надо просто иметь усидчивость и знать систему команд и сам процессор. На голом си в общем-то пишется подавляющее большинство программ для Cortex-M3, так что встретить что-то другое еще надо постараться. Я уже писал что представляет самую большую сложность.
|
|
|
|
|
May 27 2018, 19:49
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(HardEgor @ May 27 2018, 22:23)  Если вы ни разу не занимались разбором прошивок, то ничем не могу помочь. Вообще, начнем с того, что разбор чужих прошивок - криминал, а разбор своих - клиника. Я не имею отношения к криминалу и не планирую. Может быть именно поэтому впервые слышу о подобной деятельности - "разбор прошивок" Ну, понимаю - доводить до ума чужой "супер" код, когда из проекта сбежали программеры или накодили всякого Г, что сами же не сумели совладать со своим творением... Цитата На каком бы языке не писалось, процессор выполняет инструкции последовательно. Поэтому разобраться в обработке нажатия кнопок не составляет труда, и не стоит космических денег Ну, спорить не стану, в детском примитивном проекте (что-нить под ардуиной) так и есть. Но такой "проект" гораздо быстрее написать с нуля. Цитата надо просто иметь усидчивость и знать систему команд и сам процессор. Вы выбрали себе направление деятельности, похоже, что-то стало получаться. Поздравляю! Новый уровень "мастерства" достигнут. Ну, так помогите ТС, коли так уверены, что все так просто  Цитата На голом си в общем-то пишется подавляющее большинство программ для Cortex-M3, так что встретить что-то другое еще надо постараться. Нда, ну тут вообще без комментариев
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 27 2018, 20:04
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(HardEgor @ May 27 2018, 19:42)  Есть схема, есть прошивка, и есть два простых варианта - сравнение с набранным кодом или какое-то ветвление при нажатии кнопок. В первом варианте несколько часов работы, во втором день-два в самом худшем случае. Вероятность попасть на третий вариант, самомодифицирующийся код - минимальна. А как Вам вероятность попасть на несколько десятков КБ кода, расшифровываемых и выполняемых в ОЗУ чем-нить типа AES по введённому с кнопок ключу? Или даже несколько таких итераций (расшифровываемых в ОЗУ оверлейных кусков кода по разным веткам алгоритма)? Не боитесь сесть в лужу не на день-два, а на гораздо больше?  Цитата(HardEgor @ May 27 2018, 22:23)  Если вы ни разу не занимались разбором прошивок, то ничем не могу помочь. На каком бы языке не писалось, процессор выполняет инструкции последовательно. Поэтому разобраться в обработке нажатия кнопок не составляет труда, и не стоит космических денег - надо просто иметь усидчивость и знать систему команд и сам процессор. Ну так объясните нам, как "обработка нажатий кнопок" поможет Вам угадать ключ, если прошивка зашифрована? Раз уж вы занимались, а мы - нет...
|
|
|
|
|
May 28 2018, 02:47
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(Forger @ May 28 2018, 02:49)  Вообще, начнем с того, что разбор чужих прошивок - криминал, а разбор своих - клиника. Т.е. аргументы кончились, началось навешивание ярлыков  Цитата(jcxz @ May 28 2018, 03:04)  А как Вам вероятность попасть на несколько десятков КБ кода, расшифровываемых и выполняемых в ОЗУ чем-нить типа AES по введённому с кнопок ключу? Или даже несколько таких итераций (расшифровываемых в ОЗУ оверлейных кусков кода по разным веткам алгоритма)? Не боитесь сесть в лужу не на день-два, а на гораздо больше? Вы наверное не внимательно читали тему, я писал что самомодифицирующийся код - отдельная проблема, но решаемая - эмуляторов сейчас под все платформы хватает, но и времени больше потребует. Цитата(jcxz @ May 28 2018, 03:04)  Ну так объясните нам, как "обработка нажатий кнопок" поможет Вам угадать ключ, если прошивка зашифрована? Раз уж вы занимались, а мы - нет...  Если зашифрована - никак. Но таких прошивок слишком мало, хотя наверняка представляют самый большой интерес
|
|
|
|
|
May 28 2018, 06:39
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Господа, вопрос не в тему. У нас тут технический форум, или бесплатный сеанс психоанализа (пациенты - HardEgor и топикстартер?).
Чуть ближе к делу. Посчитайте, пожалуйста, какая вероятность найти там самомодифицирующийся код? Особенно с учётом того, что исходный бинарник не зашифрован и (видимо) более-менее свободно распространяется?
В первом сообщении даже картинка IDA есть. И там видно, что а) IDA самостоятельно распознала почти весь (или вообще весь) код и б) программа довольно-таки линейная, высокой оптимизацией компилятора автор не пользовался. Но нет, мы будем сидеть на попе ровно и строчить послания "там может быть оооочень сложно, лучше за это не браться". Может. Но для этого надо поднять жопу и заняться анализом, причём не анализом кофейной гущи.
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
May 28 2018, 06:49
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(esaulenka @ May 28 2018, 09:39)  Господа, вопрос не в тему. Цитата ...для этого надо поднять жопу и заняться анализом, причём не анализом кофейной гущи. Самые полезные и информативные ответы как обычно прозвучали в самом начале, а далее идет треп, по теме или нет. Ничего нового. Если хотите помочь, то пишите сразу в личку ТС, ведь прошивку/схему сюда никто выкладывать не будет. А иначе - подключайтесь к ... "анализу кофейной гущи"
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 28 2018, 07:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(HardEgor @ May 28 2018, 09:51)  Спешу вас опечалить - меня это не интересует, только в качестве развлечения или личной необходимости. Если эта деятельность для Вас не профессиональная, то предположу, что в виде хобби Вам пару раз все же удалось расколупать готовые прошивки, поправив там что-то для изменения функционала. Ну и появилась естественная уверенность, что все возможно  Но еще раз повторюсь: прошивка прошивке - рознь! Более того, до сих пор от ТС не прозвучало подробностей: что за изделие, сама прошивка и схема. И именно с этого нужно начинать. Пока этого нет, так и будем часать языками (говорю за себя)
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 28 2018, 07:33
|
Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674

|
Мнения разделились значит, прошивка уже в расшифрованном виде. В том и дело что все вокруг да около, советов никто не дал. Можно или нельзя, сложно, дорого, криминал  ) Если бы понимал и мог все анилизировать сам, я бы не писал наверное сюда. Возможно знающий человек подсказал бы куда рыть.
|
|
|
|
|
May 28 2018, 09:45
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(esaulenka @ May 28 2018, 09:39)  Особенно с учётом того, что исходный бинарник не зашифрован и (видимо) более-менее свободно распространяется? Это как Вы определили? Поделитесь. Или обладаете экстрасенсорными способностями? По вышеприведённой картинке такой вывод сделать нельзя. Цитата(esaulenka @ May 28 2018, 09:39)  В первом сообщении даже картинка IDA есть. И там видно, что а) IDA самостоятельно распознала почти весь (или вообще весь) код и б) программа довольно-таки линейная, высокой оптимизацией компилятора автор не пользовался. Да Вы просто гений высасывания из пальца! Автор привёл скриншот каких-то кусков чего-то, непонятно к чему относящихся. Это может быть вообще фрагмент бутлоадера даже, а не основной прошивки. А основная прошивка лежит рядом и выглядит массивом бессмысленных чисел для IDA, так как зашифрована. Цитата(esaulenka @ May 28 2018, 09:39)  Но нет, мы будем сидеть на попе ровно и строчить послания "там может быть оооочень сложно, лучше за это не браться". Может. Но для этого надо поднять жопу и заняться анализом, причём не анализом кофейной гущи. Так последуйте своему совету и займитесь!
|
|
|
|
|
May 28 2018, 12:35
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
QUOTE (gem @ May 27 2018, 14:08)  Допустим второй вариант, цена вопроса приблизительно от и до. Да ладно Вам, нафига с нуля проектировать. Схему прибора, его руководство по эксплуатации и прилюдные заверения, что Ваши намерения чисты, как слеза ребенка, в студию - и я Вам найду эти кнопки за пару сотен мертвых президентов на кофе.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
May 29 2018, 17:59
|
Группа: Участник
Сообщений: 12
Регистрация: 27-05-18
Пользователь №: 104 674

|
Цитата(Rst7 @ May 28 2018, 13:35)  Да ладно Вам, нафига с нуля проектировать. Схему прибора, его руководство по эксплуатации и прилюдные заверения, что Ваши намерения чисты, как слеза ребенка, в студию - и я Вам найду эти кнопки за пару сотен мертвых президентов на кофе.  круто помогли, спасибо за советы кто участвовал. Видимо нет тут спецов. Одни барыги
Сообщение отредактировал gem - May 29 2018, 18:03
|
|
|
|
|
May 29 2018, 19:23
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Цитата(jcxz @ May 28 2018, 12:45)  Да Вы просто гений высасывания из пальца! Автор привёл скриншот каких-то кусков чего-то, непонятно к чему относящихся. Это может быть вообще фрагмент бутлоадера даже, а не основной прошивки. Адреса на скриншоте 0x8AXX. Конечно же, все всегда так делают - загрузчик ровно посредине флешки. Цитата(jcxz @ May 28 2018, 12:45)  А основная прошивка лежит рядом и выглядит массивом бессмысленных чисел для IDA, так как зашифрована. Почему-то эти бессмысленные числа сами собой преобразовались в команды, а из тех сложились функции. Чудеса... Цитата(jcxz @ May 28 2018, 12:45)  Так последуйте своему совету и займитесь! Спасибо за мнение. Пожалуй, с Вами диалог можно прекращать. Цитата(gem @ May 29 2018, 20:59)   круто помогли, спасибо за советы кто участвовал. Видимо нет тут спецов. Одни барыги  Бесплатный совет раз. Почитайте тему, почитайте другие сообщения авторов. Если 200$ за не очень простую работу - это "барыга-барыга", разговор можно сворачивать. Потому что без всякого шифрования может быть изрядный геморрой. Например, ключ хранится вместе с остальными 100500 настройками, доступ к нему через хитромудрый модуль чтения этих самых настроек. Или нажатия кнпок через 3 буфера прокидываются. Бесплатный совет два. Если денег нет, займитесь самообразованием. Вот недавно была статья "реверс для самых маленьких" https://habr.com/company/inforion/blog/412561/ с упором как раз в микроконтроллеры.
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|