Сейчас на форуме: Rio, vsv1, site-pro (+8 невидимых)

 eXeL@B —› Софт, инструменты —› Селектор в IDA (old DOS school)
Посл.ответ Сообщение

Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 21 мая 2013 22:27 · Поправил: MeteO
· Личное сообщение · #1

Ковыряю старую софтину под DOS16/M (dos-экстендер). Столкнулся с тем, что при создании сегмента не задать его значение в виде селектора.

пример

Code:
  1. seg_0C8h:0000            ;Segment type: Pure code
  2. seg_0C8h:0000             seg_0C8h segment byte public 'CODE' use16
  3. seg_0C8h:0000            assume cs:seg_0C8h
  4. seg_0C8h:0000            assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
  5. seg_0C8h:0000 1E        push    ds
  6. seg_0C8h:0001 06        push    es
  7. seg_0C8h:0002 56        push    si
  8. seg_0C8h:0003 57        push    di
  9. seg_0C8h:0004 9A 36 00 C8 00     call    0C8h:36h
  10.  


Вопрос, как IDA дать понять что числовое значение seg_0C8h = C8h?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 21 мая 2013 23:03 · Поправил: reversecode
· Личное сообщение · #2

ну если в лоб не разбираясь
я бы скачал 6.4 демо и перепроверил

экстендер отцепили? или вместе с ним разбираете?)




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 21 мая 2013 23:07 · Поправил: reversecode
· Личное сообщение · #3

-
когда уже склеивание постов для всех?)



Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 21 мая 2013 23:44 · Поправил: MeteO
· Личное сообщение · #4

Конечно отцеплен.

Все .EXP файлы отцеплены, Ваткомовской утилитой задампил все селекторы и длины сегментов, осталось понять как ИДУ научить понимать что селектор есть тот самый сегмент.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 21 мая 2013 23:50
· Личное сообщение · #5

я чего то не понял а зачем что то дампить?
после отцепки LE отоично всегда понимался
какая версия иды?



Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 22 мая 2013 00:13
· Личное сообщение · #6

Там не LE-формат, там .EXP (хидер начинается с BW)




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 мая 2013 00:28
· Личное сообщение · #7

так вы просто бин файлы секций отдельно пытаетесь грузить?
а если при загрузке указывать сегмент?



Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 22 мая 2013 00:48
· Личное сообщение · #8

Так там этих сегментов 152 штуки. Вопрос заключается в том, как ИДЕ сказать, к примеру в конструкции
seg_0C8h:0004 9A 36 00 C8 00 call 0C8h:36h

что этот far call селектора C8 есть вызов сегмента C8. Иными словами как запихать этот сегмент C8 по адресу C80000?



Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 22 мая 2013 00:54
· Личное сообщение · #9

Имеем такую картинку:

Code:
  1. GDT selectors:
  2.                                  Size in    Size in
  3. Sel #    Access    File offset   File       Memory     DPL    Present    Flags
  4. -----    ------    -----------   -------    -------    ---    -------    -----
  5. 0080      ER         012AC0       00310      00310     0         1       
  6. 0088      ER         012DD0       00000      00000     0         1       Z
  7. 0090      ER         012DD0       00000      00000     0         1       Z
  8. 0098      ER         012DD0       00000      00000     0         1       Z
  9. 00A0      ER         012DD0       00000      00000     0         1       Z
  10. 00A8      ER         012DD0       02150      02150     0         1       
  11. 00B0      ER         014F20       00000      00000     0         1       Z
  12. 00B8      ER         014F20       00000      00000     0         1       Z
  13. 00C0      ER         014F20       00000      00000     0         1       Z
  14. 00C8      ER         014F20       08FD0      08FD0     0         1       
  15. 00D0      ER         01DEF0       00090      00090     0         1       
  16. 00D8      ER         01DF80       00000      00000     0         1       Z
  17. 00E0      ER         01DF80       02F90      02F90     0         1       
  18. 00E8      ER         020F10       00AD0      00AD0     0         1       
  19. 00F0      ER         0219E0       01E40      01E40     0         1       
  20. 00F8      ER         023820       06790      06790     0         1       


Имеем селектор E8 в GDT, он описывает область памяти E8:0000 с длиной AD0, в файле со смещения 020F10. Есть селектор F0, он описывает область памяти F0:0000 с длиной 1E40.

00E8 ER 020F10 00AD0 00AD0 0 1
00F0 ER 0219E0 01E40 01E40 0 1

Как распихать IDC-шным скриптом эти cегменты?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 мая 2013 01:05
· Личное сообщение · #10

когда загружаете бинарник там спраш вается по какому сегменту его грузить и смещению


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

в сдк есть примеры на си
а на питоне есть в самой иде примеры модулей помоему



Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 22 мая 2013 01:38
· Личное сообщение · #11

так там этих сегментов до одури. Ох, как неохота лоадер свой писать, мало ли можно было бы малой кровью обойтись (((



Ранг: 58.0 (постоянный), 13thx
Активность: 0.020.01
Статус: Участник

Создано: 22 мая 2013 03:16
· Личное сообщение · #12

Вроде ж в иде есть EXP loader. Даже с исходником в сдк.



Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 22 мая 2013 03:26
· Личное сообщение · #13

Неа, нету. Watcom W32RUN DOS32-extender лоадер есть, а .EXP - нету. В своё время .EXP лоадер Krk писал, но мне что-то с ним не связаться (((




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 22 мая 2013 10:52 · Поправил: reversecode
· Личное сообщение · #14

EXE_PHARLAP, ".exp PharLap Protected Mode Executables", "*.exp"
из конфига иды
и лоадер ida61\loaders\expload.ldw
тоже есть
значит вам только отцепить стаб и переименовать файл с расширением exp
и ида должна сама все сделать


не не поможет скорее всего
оставте ваши файлы оригинал, отцепленые итд, может гляну



Ранг: 58.0 (постоянный), 13thx
Активность: 0.020.01
Статус: Участник

Создано: 23 мая 2013 00:03
· Личное сообщение · #15

MeteO пишет:
Watcom W32RUN DOS32-extender лоадер есть,

А точно, перепутал. Сорри.


 eXeL@B —› Софт, инструменты —› Селектор в IDA (old DOS school)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати