Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Декомпиляция прошивки для контроллера 80c186
Форум разработчиков электроники ELECTRONIX.ru > Дополнительные разделы - Additional sections > Предлагаю работу
raynocom
Нужна декомпиляция прошивки размером 600КБ для контроллера 80с186,кто занимается реверсом пишите в пм.

Оплата достойная.
a123-flex
Цитата(raynocom @ Mar 9 2018, 15:31) *
Нужна декомпиляция прошивки размером 600КБ для контроллера 80с186,кто занимается реверсом пишите в пм.
Оплата достойная.

Достойная чего ?
smart_pic
прошивки размером 600КБ для контроллера 80с186 - если все верно , то ценник скорее всего будет адекватный размеру прошивки.
=L.A.=
Цитата(smart_pic @ Mar 10 2018, 09:47) *
прошивки размером 600КБ для контроллера 80с186 - если все верно , то ценник скорее всего будет адекватный размеру прошивки.

*
Автор программы запросит меньше sm.gif Ну а если автор "пропал" по причине неуплаты, то можно и не напрягаться.
x893
Декомпилировать то не проблема,
IDA + http://datasheets.chipdb.org/Intel/x86/801...ts/27243002.PDF

Схема есть ?
Устройство есть ?
Дальше что с мегатоннами букв делать ?
Вот тут то и понадобится сумма оплаты.
baumanets
Я бы на месте автора, если изделие ходовое, в прошивку встроил бы упаковщик,
который изменяет код, хранимый в ней, например инверсией всех битов.
В итоге, кроме кода упаковщика в лоб ничего декомпилировать не получится.
Plain
В предыдущих темах автор хотел всего лишь что-то там "отладить" — вполне возможно, что речь о замене пары байт, а теперь выясняется, что на руках у него только объектник.

И кстати, насчёт "декомпилировать" — пока не доказано обратное, бешеной собаке сто вёрст не крюк, 600 КБ в те годы можно было и на ассемблере накатать.
jcxz
Цитата(smart_pic @ Mar 10 2018, 08:47) *
прошивки размером 600КБ для контроллера 80с186 - если все верно , то ценник скорее всего будет адекватный размеру прошивки.

Ну да, только осталось узнать коэффициент адекватности: KB*K=цена. rolleyes.gif
А если прошивка на 90% состоит из картинок и таблиц?

Цитата(Plain @ Mar 10 2018, 14:28) *
И кстати, насчёт "декомпилировать" — пока не доказано обратное, бешеной собаке сто вёрст не крюк, 600 КБ в те годы можно было и на ассемблере накатать.

Глянул один свой исходник тех лет: отношение исходник/exe-шник == ~9 раз. И это с минимумом комментариев и без каких-либо таблиц констант - почти чисто мнемоники.
Думаете ~5.5 МБ реально на асме накатать? laughing.gif
Baser
Цитата(jcxz @ Mar 10 2018, 14:50) *
Глянул один свой исходник тех лет: отношение исходник/exe-шник == ~9 раз. И это с минимумом комментариев и без каких-либо таблиц констант - почти чисто мнемоники.
Думаете ~5.5 МБ реально на асме накатать? laughing.gif

Как раз таки, если программа написана на ассме, то восстановить исходный текст гораздо проще. Был опыт дизассемблирования небольшого бутлодера - вполне себе процесс понятно идет. А вот дизассемблировать программу после современного оптимизирующего компилятора Си (если Си++, то еще круче) размером 600К, я бы не стал ни за какие деньги. Ну, разве что только если оплата почасовая, а не сдельная sm.gif
jcxz
Цитата(Baser @ Mar 10 2018, 19:03) *
Как раз таки, если программа написана на ассме, то восстановить исходный текст гораздо проще. Был опыт дизассемблирования небольшого бутлодера - вполне себе процесс понятно идет. А вот дизассемблировать программу после современного оптимизирующего компилятора Си (если Си++, то еще круче) размером 600К, я бы не стал ни за какие деньги. Ну, разве что только если оплата почасовая, а не сдельная sm.gif

Хмм... видимо Вы сами не сильно много писали на асме и не видели, как на нём может быть написано. laughing.gif Опытный человек пишет (и оптимизирует) гораздо лучше любого самого оптимизирующего компилятора. И разобраться в таком высокооптимальном коде будет, имхо, гораздо сложнее, чем в результатах работы любого компилятора. Когда ты хорошо знаешь процессор, то можешь такие финты в алгоритме программы сделать, которые компилятору даже и не снились. И разобраться стороннему человеку будет в них очень сложно.
А компилятор поступает стандартно - одинаковые соглашения вызова, стандартные способы оптимизации и т.п. - более менее всё повторяется во всех функциях - имхо гораздо проще разобраться. Так как компилятор не может по своему усмотрению оптимизировать алгоритм работы программы, только код. А человек - может, и может такое завернуть в целях оптимизации, что мало не покажется. rolleyes.gif
Конечно я не говорю про декомпиляцию до уровня исходного кода на языке, на котором писался исходник, а только до асм-исходника. Но вроде ТС и не говорил ничего до получения исходного кода на языке, на котором была написана программа. Так как он даже не указал какой язык его интересует.
Как можно предположить из исходного сообщения (опять как всегда включаем экстрасенсорные способности), его интересует только исходный код на любом языке, который после компиляции его в прошивку даст результат аналогичный (по функционированию) оригиналу.

PS: А может там исходник вообще был написан на бейсике и не оптимизирован никак. Помню когда в стародавние времена компилил исходник написанный на каком-то бейсике, то результат компиляции был просто - последовательностью вызова ограниченного набора фиксированных готовых функций с передачей им аргументов. Т.е. - каждый оператор бейсика - это готовая функция в библиотеке, принимающая набор аргументов по указателям. Называлось такое насколько помню: "шитый код". И декомпилировать такое - плёвое дело.

Да и размер выходного образа после любого высокоуровневого компилятора как правило больше, чем после ассемблера (менее плотный код). Так что 600КБ после ассемблера - это совсем не то, что 600КБ после си.
AlexandrY
Цитата(Baser @ Mar 10 2018, 19:03) *
Как раз таки, если программа написана на ассме, то восстановить исходный текст гораздо проще. Был опыт дизассемблирования небольшого бутлодера - вполне себе процесс понятно идет. А вот дизассемблировать программу после современного оптимизирующего компилятора Си (если Си++, то еще круче) размером 600К, я бы не стал ни за какие деньги. Ну, разве что только если оплата почасовая, а не сдельная sm.gif

600k - это детский лепет. В одной пиратской конторе с которой мне приходилось иметь дела такую работу поручали одному хакеру на месяц. И получал тот хакер в месяц чуть больше 500 евро.

Программы на C и С++ ломать легче поскольку они оперируют строго одними и теми же шаблонами и жестко придерживаются соглашений о вызовах. IDA такие тексты чуть ли не обратно в C с легкостью преобразует.
А человек на асме пишет архаично, не соблюдает соглашений о вызовах, меняет стиль, особенно если коллективная работа, делает нерациональный код, т.е.создает больше низкоуровнего мусора.
Поэтому такой код дизассемблировать гораздо труднее.
Dog Pawlowa
Я писал для С186 на Паскале, размер 256К (2 EEPROM на 128К), было два логических устройства на плате.
Никогда бы не взялся за реверс sm.gif
a123-flex
Цитата(AlexandrY @ Mar 10 2018, 22:04) *
600k - это детский лепет. В одной пиратской конторе с которой мне приходилось иметь дела такую работу поручали одному хакеру на месяц. И получал тот хакер в месяц чуть больше 500 евро.

Я общался с ТС первый раз несколько недель назад, еще когда он искал отладчик.
Товарищ абсолютно неадекватен - я ему тогда в 5 постах объяснял, что нужно вытаскивать из ПЗУ бинарий, и дисасемблировать - дошло до него это через 3 недели.

"По поводу отладки c188.
Тут разбирались по поводу выполнения нашей задачи.
Возможно все решить и без отладки вообще.У нас есть прошивка и она не зашифрована.
Необходимо в ней найти обработчик команд,добавить в нее код для выполнения нашей команды по сценарию.
По сути проблема решается без отладки,одной прошивкой.
Протокол известен он работает в ASCII и не зашифрован."

Я предложил сделать эту работу за 200к. Парень исчез. Лично по моим ощущениям - ТС - абсолютно безграмотный неадекват, такое ощущение, что очень молодой, и совершенно не понимающий ни задачи, ни ее стоимости.

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

bb-offtopic.gif
По моим ощущениям, в электрониксе таких заказчиков примерно 50%. Поэтому мой рецепт - всякая работа должна начинаться с аванса. Отлично отсеивает.

Лет 10 назад я дисасемблировал прошивку 8-битного микроконтроллера размером то ли 12, толи 20 кб.
Правда я полностью восстанавливал алгоритм. Но помню, потратил ОЧЕНЬ много времени, вчистую, наверно больше 2 месяцев.

Цитата(AlexandrY @ Mar 10 2018, 22:04) *
600k - это детский лепет. В одной пиратской конторе с которой мне приходилось иметь дела такую работу поручали одному хакеру на месяц. И получал тот хакер в месяц чуть больше 500 евро.
А у вас не осталось контактов кого-нибудь из ваших товарищей по той конторе ?
Я так понимаю ваш пост, что вы, как и те ваши товарищи, готовы восстановить 600к бинариев 16-битного процессора за 500$ Или хотя бы за 1000$, или за 2000$ ? И за 1 месяц ?

Если это так, думаю у вас с этим парнем будет любовь, как и с 50% заказчиков этого форума - тк вы абсолютно вне конкуренции.

Цитата(jcxz @ Mar 10 2018, 16:50) *
Думаете ~5.5 МБ реально на асме накатать? laughing.gif
Все реально.
Я видел ПЛИС, прошивка которой была нарисована вручную в графических примитивах (в логике, еще в foundation), текстовый файл исходника весил 5 МБ.
Она почти всегда работала biggrin.gif

Когда размер файла увидел, глазам не поверил.
AlexandrY
Цитата(a123-flex @ Mar 10 2018, 20:47) *
А у вас не осталось контактов кого-нибудь из ваших товарищей по той конторе ?
Я так понимаю ваш пост, что вы, как и те ваши товарищи, готовы восстановить 600к бинариев 16-битного процессора за 500$ Или хотя бы за 1000$, или за 2000$ ? И за 1 месяц ?

Нет, я просто хотел напомнить, что хакеры - это низшая ступень разработчиков.
Браться за такое означает полностью потерять веру в свои силы или еще ее не иметь.

x893
А ТС сидит на берегу моря и посмеивается, смотря на упражнения в телепатии.
a123-flex
Цитата(AlexandrY @ Mar 10 2018, 22:56) *
Нет, я просто хотел напомнить, что хакеры - это низшая ступень разработчиков.
Интересно было бы услышать такое высказывание на black hat. И еще интереснее было бы посмотреть, как вас там будут разделывать как цыпленка. Среди хакеров есть как полные дегенераты, так и высочайшие профессионалы программирования. У них просто другая специализация, и то что вы хороший разработчик, вовсе не значит что вы будете гениальным хакером. Или хоть каким-то)

Цитата(AlexandrY @ Mar 10 2018, 22:56) *
Браться за такое означает полностью потерять веру в свои силы или еще ее не иметь.
нюню

Цитата(x893 @ Mar 10 2018, 23:16) *
А ТС сидит на берегу моря и посмеивается, смотря на упражнения в телепатии.
возможно. но острее от этого он не станет wink.gif

Кроме того, если вы собираетесь брать заказы, вы должны быть телепатом хотя бы настолько, чтобы уметь отличить заказчика настроенного на работу, от бесштанного пустозвона. Свое резюме в данном случае я надеюсь понятно озвучил.
baumanets
Цитата(AlexandrY @ Mar 10 2018, 21:56) *
Нет, я просто хотел напомнить, что хакеры - это низшая ступень разработчиков.
Браться за такое означает полностью потерять веру в свои силы или еще ее не иметь.


Цитата(a123-flex)
А у вас не осталось контактов кого-нибудь из ваших товарищей по той конторе ?
Я так понимаю ваш пост, что вы, как и те ваши товарищи, готовы восстановить 600к бинариев 16-битного процессора за 500$ Или хотя бы за 1000$, или за 2000$ ? И за 1 месяц ?
Нет, я просто хотел напомнить, что хакеры - это низшая ступень разработчиков.
Браться за такое означает полностью потерять веру в свои силы или еще ее не иметь.


Давным давно, в студенческие годы, когда солнце было ярче, трава зеленее, а девушки краше, дали мне преподаватели задачу.
Сказали, как хочешь, так и решай, нам нужен результат.
Я её решил через восстановление исходного кода программы другого студента, написанной на BCB 6.0.
После этого дописал, нужные по т.з. функции вычисленя хэшей и задача была решена.
С тех пор много воды утекло, программированием своего заниматься куда интересней чем исследованием чужого.
Здесь я соглашусь с AlexandrY .

Но преподаватели до окончания ВУЗа меня одного с компьютерами кафедры больше не оставляли :-)

Кстати, если следовать терминологии, хакеры - специализируются на сетях.
На взломе ПО специализируются крэкеры.
А восстанавливают код реверсеры, или реверс-инженеры.
Так, что написание кода - это стезя программиста, а восстановление - это инженерия !
a123-flex
Цитата(baumanets @ Mar 11 2018, 00:27) *
Я её решил через восстановление исходного кода программы другого студента, написанной на BCB 6.0.
После этого дописал, нужные по т.з. функции вычисленя хэшей и задача была решена.

Если честно, сам я с IDA имел дело единственный раз в жизни, тогда с 8 битником, больше нужды не было.
И чуть не умер от нее от счастья - такая она крутая и удобная для работы...
А вот любопытно, у вас IDA случаем С++ функции из ВСВ не восстанавливала ?

Я видел рекламу, в которой написано что она такое умеет, но сам такую версию не нашел blush.gif.
x893
Простенький пример полезности IDA
http://akb77.com/g/stm32/fix-jlink-ob-09262016/
baumanets
Цитата(a123-flex @ Mar 10 2018, 23:50) *
Если честно, сам я с IDA имел дело единственный раз в жизни, тогда с 8 битником, больше нужды не было.
И чуть не умер от нее от счастья - такая она крутая и удобная для работы...
А вот любопытно, у вас IDA случаем С++ функции из ВСВ не восстанавливала ?

Нет. Лет 10 назад не восстанавливала. То, что вы ждёте и сейчас в ней, скорее всего нет.
Потому, что:

Серебряной пули нет (с) Фредерик Брукс

У виндовых исполняемых файлов код с данными это половина беды.
Другая половина ресурсы: менюшки всякие, кнопки и т.д.
Для ресурсов есть свои программы. Для определения связей ресурсов и кода - свои.
С Борландом как-то попроще. Находишь точки входа обработчиков,
определяешь математические функции обычные fadd, fsub, fsin, fcos, fxch, fld , fstp
сопроцессор - по сути обычный инженерный калькулятор внутри процессора.
С интеловским компилятором и его оптимизациями код был бы не настолько читаемым.

Цитата(a123-flex @ Mar 10 2018, 23:50) *
Я видел рекламу, в которой написано что она такое умеет, но сам такую версию не нашел blush.gif .

Это версия с плагином Hex Rays, анализ облегчает, но без кропотливой ручной работы не соберётся и не заработает.
Начали выпускать, по-моему в 2008-м.
a123-flex
Цитата(x893 @ Mar 11 2018, 01:48) *
Простенький пример полезности IDA
http://akb77.com/g/stm32/fix-jlink-ob-09262016/

она прекрасная rolleyes.gif

Цитата(baumanets @ Mar 11 2018, 02:06) *
Начали выпускать, по-моему в 2008-м.
Цитата(baumanets @ Mar 11 2018, 02:06) *
Нет. Лет 10 назад не восстанавливала.

здесь нет противоречия ?)

Цитата(baumanets @ Mar 11 2018, 02:06) *
Это версия с плагином Hex Rays, анализ облегчает, но без кропотливой ручной работы не соберётся и не заработает.
Точно HexRays.
Кто спорит. Но анализ - то проще раз в 1000, не так ли - не шариться в системных вызовах, а сразу разглядывать user function ?)
baumanets
Цитата(a123-flex @ Mar 11 2018, 01:52) *
она прекрасная



Никак на женский образ запал? biggrin.gif

Анализ стандартного неоптимизированного кода проще.
Оптимизированного - уже нет.
Ассемблерного - тем более.
Я скармливал иде программу, написанную на масме и уже hex rays затыкался.
Всё, что описано на диалектах microsoft, borland, gnu и др. общеизвестных авторы поддерживают.
Всё остальное - нет.
Но это только для x86-х.
А простые проги PIC16F84 дизассемблировал руками, IDA косячила.
Потом написал движок дизасма, чисто ради интереса.

Вывод таков, если софт написан на чём-то магистральном на котором пишут миллионы - анализировать проще.
Если какой-то редкий компилятор, то скорее всего плагинов к иде под него не будет или будет косячный,
как с первыми версиями PIC-ов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.