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

Декодирование Хекса


Рекомендуемые сообщения

Добрый вечер!

Есть небольшая проблемка. Нужно вернуть обратно в нормальное состояние программу из контролера.

Мне нужно изменить параметры работы контролера. Я могу прочитать его, стереть или перезаписать с помощью нехитрого программатора на нескольких деталях. Но не могу декодировать текст программы, чтобы понять в каком месте нужно менять параметры. Видно только в таком виде:

0х000 АА ТТ ММ 6П

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

Слава антисионистам Владимиру Путину и Владимиру Квачкову!

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

Вручную ...

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

Учение - изучение правил. Опыт - изучение исключений.

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

вероятно, программа - IdaPro

нужно выбрать правильное семейство процессоров, для которых написана прошивка

а отличить данные от кода можно, если примерно известны адреса портов и действия программы, например в часах будет где-то выполняться сравнение с 59 или 60, в календаре с 24, 30, 31 - или умножение/деление на характерные числа

кроме того, можно случайно встретить в коде кусок популярной рантайм-библииотеки (вывод на ЖКИ и тп) и отталкиваться в анализе от этого.

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Ищи дизассемблер, для твоего МК.

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

Если над ним поработать, то разобраться можно.

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я не готов к таким сложностям. Скажите прямо, можно ли в простом частотометре на PIC поменять два параметра?

Вместо 10.7 нужно поставить 6.5 и проверить почему эта цифра не вычитается из анализируемого сигнала, тогда как другая (0.465) вычитается нормально.

Вот как выглядит текст программы:

:10002760B1278307EE248734E374E234B93484241D

И таких строчек около сотни.

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

Слава антисионистам Владимиру Путину и Владимиру Квачкову!

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Ох и ленивый народ пошел нынче. Да найди ты просто исходник этого частотомера, или свяжись с автором по поводу этого вопроса, может поведение программы вполне нормальное. Насколько я помню, частота которую надо вычитать задается перемычками, или в режиме "обучения" - когда подаешь эту частоту на вход частотомера и кратковременно ставишь какую-то перемычку. В любом случае, выяснять эти вопросы по дампу прошивки - слишком сложное занятие и безперспективное. К тому же, хочешь переложить работу на чужие плечи. Гораздо проще найти эту статью или страничку и посмотреть описание прошивки или работу частотомера в целом.

Учение - изучение правил. Опыт - изучение исключений.

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

Каков процесс создания устройства? На каком языке пишется начальная программа?

Глючит ваш Ic-prog, причем глючит конкретно. В чем бы причину обнаружить?

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

Слава антисионистам Владимиру Путину и Владимиру Квачкову!

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

Причину чего?

Каков процесс создания устройства?

Сначала постановка задачи, потом поиск аналогичных или похожих устройств, выбор аппаратной платформы и т.д.

На каком языке пишется начальная программа?

На ассемблере, С, и еще пару малораспространенных языков.

Учение - изучение правил. Опыт - изучение исключений.

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

Где скачать хороший ассемблер для PIC?

Что-то MPLAB не хочет с JDM программатором работать...

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

Слава антисионистам Владимиру Путину и Владимиру Квачкову!

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

А причем тут ассемблер? Программируй себе отдельно... не обязательно прямо с МПлаба.

Учение - изучение правил. Опыт - изучение исключений.

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

Ну и как интересно я буду программировать отдельно? Нужна же оболочка, в чём программу редактировать(или писать), а потом компилировать и сделать хекс по-новой. И только после этого зашить через Winpic800 в микросхему.

(MPLAB мне нне годится, он только для программаторов, которые производит Microchip или совместимых.)

Слава антисионистам Владимиру Путину и Владимиру Квачкову!

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

Где скачать хороший ассемблер для PIC?

Что-то MPLAB не хочет с JDM программатором работать...

Ассемблер для PIC не нужно скачивать. Он штатно входит в состав среды разработки (MPLAB).

Для написания программ 10...18-х ПИКов используют MPASM компилятор с ассемблера, а для 24-х и дсПИКов - ASM30.

Все эти компиляторы входят в состав МПЛАБа. Так же в состав МПЛАБа входит Си компилятор для 32-х ПИКов.

Дополнительно интегрируются Си компиляторы для 10-х...18-х, 24-х...дсПИКов. А также компиляторы разных производителей.

Результатом работы среды является ХЕКС.

Прошивать контроллеры можно в любой подходящей оболочке. Совсем не обязательно в МПЛАБе.

Про дизассемблирование.

Это пустая бестолковая работа. Трудоемкость дизассемблирования для более-менее серьезных проектов многократно превышает

трудоемкость написания своего кода по известному функционалу устройства.

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

Дизассемблирование асм-кода (в смысле написаного исходно на асме) несколько проще, но все равно требует высокой квалификации и уйму времени.

Хоть бы даже и одну цифру сменить...

戦う前に相手のベルトの色に注目

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

Нужна же оболочка, в чём программу редактировать(или писать), а потом компилировать и сделать хекс по-новой. И только после этого зашить через Winpic800

Jболочка к программатору не имеет никакого отношения. MPlab автоматически генерирует HEX когда нажимаешь кнопку F10 и нет синтаксических ошибок.

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

Учение - изучение правил. Опыт - изучение исключений.

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

Про дизассемблирование.

Это пустая бестолковая работа. Трудоемкость дизассемблирования для более-менее серьезных проектов многократно превышает

трудоемкость написания своего кода по известному функционалу устройства.

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

Дизассемблирование асм-кода (в смысле написаного исходно на асме) несколько проще, но все равно требует высокой квалификации и уйму времени.

Хоть бы даже и одну цифру сменить...

категорически несогласен.

лет десять назад я написал автоматический дизассемблер для Win32 программ, и "пост-процессор наоборот", т.е. программу для свертки ассемблерных конструкций обратно в Си.

даже журнал Хакер обозревал дизасм.

для множества приложений элементарно (подчеркиваю) выдрать некий ключевой кусок скомпилированного в бинарник алгоритма и тупо вставить в свой код как подпрограмму.

это трудоемко, но это оплачивается :)

рекомендую полюбопытствовать поиском в гугле на тему IDApro - есть вполне сформировавшийся рынок реверсеров, и не только криминальных, но и восстанавливающих исходники легально утраченных программ (например, после пожара в дата-центре)

более того, в Иде есть т.н. flirt - технология распознавания рантайм-библиотек по сигнатурам заголовков функций, и именно сишные (паскаля и т.п.) высокоуровневые куски кода облегчают анализ хоть программы, хоть драйвера, хоть прошивки.

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

в данном случае автору нужно хотя бы поискать свои эти константы в скомпилированной прошивке, везение еще никто не отменял :)

а квалификация она сама нарастет постепенно, если этим заниматься регулярно

прошу извинить за офтоп.

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

Оригинально, из-за одной цифры дизасемблировать прошивку, тогда как она вовсе не утрачена - достаточно найти эту схему в интернете, и получить исходник и описание её работы. Подозреваю что "не работает" просто от незнания каким образом оно ДОЛЖНО работать. Поиск констант в этом врятли поможет - константы в памяти может и не быть, а она верней всего располагается в EEPROM, где по умолчанию(или случайно) под них забиты нули. А само значение туда заносится методом измерения образцовой частоты при определенно выставленных перемычках на схеме.

Учение - изучение правил. Опыт - изучение исключений.

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

Да уж...

К МК лучше на пушечный выстрел не подходить, судя ответам. Но все-таки манит процессор своей изящной архитектурой и загадочными машинными кодами :)

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

По поводу МПЛаб, никак не врубаюсь в ЭТО. Бред какой-то... Я знаком с програмной средой Паскаля, Бейсика, видел однажды Си, показали мне и Делфи на примере простой программы. Но этот МПЛаб...

Как в нем открыть асм, как проверить на ошибки текст, как завести программу через копи/паст чтобы она принялась и стала активной, как скомпилировать хекс. Я, как обезьяна, перенажимал все кнопки, даже прочел в нете инструкцию, результата никакого.

Не принимает мой мозг МПЛаб. Или я что-то делаю не так.

А мне всего-то надо открыть файл исходника, найти в нем нужные строчки (чувствую это самое сложное) и отредактировать их. В нотепаде я уже открывал, но там все одним цветом - путается всё.

Вдарьте мня па галаве :)

Слава антисионистам Владимиру Путину и Владимиру Квачкову!

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

ды лехко...

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

Feel the difference! ©

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

Сомнительно, что Вы читали мануал на МПЛАБ...

Для работы в этой среде нужно КОРРЕКТНО собрать проект. Без этого ничего работать не будет.

Для формирования проекта нужно запустить визард (в меню МПЛАБа - Project-Wizard)

Выбрать контроллер, определить имена и пути файлов проекта, выбрать компилятор (по умолчанию предлагается асм для выбранного контроллера), определить хедер-файл для проекта (файл базовых определений) и наконец написать исходный АСМ-листинг (собственно программу на ассемблере). Этот листинг тоже включить в проект в окне проекта в МПЛАБе.

Достаточно простая и интуитивно понятная процедура. Если конечно спокойно прочитать мануал...

Набор команд у ПИКов достаточно маленький. Он мало отличается по архитектуре от других ассемблеров.

1. Команды арифметики, булева алгебра.

2. Команды перемещения переменных и констант.

3. Битные команды.

4. Команды управления исполнением (ветвления, переходы и вызовы).

Плюс к этому типы адресаций. Достаточно простые.

Так что ничего таинственного нет.

Распределение адресов следует из даташита на конкретный контроллер. Но все контроллеры одного семейства практически не отличаются по структуре памяти.

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

Проще написать собственную прошивку.

戦う前に相手のベルトの色に注目

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

надо указать путь к файлу P16F628.INC либо найти его в недрах папки с MPLAB и положить рядом с проектом.

Учение - изучение правил. Опыт - изучение исключений.

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

категорически несогласен.

лет десять назад я написал автоматический дизассемблер для Win32 программ, и "пост-процессор наоборот", т.е. программу для свертки ассемблерных конструкций обратно в Си.

даже журнал Хакер обозревал дизасм.

.................

................

а квалификация она сама нарастет постепенно, если этим заниматься регулярно

прошу извинить за офтоп.

Насчет оффтопа полностью согласен. Комментарий вообще не об обсуждаемой проблеме.

Речь идет о микроконтроллерах.

Несмотря на внешнюю схожесть методов и инструментов, это совершенно иная среда, проблемы и инструментарий.

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

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

Я могу для эксперимента дать несложный Си скомпилированный код для 16-го ПИКа. Попробуйте...

Я могу поспорить, что даже не уловите смысл алгоритма...

для хоть каких то рациональных движений в этом направлении нужно блестяще знать архитектуру целевого контроллера и до мелочей разобрать примененный компилятор. И все это в условиях незнания даже языка компилятора...

Так что именно ОФФТОП...

戦う前に相手のベルトの色に注目

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

коли пошла такая пьянка, позволю и себе немного офтопа.

Не стоит заниматься полной декомпиляцией - это задача требует значительных усилий Вспоминается лишь байка про ДЕМОС, один из создателей которой дизассемблировал, а потом вручную восстановил исходный текст на Си ядра юникс (BSD???). Для того, чтобы подправить пару байт (а этого и требуется в большинстве случаев), достаточно знать архитектуру микропроцессора и ассемблер под нее. Что-то мне подсказывает, что топикстартер обладает пока еще недостаточными знаниями, чтобы ковырять чужую прошивку. А те, кто обладают - не возьмутся как минимум в связи с отсутствием материальной заинтересованности.

mil_alex, респект.

Я могу для эксперимента дать несложный Си скомпилированный код для 16-го ПИКа. Попробуйте...

и фотографию печатной платы, чтобы схему восстановить :)

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

........и фотографию печатной платы, чтобы схему восстановить :)

....желаете поупражняться?

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

Рискуете сударь...

:rolleyes:

戦う前に相手のベルトの色に注目

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

Смайлик в конце моей фразы не просто так стоял.

Мой опыт разработки устройств на Pic - чуть больше нуля. На AVR - чуточку побольше. А соваться, имея практически нулевые знания, простите, не буду.

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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