Metalor,
Урок2. Дизассемблирование.
Пожалуй начнем ковырять прошивку. Используем полезную информацию из раздела ”Учимся Дизассемблировать прошивку”.
Первым делом нам надо получить кодовую группу CG1 из самого файла прошивки. Для разложения файла прошивки по кодовым группам используем замечательную программу Flash@Backup 3. Устанавливаем в Активном профиле свою модель телефона, заходим в раздел ”Обработка прошивок” и Выбираем файл. После обработки файла в таблице слева появится расшифровка кодовых групп по начальным и конечным адресам. Запоминаем диапазон адресов для CG1 в Hex-формате Далее сохраняем с расширением SMG. По умолчанию кодовые группы сохранятся в папку программы \Random's Developments\Flash&Backup 3\Backups. Из нашего последнего Backups извлекаем CG1. С ним и будем работать!
Итак, запускаем IDA pro и открываем сам файл *.smg: File-Open….-тип файлов: All files (*.*) – выбираем наш ****.smg. После этого появляется окошко, в котором надо указать тип процессора – Processor type. Наш выбор – ARM processors: ARMB – почти в самом верху списка. Жмём ОК и мподтверждаем изменение типа процессора. Следующее окно – ”Disassembly memory organization”. Здесь-то нам и пригодятся значения диапазона адресов CG1. Заполняем значения:
RAM:
[V] Create RAM Section
RAM Start Adress – 0x03FC0000
RAM Size - 0x40000
ROM:
[V] Create ROM section
ROM start address – начальный адрес CG1
ROM size – ИДА вычисляет сама
Input file
Loading address – начальный адрес CG1
Остальные позиции оставляем в покое и жмем ОК… Идет процесс загрузки файла в базу..Далее нас IDA предупреждает о наличии двух форматов кода: ARM и THUMB и сама предлагает нам способ определения места нахождения кода. Но мы-то не её советами будем пользоваться! ….Жмем 2 раза ОК и ожидаем загрузки списка строк всей прошивки. Что видем перед собой? А мы видем пока ещё нераспознанный закомпилированный код прошивки в виде зеленой полосы на экране. Пора запускать скрипт распознавания ARM и THUMB команд, т.е. собственно сам процесс дизассемблирования. Воспользуемся файлом скрипта THUMB Big Endian.idc из нижнего закрепления. Заходим в меню: File-IDC file и выбираем наш скриптик. Скрипт попросит ввести начальный адрес CG1. вводим в формате: ROM: нач. адрес CG1. Потом конечный адрес CG1: ROM: кон. Адрес CG1. После этого можно заниматься другими делами и не подходить к компьютеру: процесс дизассемблирования длительный, в несколько проходов – вначале идет распознавание кода (бордовые полоски), потом идет инициализация процедур (синие полоски). Потом ещё проход. Окончание процесса полного дизассемблирования можно заметить по слову ”idle” в нижнем левом углу вместо мельтешащих значений адресов. После окончания процесса дизассемблирования сохраняем нашу базу дизасма. Урок второй закончен – мы должны научиться получать на выходе рабочую базу дизассемблированной прошивки. На следующем уроке будем готовить инструментарий к работе по портированию патчей и искать смещения для патч-кодов!
это для начала сделай, потом если будут вопросы -спрашивай у тебя прошивка не продизассемблирована
Сообщение отредактировал Джуманджи - 2.10.2008, 14:26
Цитата(GALL @ 10.7.2007, 21:19)
Урок2. Дизассемблирование.
Пожалуй начнем ковырять прошивку. Используем полезную информацию из раздела ”Учимся Дизассемблировать прошивку”.
Первым делом нам надо получить кодовую группу CG1 из самого файла прошивки. Для разложения файла прошивки по кодовым группам используем замечательную программу Flash@Backup 3. Устанавливаем в Активном профиле свою модель телефона, заходим в раздел ”Обработка прошивок” и Выбираем файл. После обработки файла в таблице слева появится расшифровка кодовых групп по начальным и конечным адресам. Запоминаем диапазон адресов для CG1 в Hex-формате Далее сохраняем с расширением SMG. По умолчанию кодовые группы сохранятся в папку программы \Random's Developments\Flash&Backup 3\Backups. Из нашего последнего Backups извлекаем CG1. С ним и будем работать!
Итак, запускаем IDA pro и открываем сам файл *.smg: File-Open….-тип файлов: All files (*.*) – выбираем наш ****.smg. После этого появляется окошко, в котором надо указать тип процессора – Processor type. Наш выбор – ARM processors: ARMB – почти в самом верху списка. Жмём ОК и мподтверждаем изменение типа процессора. Следующее окно – ”Disassembly memory organization”. Здесь-то нам и пригодятся значения диапазона адресов CG1. Заполняем значения:
RAM:
[V] Create RAM Section
RAM Start Adress – 0x03FC0000
RAM Size - 0x40000
ROM:
[V] Create ROM section
ROM start address – начальный адрес CG1
ROM size – ИДА вычисляет сама
Input file
Loading address – начальный адрес CG1
Остальные позиции оставляем в покое и жмем ОК… Идет процесс загрузки файла в базу..Далее нас IDA предупреждает о наличии двух форматов кода: ARM и THUMB и сама предлагает нам способ определения места нахождения кода. Но мы-то не её советами будем пользоваться! ….Жмем 2 раза ОК и ожидаем загрузки списка строк всей прошивки. Что видем перед собой? А мы видем пока ещё нераспознанный закомпилированный код прошивки в виде зеленой полосы на экране. Пора запускать скрипт распознавания ARM и THUMB команд, т.е. собственно сам процесс дизассемблирования. Воспользуемся файлом скрипта THUMB Big Endian.idc из нижнего закрепления. Заходим в меню: File-IDC file и выбираем наш скриптик. Скрипт попросит ввести начальный адрес CG1. вводим в формате: ROM: нач. адрес CG1. Потом конечный адрес CG1: ROM: кон. Адрес CG1. После этого можно заниматься другими делами и не подходить к компьютеру: процесс дизассемблирования длительный, в несколько проходов – вначале идет распознавание кода (бордовые полоски), потом идет инициализация процедур (синие полоски). Потом ещё проход. Окончание процесса полного дизассемблирования можно заметить по слову ”idle” в нижнем левом углу вместо мельтешащих значений адресов. После окончания процесса дизассемблирования сохраняем нашу базу дизасма. Урок второй закончен – мы должны научиться получать на выходе рабочую базу дизассемблированной прошивки. На следующем уроке будем готовить инструментарий к работе по портированию патчей и искать смещения для патч-кодов!
это для начала сделай, потом если будут вопросы -спрашивай у тебя прошивка не продизассемблирована
Сообщение отредактировал Джуманджи - 2.10.2008, 14:26