Чем преобразовать такой Hex формат в BIN

Не нашел ничего, чем бы мог преобразовать такой Hex формат (файл прилагается) в BIN-арник.
Сам файл это программатором снятый образ HP Smart Array P400 контроллера для серверов от HP.
Пробовал и Hex2Bin и Mot2Bin - ничего его не берет.
По файлу видно, что ве записи размером 3А и если подставлять ASCII в HEX с перестановками соседних байт, то получаем осмысленный текст.
Может кто сталкивался с подобным, подскажите чем его взять можно (конвентировать)
Файл прошивки прилагается (первые 64 кб из 20Мб) для примера.
Из него по идее должен получиться 4 МБ бинарник.

ВложениеРазмер
29lv320_.bin64 КБ

Да, микросхема в которой все это содержится MX29LV320CTTI 90G

Аватар пользователя Root

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

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Да, флешка работает в двух режимах 8-битном, и в 16-битном.
Программатор, к сожалению ничего другого не предлагает, У меня XelteK 3000U.
Посмотрел внимательнее на файл, формат таков -- 58 байт в HEX формате, затем то же самое 19 байт только в ASCII формате и так далее.

pdf1.alldatasheet.com/datasheet-pdf/view/143146/MCNIX/MX29LV320CTTC-90G.html


ссылка на микрухуесли что

Выкладываю мануал на микруху, но там о формате прошивки я ничего нее нашел

ВложениеРазмер
MX29LV320CTTC-90G.pdf 768.82 КБ

var
  f_in: file of byte;
  f_out: file;
  symb, bbyte: byte;
  i: integer;
  addr, a_ch, f_pos: longint;
  buf: array [0..$0F] of byte;

label
  Next, Exit_all;

begin
  assign(f_in,'in.bin');
  assign(f_out,'out.bin');
  reset(f_in);  
  if IOResult<>0
    then goto Exit_all;
  rewrite(f_out,16);
  if IOResult<>0
    then goto Exit_all;
  addr:=0;
Next:
  a_ch:=$FFFFFFFF;
  f_pos:=filepos(f_in);
  for i:=0 to 7 do
    begin
      read(f_in,symb);
      if IOResult<>0
        then goto Exit_all;
      if ((symb>$2F) and (symb<$3A))
        then symb:=symb-$30
        else if ((symb>$40) and (symb<$47))
          then symb:=symb-$37
          else goto Next;
      a_ch:=(a_ch shl 4) or symb;
    end;
  if a_ch<>addr
    then
      begin
        seek(f_in,f_pos+1);
        goto Next;
      end;
  read(f_in,symb);
  read(f_in,symb);
  for i:=0 to $0F do
    begin
      bbyte:=0;
      read(f_in,symb);
      if ((symb>$2F) and (symb<$3A))
        then symb:=symb-$30
        else if ((symb>$40) and (symb<$47))
          then symb:=symb-$37
          else goto Exit_all;
      bbyte:=(bbyte shl 4) or symb;
      read(f_in,symb);
      if ((symb>$2F) and (symb<$3A))
        then symb:=symb-$30
        else if ((symb>$40) and (symb<$47))
          then symb:=symb-$37
          else goto Exit_all;
      bbyte:=(bbyte shl 4) or symb;
      read(f_in,symb);
      buf[i]:=bbyte;
    end;
  blockwrite(f_out,buf,1);
  addr:=addr+$10;
  goto Next;
Exit_all:
  close(f_in);
  close(f_out);
end.

Пасквиль.

Входной файл - in.bin, выходной файл - out.bin.
А программатору, который сливает в файл такой мусор, нужно было еще во младенчестве засунуть паяльник на 100 Вт поглубже и провернуть:D. Задача бы решалась намного проще, если хотя бы чистые бинарные данные (которые там тоже присутствуют) не разбавлялись случайными переводами каретки (т.е. вместо 0A --> 0D 0A).

Аватар пользователя Root

солидарен с maco. Программатор должен давать возможность сохранять в обычный бинарный файл. Идентичному содержимому считываемой микросхемы. Но от Хелтека такой подляны не ожидал. Уверен в стандартном наборе ПО программатора есть возможность конвертации...

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

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

Спасибо за советы!!!

Результат желательно проверять глазами, т.к. я мог учесть не все особенности извращенной логики этого программатора:).

ВложениеРазмер
decode.exe 3.14 КБ

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей