Апр 05

Прошивка SL-M2620 (M2620D/M2820DW/M2820ND/M2625D/M2825DW/M2825ND)

ВНИМАНИЕ
Пайка и прошивка микросхем, особенно для начинающих специалистов может привести к выходу аппарата из строя!
Купить прошивку за адекватные деньги можно здесь: http://www.korotron-online.net/
2013-09-24-1657

Здравствуйте, товарищи, с вами снова я, всегда ваш, Mo-skin!

Сегодня я расскажу, как прошить аппарат из серии SL-M, не тратя на это 100500 денег, и избегая общения с надменными мчудаками из команды Лутова.

Нам понадобится: оборудование для пайки и прошивки 24C256 (аналогично Xerox 3100, можно использовать PonyProg, программатор на 2-х резисторах и чип от SCX-4200).

Поехали:

1. Снимаем боковую крышку, находим микросхему 24C256, выпаиваем и заливаем в нее дамп http://yadi.sk/d/15bQAsDILriRR

2013-09-24-1660

2. Впаиваем микруху обратно и отключаем колодку CRUM (это важно!!!)2013-09-24-1659

3. Прошиваем в принудительном режиме (вкл с зажатой кнопкой отмена (x) ) фиксом http://yadi.sk/d/Q5S5IBKjLrigg

4. Собираем аппарат, печатаем отчеты и радуемся жизни

Спасибо за внимание, пользуйтесь сервисом http://fixgen.pro

Создано по материалам обсуждения на форуме http://fix-free.info/index.php/topic,5964.msg33965.html#msg33965

 

Фев 15

Изучение прошивки на примере SCX-3200 7 версии

По многочисленным просьбам читателей пишу серию статей о формате прошивок принтеров.

Начнем, пожалуй, с самого простого, практически с начала одноаппаратных прошивок. SCX-3200. Начиная с 8 версии, производитель начал применять шифрование, здесь же простое сжатие gzip.
Итак, нам понадобится:

1. HEX-редактор, любой, удобный вам. Мне нравится Hex Editor NEO.
2. Среда программирования, с языком которой вы знакомы. Для примера будем использовать PHP DevelStudio (http://develstudio.ru/), т.к. здесь проще всего организовать упаковку/распаковку gzip.
3. IDA Pro Advanced 5.5 with Hex-Rays для дизассемблирования.

Загрузим файл в хекс-редактор:

image001

и перейдем по адресу (CTRL+G) 0x40078 (здесь и далее все адреса в шестнадцатеричном представлении)

image002

Видим сигнатуру $ZIP . Здесь и находится ядро прошивки в упакованном виде.
Следующие 4 байта 0x40080000 – адрес распаковки ядра, далее 0x001afff4 – размер упакованной части.

image003

Лирическое отступление: 2 основные части прошивки – загрузчик и ядро. Загрузчик проверяет контрольную сумму прошивки, распаковывает и запускает ядро. Здесь же находится принудительный режим и дебаг. Ядро – основная рабочая программа принтера, реализующая функции печати, взаимодействие с компьютером, сетевые протоколы и все остальные рабочие процессы аппарата.

Теперь наступило время запустить Devel Studio.
Добавим на форму кнопку и создадим для нее событие «Клик»

image004

Двойным щелчком на надписи «Клик» откроем редактор кода.

image005

С этого момента начинается программирование.
Пишем следующий код:

$fn = 'D:\test\Z501BFEZ900168X_FIX_NU_3200_v07.hd';// имя файла и путь к нему
$file = file_get_contents($fn); // считывание содержимого файла в переменную
$zip = substr($file, 0x40078+0xC, 0x1afff4); // считывание упакованного ядра без заголовка $ZIP(0xC - 12 байт)
$unzip = gzuncompress($zip); // распаковка архива
file_put_contents('D:\kernel.hd',$unzip); // сохранение распакованного ядра в файл
echo "OK!";

Компилируем и запускаем (F9), нажимаем нашу единственную кнопку. Если пути к файлам прописаны правильно, и ошибок не возникает – видим сообщение «ОК». Появившийся файл ‘D:\kernel.hd‘ и есть наше распакованное ядро.

В нем поиском можно найти серийный номер.

image006

Улыбаемся, и представляем, как эти знания еще пару лет назад могли вас значительно обогатить.

Теперь загрузим ядро в ИДУ и немножко дизассемблируем.
Выбираем процессор ARMB (big endian):

image007

Выставляем адреса, как на картинке:

image008

Далее в меню Options -> General -> Analysis ->Kernel options 1 ставим галку Make final analysis pass -> OK -> Reanalyze program
Несколько минут курим. Пока идет процесс анализа кода, скажу вам, что верить Иде на 100% нельзя, иногда она ошибочно принимает данные за код и наоборот. И довольно часто домысливает лишние конструкции, что усложняет понимание кода. Лучше запускать исследуемые функции в эмуляторе и смотреть, что происходит с регистрами и памятью. Но, все-таки, общую картину понять можно значительно быстрее с помощью Иды.

Итак, анализ закончен, серийник находится по адресу 0x400C76B0 (для перехода нажать клавишу G)

image009

Серийный номер считывается из прошивки во время выполнения 0x400C768C и передается через R0 в функцию sub_400DBF70, которая проверяет его, и в случае соответствия пишет в R0 = 0.

ROM:400C769C CMP R0, #0
Здесь сравнение R0 с нулем, собственно, то место, где изменением пары байт можно сделать многоаппаратную прошивку.

На этом пока все, ждите продолжения. Если вы не понимаете всего вышесказанного, то лезть в эту тему смысла нет – дальше ещё сложнее.

Дек 26

Восстановление ML-1661 после прошивки ML-1660. Метод Кентавра.

История болезни:

Достался по случаю принтер ML-1661. Кто и что с ним делал до меня — история умалчивает.  При включении мотор крутит, после все время горит красная лампочка системой определяется, статус монитор его видит. Если в лотке не бумаги — так и пишет: нет бумаги, если вставить бумагу и послать задание — ругается на не совместимый картридж с тонером. В картридже красный чип (1043s), пробовал его вытаскивать, вставлял новый белый чип DelCopi (от ML-1660) — все равно картридж не опознает. Тест не печатает на 10 сек и 15 сек зажимал — молчит. Лампочка при этом мигнет зеленым и опять горит красным. На плате форматтера наклейки с моделью и версией прошивки нету (есть следы клея на флеше).
Пытался залить прошивку в принудиловке по методу отсюда: http://printblog.com.ua/proshivki-samsungxerox/proshivka-samsung-ml-1661.html
Прошивка заливается, но принтер не перегружается, то есть прошивку не принимает, горит зеленый огонек и все. При этом 57 ногу заземлял и так пытался — результат одинаковый. Причем по ссылке выше там горят два диода и принтер компом не определяется, у меня же не так.
Случайно накопал оригинальную прошивку 34 от 1660 решил прошить ей — прошилось, но картридж так же не принимает. Решил ставить эксперименты дальше — залил 34 фикс прошивку — опять все прошилось, картридж стал распознаваться, то есть ругаться принтер перестал, горит зеленый диод. Уже было обрадовался, но не тут то было. При попытке печати чего угодно (будь то тест, будь то с компа), принтер начинает хватать листы, первый лист идет пустой, а второй лист он как бы начинает хватать раньше времени, даже еще когда не начал вылезать первый и, разумеется, происходит замятие. Короче стало как-бы лучше, но все равно принтер не работает. Потом залил 35 оригинальную от 1660, потом фикс от 1660, все то же самое. Пытаюсь залить переходную от 1661 для восстановления с 1660 на 1661 — не принимает и все тут. После 35 на 34 уже не понижается.

На момент, когда я включился в решение данной проблемы, в аппарате абсолютно точно сидела оригинальная прошивка ML-1660 35 версии.

Мной была создана прошивка-кентавр с головой от 1661 и телом 1660. Она успешно залилась, и после через принудительный режим удалось прошить оригиналом 1661 35 версии. После перезагрузки аппарат вышел в готовность и смог распечатать тестовый лист.

1661

Всё получилось, все довольны!

Скачать файлы (кентавр + оба оригинала) / Download files

 

Дек 21

Xerox WC3220 FIX MA v2.50.00.99

Многоаппаратная прошивка для Xerox WorkCentre 3220Генератора не будет.

Скачать / Download

 

Все действия вы совершаете на свой страх и риск, автор за возможные последствия ответственности не несет.

Аппарат имеет режим принудительного обновления ПО, оригинальная прошивка в архиве присутствует.

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

Дек 17

Fix Xerox 3210 МА V2.50.00.99

WC3210_reportСкачать / Download

Многоаппаратная прошивка для Xerox WorkCentre 3210. Протестировано. Генератора не будет.

Все действия вы совершаете на свой страх и риск, автор за возможные последствия ответственности не несет.

UPD: Подходит для версии v.2.50.00.100 (В принудительном режиме: при включении принтера с зажатой кнопкой stop, когда принтер напишет на дисплее — Press stop again нужно нажать stop еще раз — принтер напишет wait image. определится как boot device. Можно прошивать)

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

 

Дек 16

SCX-3200 понижение версии через дебаг

debug3200
pROBE+> rl
Enter Start Address[0x40100000] : 0x (здесь нажать ENTER)
Ready to download from Parallel/Usb/Serial (0x40100000)
————————-
Sams ung OTG, 2006
Link ID   : [00000000]
————————-
Drv «design ware core» USB download<HS><HS><EPB_RX 0x00000100>
Special Image is downloading(font, etc)…
-> Address is 0x40100000
 закинуть по usb дамп (прошива без первых 120 байт)
[[4194304 Bytes received]] — Complete DownloadingDo you want to debug on? Press y or Y key within 3 second !!
Compress Type        : 0xE59FF054
Binary Start Address : 0xE59FF054
Binary Size          : 0xE59F0054
Binary Source Address: 0x40100024
[ERR]Invalid Image Format. Check image!!pROBE+> fp.spi.ep 40100000 0 400000 (копирование из оперативы на флешку)
source addr = 0x40100000, dest addr = 0x00000000, length = 0x00400000

[SFLASH_InitFLASH][NG]
—————————————-
SCLK Low = 0x00000003
SCLK High = 0x00000003
PreScale = 0x00000000
Divide = 8
Serial Clock =  15625000.000000 HZ, 15.625000 MHZ
0x00004000 words — 0x00010000 bytes programmed(2 percent : 0x003F0000)
0x00004000 words — 0x00010000 bytes programmed(4 percent : 0x003E0000)
0x00004000 words — 0x00010000 bytes programmed(5 percent : 0x003D0000)
0x00004000 words — 0x00010000 bytes programmed(7 percent : 0x003C0000)
0x00004000 words — 0x00010000 bytes programmed(8 percent : 0x003B0000)
0x00004000 words — 0x00010000 bytes programmed(10 percent : 0x003A0000)
0x00004000 words — 0x00010000 bytes programmed(11 percent : 0x00390000)
0x00004000 words — 0x00010000 bytes programmed(13 percent : 0x00380000)
0x00004000 words — 0x00010000 bytes programmed(15 percent : 0x00370000)
0x00004000 words — 0x00010000 bytes programmed(16 percent : 0x00360000)
0x00004000 words — 0x00010000 bytes programmed(18 percent : 0x00350000)
0x00004000 words — 0x00010000 bytes programmed(19 percent : 0x00340000)
0x00004000 words — 0x00010000 bytes programmed(21 percent : 0x00330000)
0x00004000 words — 0x00010000 bytes programmed(22 percent : 0x00320000)
0x00004000 words — 0x00010000 bytes programmed(24 percent : 0x00310000)
0x00004000 words — 0x00010000 bytes programmed(25 percent : 0x00300000)
0x00004000 words — 0x00010000 bytes programmed(27 percent : 0x002F0000)
0x00004000 words — 0x00010000 bytes programmed(29 percent : 0x002E0000)
0x00004000 words — 0x00010000 bytes programmed(30 percent : 0x002D0000)
0x00004000 words — 0x00010000 bytes programmed(32 percent : 0x002C0000)
0x00004000 words — 0x00010000 bytes programmed(33 percent : 0x002B0000)
0x00004000 words — 0x00010000 bytes programmed(35 percent : 0x002A0000)
0x00004000 words — 0x00010000 bytes programmed(36 percent : 0x00290000)
0x00004000 words — 0x00010000 bytes programmed(38 percent : 0x00280000)
0x00004000 words — 0x00010000 bytes programmed(40 percent : 0x00270000)
0x00004000 words — 0x00010000 bytes programmed(41 percent : 0x00260000)
0x00004000 words — 0x00010000 bytes programmed(43 percent : 0x00250000)
0x00004000 words — 0x00010000 bytes programmed(44 percent : 0x00240000)
0x00004000 words — 0x00010000 bytes programmed(46 percent : 0x00230000)
0x00004000 words — 0x00010000 bytes programmed(47 percent : 0x00220000)
0x00004000 words — 0x00010000 bytes programmed(49 percent : 0x00210000)
0x00004000 words — 0x00010000 bytes programmed(50 percent : 0x00200000)
0x00004000 words — 0x00010000 bytes programmed(52 percent : 0x001F0000)
0x00004000 words — 0x00010000 bytes programmed(54 percent : 0x001E0000)
0x00004000 words — 0x00010000 bytes programmed(55 percent : 0x001D0000)
0x00004000 words — 0x00010000 bytes programmed(57 percent : 0x001C0000)
0x00004000 words — 0x00010000 bytes programmed(58 percent : 0x001B0000)
0x00004000 words — 0x00010000 bytes programmed(60 percent : 0x001A0000)
0x00004000 words — 0x00010000 bytes programmed(61 percent : 0x00190000)
0x00004000 words — 0x00010000 bytes programmed(63 percent : 0x00180000)
0x00004000 words — 0x00010000 bytes programmed(65 percent : 0x00170000)
0x00004000 words — 0x00010000 bytes programmed(66 percent : 0x00160000)
0x00004000 words — 0x00010000 bytes programmed(68 percent : 0x00150000)
0x00004000 words — 0x00010000 bytes programmed(69 percent : 0x00140000)
0x00004000 words — 0x00010000 bytes programmed(71 percent : 0x00130000)
0x00004000 words — 0x00010000 bytes programmed(72 percent : 0x00120000)
0x00004000 words — 0x00010000 bytes programmed(74 percent : 0x00110000)
0x00004000 words — 0x00010000 bytes programmed(75 percent : 0x00100000)
0x00004000 words — 0x00010000 bytes programmed(77 percent : 0x000F0000)
0x00004000 words — 0x00010000 bytes programmed(79 percent : 0x000E0000)
0x00004000 words — 0x00010000 bytes programmed(80 percent : 0x000D0000)
0x00004000 words — 0x00010000 bytes programmed(82 percent : 0x000C0000)
0x00004000 words — 0x00010000 bytes programmed(83 percent : 0x000B0000)
0x00004000 words — 0x00010000 bytes programmed(85 percent : 0x000A0000)
0x00004000 words — 0x00010000 bytes programmed(86 percent : 0x00090000)
0x00004000 words — 0x00010000 bytes programmed(88 percent : 0x00080000)
0x00004000 words — 0x00010000 bytes programmed(90 percent : 0x00070000)
0x00004000 words — 0x00010000 bytes programmed(91 percent : 0x00060000)
0x00004000 words — 0x00010000 bytes programmed(93 percent : 0x00050000)
0x00004000 words — 0x00010000 bytes programmed(94 percent : 0x00040000)
0x00004000 words — 0x00010000 bytes programmed(96 percent : 0x00030000)
0x00004000 words — 0x00010000 bytes programmed(97 percent : 0x00020000)
0x00004000 words — 0x00010000 bytes programmed(99 percent : 0x00010000)
0x00004000 words — 0x00010000 bytes programmed(100 percent : 0x00000000)
—————————————-
ulRefTimer(0xFFFFFFFF), ulCurrentTimer(0xFE81FE92)
25635.959808 ms
25.635960 s

pROBE+> reboot (перезагрузка)

pROBE+>

Boot&Mon. CheckSum OK!

[SFLASH_InitFLASH][NG]
[ WATCH DOG RESET  Booting… ]

Press any key to execute Monitor Program within 1 sec…
Kernel Data Read Start From Serial Flash
New kernel was found…

CHKSUM
{
check sum start address : 41000000, count : 001B0000
check sum : 0000A5A5
} /* Checksum End

Checksum OK!!
Kernel Data Read End
Find Compressed Kernel
Kernel UnZip Done!!
jump to 0x40080000
ramsize= 406BFFFF, gsbsize = 40501204, FreeMemPtr = 40500548, FreeMemStart = 40500548
<<< Reelase Mode >>>
<<<LogMsg_PrintOff>>>
Model Code : SCX3200
Main Kernel F/W Version : V3.00.01.08
Main Kernel F/W Date : OCT-18-2010

У меня получилось откатится с V3.00.01.13 на V3.00.01.08.

Ноя 21

ML-2160 понижение версии прошивки


Скачать файлы / Download files

Все чаще стали попадаться принтеры ML-2160/65/67 с версией прошивки V1.01.01.08, т.к. в общем доступе бесплатного решения для них нет, был разработан метод понижения прошивки до V1.01.01.05 (на который есть бесплатный фикс имени Михаила Колесова).

Итак, суть:

  1. Заливаем модифицированную оригинальную прошивку ML2160_V1.01.01.08_original_X.hd (скачать архив) , которая доработана таким образом, что позволяет прошивать версию ниже текущей.
  2. В принудительном режиме прошиваем либо оригиналом V1.01.01.05, либо сразу многоаппаратным фиксом MA_FIX_ML2160_V1.01.01.05.hd

Метод проверен на 2-х аппаратах разными людьми — результат положительный. На всякий случай, в архив вложены оригинальные прошивки Samsung пятой и восьмой версий. Как всегда, все действия вы совершаете на собственный страх и риск, автор за возможные последствия ответственности не несет. Если есть сомнения — купите фикс у фиксоделов ( группа Лутова, Коротрон) или фиксоломателей (список не прилагается, т.к. не уместится на экран 🙂 ).

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

Окт 12

Прошивка струйных принтеров Epson в бесчиповые или S22->L100, SX130->L200

Вчера принесли в ремонт Epson S22 с установленной СНПЧ. В результате диагностики оказалось, что сдохли чипы. Таким образом появилась возможность проверить функцию программы PrintHelp — превратить аппарат в бесчиповую модель.

1. Удаляем чипы.

2. Чипы удалены.

3. Вставляем блок картриджей на место.

4. Выбираем «turn chipless» и нажимаем «Выполнить». Выключаем / включаем принтер.

5. Проверяем. Печатает!

Все работает, проверял лично. Есть возможность отката. Один недостаток — пропала функция прочистки печатающей головки 🙁 Все подробности на форуме http://resetters.ru/index.php?showtopic=28542

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