это прошивка каторый зашифровано и рашифровается в памято вот данный файл http://zalil.ru/32236530 расшифровка пройсходит из этих функции CE04 переходит D4D8 - D4D0 - D384 - D354 вот только ни как не могу найти ключи тоесть таблицы 256 байт и 64 байта. расшифровка пройсходит по XOR 64 байта и по его значению пойск по 256 байтному таблице
Ну узнал я что это для принтера Самсунг. Хочешь картриджи перезаправленные юзать. Откуда ты адреса взял для команд и тип АРМ как подобрал? Действительно только для ARMB более менее IDA разумное выдает, но адреса все равно подобрать не мог, чтобы переходы внутри оставались. Почему именно АРМ?
Код (Text): AND R2, R8, #0x3F LDRB R3, [SP,R2] ; Load from Memory LDRB R2, [R7],#1 ; Load from Memory ADD R1, R1, #1 ; Rd = Op1 + Op2 EOR R2, R3, R2 ; Rd = Op1 ^ Op2 AND R2, R2, #0xFF ; Rd = Op1 & Op2 ADD R3, SP, #0x15C+var_11C ; Rd = Op1 + Op2 LDRB R2, [R3,R2] ; Load from Memory STRB R2, [R5,R8] ; Store to Memory ADD R8, R8, #1 ; Rd = Op1 + Op2 вот алгоритм шифрования
Azer У вас IDA какой версии? В 5.5 у меня ARM, ARM 710a, ARMB и два xScale. У них разные опкоды. Почему вы думаете у вас ARMB, а не xScaleB например. Есть и другие АРМы. А все равно вопрос: вы точно уверены что типа АРМ?
Это, насколько я понял, попытка понять автором алго так называемого "шифрования" кернела в прошивках принтеров. ARM9EJ-S там ядро обычно было. Берется байт и с помошью таблицы и ксора преобразуется-)
MSL Мы уже в личке это обсуждаем. Алгоритм вытащили, правда из другой программы. Но таблица завязана на саму прошивку и таблиц теперь две. Мне лень активно ковырять, а ТС очень медленно движется.
valterg да, 0х100 значений + 0x40 ( & 0x3F ) на что ксорить. 0x140 байт этих это одни и те же значения во всех старых прошивках. В новых они заметно извратили этот алгоритм и используют разные значения от прошивки к прошивке зачем-то. Просто, как я понял, человек хочет узнать как патчат прошивки эмулируя наличие crum, но понять и повторить это на других прошивках с таких уровнем знания ARM нереально, хотя кто знает зачем оно все, ибо сейчас кто это только не делает-))
yashechka Как по мне, так для меня логичней асм арма наоброт-)) Если ты про пост #15, так это мусор а не код. Еще желательно конечно указывать адрес загрузки кода в иде и не забывать про thumb режим.
MSL Я загружал эту прошивку и в AVR-отладчик и в Keil. Но увы она делает много обращений к аппаратуре, а в отличие от МИПС адреса на АРМ не стандартизованы, а в имеющехся инклюдах на разное железо они не совпадают по смыслу. Вместо UART - DMA Прошивка состоит из двух кусков: мини-загрузчик и собственно программа расшифровки и загрузки ядра. Мини-загрузчик в конце прыгает на непонятный адрес. Вход в вторую часть тоже ясно где, но все равно "допрыгать" до расшифровки не удается. Теперь конечно можно найти все это, но пока смысла нет - алгоритм прозрачный, но как его обратить? А вот на будущее придется найти алгоритм в прошивке, чтобы новую версию "опознать", когда разрабы почешутся. Это кстати , уже 3-я модификация защиты
valterg не понял про AVR-) Адреса не стандартизированы конечно, каждый производитель делает как ему удобней, у каждого свои адреса, логика работы регистров тех же уарт, нанд и пр. В софтовом симулятре, тем более для другого типа процессора с тем же ядром по-мему нереально понять логику работы железа - это надо "шагать" на живом железе в отладчике. 3-я в смысле вариантов "шифрования" применяемых в прошивках? даже интересно, но глянуть не могу - т.к. залитых файлов нет. Я делал шифровку/расшифровку для 2-х типов только...
Ну 3 с учетом варианта, когда ядро просто паковали zlib-ом. В алгоритме стоит какая-то проверка и ветвление, но т.к. у меня есть только один вариант прошивки, то оценить число разных алгоритмов не могу. Точнее у меня есть и другие варианты прошивок, но я их не смотрел.
там тогда было 1 зашита это по XOR 2зашита zlib-ом для 1 зашиты таблица была открытой а сейчас его сабирают из самаго ядра
zlib это не защита а просто упаковка. Под 2-м типом защиты я и имел в виду, что таблицы строят по определенному алго сначала до распаковки. Щас гляну прошивку - не прочитал пм сразу... upd. все там так же. распаковал кернел и залил, смотри пм.