eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: Fiora
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› вопрос для знатоков IDA PRO
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Статус: Участник

Создано: 15 мая 2008 09:45 · Поправил: at0s New!
Цитата · Личное сообщение · #1

Есть образ с ПЗУ, проц 80С188 - это тоже самое что и 80188/80186
1.
IDA неправильно расставляет JMP и CALL, например
seg000:200D3 jbe short near ptr unk_200D9 ; здесь должно стоять jbe loc_200d9
seg000:200D5 xor ax, ax
seg000:200D7 pop bp
seg000:200D8 retn
seg000:200D9 ; ---------------------------------------------------------------------------
seg000:200D9 mov ax, ds:0Eh ; здесь loc_200d9:
seg000:200DC les bx, ds:4
seg000:200E0 sub ax, es:[bx]
seg000:200E3 add ds:0Ch, ax
seg000:200E7 mov al, 0FFh
seg000:200E9 pop bp
seg000:200EA retn
seg000:200EA sub_20082 endp

а unk_200D9 просто адрес в памяти, т.е. адрес 200D9 высчитывает правильно, но метку не ставит
то же самое с CALL- ами
Как заставить эту прогу сделать правилный листинг
2. сегменты: при любом проце (и 8086 и 286) сегменты 32-х битные (200E9 > 0xFFFFh), перебрал все опции - не помогает
как заставить его сегментировать на 16 битные сегменты ?


Ранг: 1014.5 (!!!!)
Статус: Участник

Создано: 15 мая 2008 09:59 New!
Цитата · Личное сообщение · #2

при загрузке образа IDA спрашивает какой сегмент программы? 16/32 ?
спрашивает если
- не распознает формат файла
- видит в заголовке формат 16
итд


Ранг: 520.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 15 мая 2008 10:32 New!
Цитата · Личное сообщение · #3

уже бы давно выложил образ, а то в двух топах одно и то-же (приходится лечить по фотографии)

Ранг: 2.0 (гость)
Статус: Участник

Создано: 15 мая 2008 10:39 New!
Цитата · Личное сообщение · #4

спрашивает
the loaded binary file can be disassmbled in 2 modes
1. 16 bit mode
1. 32
do you want disasm. as 32
отвечаю нет, не находит точку входа, предлагает самому (фигня)
и выдает
seg000:0000 ; File Name : C:\dizasm\m27c4001.bin
seg000:0000 ; Format : Binary file
seg000:0000 ; Base Address: 0000h Range: 0000h - 80000h Loaded length: 80000h
seg000:0000
seg000:0000 .8086
seg000:0000 .model flat

Ранг: 2.0 (гость)
Статус: Участник

Создано: 15 мая 2008 10:58 New!
Цитата · Личное сообщение · #5

ОКОВ

>Alt+S - change segment attributes
>- (x) 16-bit segment
>- ( ) 32-bit segment
seg000 00000000 00080000 ? ? ? . . byte 0001 public 16 0000 0000 0000
он так и принимает, но это не помогает

Ранг: 310.8 (мудрец)
Статус: Участник

Создано: 15 мая 2008 11:49 New!
Цитата · Личное сообщение · #6

at0s У тебя образ больше 64 Кб. Значит, либо должны определится(быть определены) сегменты, либо все-таки сегменты(адресация) 32-битные. Судя по 1 посту - 32-битные. Почему ? Надо смотреть начало. Точка входа в бинари задается вручную : выходишь на адрес(в БИОС-е например где-то в конце) и тюкаешь "С" - превратить в код. Далее либо все раскодируется, либо придется искать остальное.
Не надейся что ИДА все сама сделает. Даже на экзешниках приходится долго "рихтовать".
ПЗУ - все в твоих руках, ИДА только дерево вызовов строит, если ты правильно задал адрес загрузки ПЗУ и адрес входа. В любом другом случае построит "ахинею". Возможно у тебя вообще смесь : есть boot-блок в реал режиме, а все остальное 32-протектед.

Ранг: 38.6 (посетитель)
Статус: Участник

Создано: 15 мая 2008 16:04 New!
Цитата · Личное сообщение · #7

at0s
Провой кнопкой мышы на unk_200D9 нажимал?!

Ранг: 56.9 (постоянный)
Статус: Участник

Создано: 16 мая 2008 03:59 New!
Цитата · Личное сообщение · #8

Порежь на сегменты по 64К или меньше (Edit-Segments-Create Segment).
 eXeL@B —› Основной форум —› вопрос для знатоков IDA PRO

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS