Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Листинг прошивки чипа 508RP

У меня лапки Мастер (1648), открыт 5 часов назад
На принтере Canon mg2540s имеется чип 508RP на котором хитрый тайваньский производитель искусственно ограничивает объём печатаемых листов в 2000 страниц. После чего принтер уходит в блок.
Помогите разобрать листинг программы прошивки этого чипа, чтобы найти где именно в программе стоит это ограничение:

void __convention("regparm") sub_1(char* arg1)
{
*(arg1 * 2) -= 0x7e;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
}

void __convention("regparm") sub_4f(char* arg1, char* arg2, int32_t* arg3, int32_t arg4 @ ebp) __noreturn
{
int32_t var_4 = *arg3;
*arg3[1] |= *(&var_4 + (arg4 << 1));
*0x6262ec = arg1;
*arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg1 += arg1;
*arg2 += arg2;
arg2[0xac6c2ce2] += 0x6c;
breakpoint();
}
Дополнен 5 часов назад
Программа прошивки заключена в обычный bin файл
2 ответа
waffen cc Мастер (1419) 5 часов назад
ищи в прошивке сравнения с 0x7D0 (2000 в hex), это скорее всего лимит. либо ищи функции, которые вызывают блокировку принтера. если не уверен, используй IDA Pro или Ghidra, чтобы проанализировать весь код. либо найди спеца по реверсу, чтобы не сломать чип. удачи.
У меня лапкиМастер (1648) 4 часа назад
IDA использую впервые и не разбираюсь в ассемблере:

Segment type: Pure code

seg000 segment byte public 'CODE' use64

assume cs:seg000

assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing

dq 0FC82C5C6C3FFFFh, 0Ch, 2 dup(0)
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
У меня лапкиМастер (1648) 4 часа назад
db 0C6h ; ¦



dw 82C5h, 0FCh, 0FFFFh



db 0FFh



db 0CAh, 6 dup(0FFh)



db 1



db 0E9h, 2 dup(40h), 0C4h, 30h, 2 dup(0FFh)



dq 0FFFFFFFFFFFFFFFFh, 0FFFF30C44040E901h, 0FFFFFFFFFFFFFFFFh



dq 6262ECA26C2C0A31h, 3800h, 0



dq 0E282821200000000h, 0CC6CAC6C2Ch, 806217401040C0h, 80A202h



dq 3 dup(0)



db 31h ; 1



db 0Ah



dw 6C2Ch, 0ECA2h, 6262h



dq 3800h, 0



dq 0E282821200000000h, 0CC6CAC6C2Ch, 806217401040C0h, 80A202h
У меня лапкиМастер (1648) 4 часа назад
dq 3 dup(0)
db 92h ; Т
db 19h, 6 dup(0)
dq 60D800000000h, 0C9h, 607500000000h, 0FFFFFFFF00000000h
dq 1992h, 60D800000000h, 0C9h, 607500000000h, 0FFFFFFFF00000000h
dq 0FC00000E2B45BEBh, 0D311785FB513C20Ah, 0B0801274A1E06Eh

dq 101BBBB00100030h, 1200000012h, 0C024CC00C024CC00h, 0FF7DFF7D00000000h

dq 0

dq 3C3C00FF00000000h, 3C3C3Ch, 3C3C000000000000h, 0
dq 0FFFFFFFFFFFFFFFFh, 0FC00000E2B45BEBh, 0D311785FB513C20Ah
dq 0B0801274A1E06Eh, 101BBBB00100030h, 1200000012h, 0C024CC00C024CC00h
У меня лапкиМастер (1648) 4 часа назад
dq 0FF7DFF7D00000000h, 0

dq 3C3C00FF00000000h, 3C3C3Ch, 3C3C000000000000h, 0

dq 0FFFFFFFFFFFFFFFFh, 8C4C000010612BBAh, 0FFFF0C0CEC0C0C0Ch

dq 65C5h, 2 dup(0)

dq 8000800000h, 14h dup(0)

dq 0FF0000000000h, 22h dup(0)

dq 0FFFFFFFF00000000h



ends



end
Voldemar Гений (59028) 5 часов назад
В самой прошивке НЕТ никаких ограничений! Эти струйники работают ГОДАМИ. Есть ограничения на количество краскооттисков на одну заправку картриджа и хранится эта информация в ПЗУ самого картриджа, каждого цвета.
У меня лапкиМастер (1648) 4 часа назад
Есть там ограничения и именно в самом чипе. Потому как его замена перепйкой на аналогичный со сброшенным счётчиком или перезалив прошивки с помощью программатора решают эту проблему. Но хотелось бы не дёргаться каждый раз, а сразу указать в программе значительно больший объём
Похожие вопросы