Реверс

Тема в разделе "WASM.COMMERCE", создана пользователем airman, 26 окт 2017.

  1. airman

    airman New Member

    Публикаций:
    0
    Регистрация:
    10 июн 2009
    Сообщения:
    11
    Есть достаточно интересная и безобидная задача. Реверснуть самописный BIOS древнего советского XT совместимого компа и описать. Есть дамп. Жду предложения о сроках и желаемом вознаграждении. Размер образа 8К

    P.S. Все кто будет говорить целесообразности этого дела идут в лес. Лично мне это важно.
    P.S.S Просто прогнать идой- это не работа. мне важно именно описание что это за функции и что и как они делают.
     
  2. ant

    ant Member

    Публикаций:
    0
    Регистрация:
    19 мар 2008
    Сообщения:
    118
    Найти шарагу, в которой это писали нереально?
     
  3. airman

    airman New Member

    Публикаций:
    0
    Регистрация:
    10 июн 2009
    Сообщения:
    11
    Это писал один человек в Украине. Я его домашний адрес нашел ( был я у него дома, но мне тогда было 15 лет), но вопрос в том, что я там уже не живу, да и прошло 21 год. Я попросил народ сходить узнать живет ли он там, но шансов, если честно, мало.
     
  4. Black Fregat

    Black Fregat New Member

    Публикаций:
    0
    Регистрация:
    6 дек 2016
    Сообщения:
    3
    Описывать все-все функции подряд - скучно и неинтересно. Если же нужно что-то конкретное найти и извлечь, можно взяться.
     
  5. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    8k дамп - как то мелковато. Может это не bios", вы уверены ?

    Во первых какая архитектура, XT" неочём не говорит.

    Дизасмит значит это ида, но вам нужны коменты по коду, тогда почему вы не привели тот самый дизасм, не показали выполненную работу.

    Конкретно инфы никакой нет. Как то это всё сомнительно, почему не в комерсе тема ?

    > Есть достаточно интересная и безобидная задача.

    Врядле интересная, учитывая что архитектура мертва и забыта. То что вы упомянули безобидная" наводит на некоторые мысли.

    Получается что это нужно вам не для академических целей. В любом случае новое железо и софт стоит дешевле, чем ресерч этих реликтов.
     
    Последнее редактирование: 26 окт 2017
  6. Black Fregat

    Black Fregat New Member

    Публикаций:
    0
    Регистрация:
    6 дек 2016
    Сообщения:
    3
    А где же???
     
    Indy_ нравится это.
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Black Fregat,

    Хм точно, а я и не заметил :blush:

    В ленте нет особых выделений по разделам(я даже не замечаю расположение).
     
  8. airman

    airman New Member

    Публикаций:
    0
    Регистрация:
    10 июн 2009
    Сообщения:
    11
    Уверен. более того родной биос занимал 2 ППЗУ. Этот занимает одну К573РФ6А. Работа интересна для меня и я готов заплатить за разбор конкретных функций ( в идеале всех), например как обрабатывается IRQ2. безобидная - потому что не связана с ботнентами, взломами бота0ми и хаками

    P.S. Дамп прилагаю
     

    Вложения:

    • 7.2_1.rar
      Размер файла:
      6 КБ
      Просмотров:
      288
    Последнее редактирование: 26 окт 2017
  9. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    airman,

    Скажите модель проца, что на нём написано.
     
    airman нравится это.
  10. airman

    airman New Member

    Публикаций:
    0
    Регистрация:
    10 июн 2009
    Сообщения:
    11
    Вы не поверите, КР1810ВМ88 (Intel 8088). Мс1502 - таково название изделия
     
  11. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    airman,

    Приложите полученный стандартными инструментами дизасм, может на досуге будет время покопаться.
     
  12. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    airman,

    Смотрите, ваш дамп открытый идой.

    io.png

    Это попавший под курсор кусок. Вы ведь понимаете что анализ работы этого с железом займёт кучу времени ?
    Это не алгоритмы, а работа с I/O. Хотя в общем можно покапаться и для начала структурировать, например как в этом примере можно в целом выделить работу с таймером по номерам портов, таким образом в общих чертах выделить части кода. Но это займёт много времени.
     
  13. airman

    airman New Member

    Публикаций:
    0
    Регистрация:
    10 июн 2009
    Сообщения:
    11
    Именно за работу я готов заплатить. вопрос в стоимости работы. Понятно, что это не 50 баксов. Еще раз повторяю, для меня лично - это важно. Считайте это бзиком, и тд и тп, но я готов заплатить разумные деньги тому кто это сделает.

    P.S>Например веделить блок который отвечает за IRQ2
     
    Последнее редактирование: 27 окт 2017
  14. Black Fregat

    Black Fregat New Member

    Публикаций:
    0
    Регистрация:
    6 дек 2016
    Сообщения:
    3
  15. airman

    airman New Member

    Публикаций:
    0
    Регистрация:
    10 июн 2009
    Сообщения:
    11
    Тема пока актуальна. Немного упростим. Нужно вычленить код работы с прерыванием 13h. И выяснить если код поиска дополнительных BIOS
     
  16. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    airman,

    Код (Text):
    1. seg000:06F8 loc_6F8:                                ; CODE XREF: seg000:06C3j
    2. seg000:06F8                                         ; seg000:06CAj
    3. seg000:06F8                 mov     dl, 80h ; 'À'
    4. seg000:06FA
    5. seg000:06FA loc_6FA:                                ; CODE XREF: seg000:06B4j
    6. seg000:06FA                                         ; seg000:0716j ...
    7. seg000:06FA                 mov     cx, 3
    8. seg000:06FD
    9. seg000:06FD loc_6FD:                                ; CODE XREF: seg000:0712j
    10. seg000:06FD                 push    cx
    11. seg000:06FE                 mov     ah, dh
    12. seg000:0700                 int     13h             ; DISK -
    13. seg000:0702                 jb      short loc_714
    14. seg000:0704                 mov     bx, 7C00h
    15. seg000:0707                 mov     cx, 1
    16. seg000:070A                 mov     ax, 201h
    17. seg000:070D                 int     13h             ; DISK - READ SECTORS INTO MEMORY
    18. seg000:070D                                         ; AL = number of sectors to read, CH = track, CL = sector
    19. seg000:070D                                         ; DH = head, DL = drive, ES:BX -> buffer to fill
    20. seg000:070D                                         ; Return: CF set on error, AH = status, AL = number of sectors read
    21. seg000:070F                 pop     cx
    22. seg000:0710                 jnb     short loc_733
    23. seg000:0712                 loop    loc_6FD
    В вашем дампе только две сигнатуры i13, это один цикл. В случае успешного чтения:

    Код (Text):
    1. seg000:0733 loc_733:                                ; CODE XREF: seg000:0710j
    2. seg000:0733                 cmp     word ptr es:7DFEh, 0AA55h ; EBR signature.
    3. seg000:073A                 jnz     short loc_714
    4. seg000:073C                 jmp     far ptr 0:7C00h ; wiki: The (legacy) BIOS checks bootable devices for a boot signature, a so called magic number. The boot signature is in a boot sector (sector number 0) and it contains the byte sequence 0x55, 0xAA at byte offsets 510 and 511 respectively. When the BIOS finds such a boot sector, it is loaded into memory at 0x0000:0x7c00 (segment 0, address 0x7c00). (However, some BIOS' load to 0x7c0:0x0000 (segment 0x07c0, offset 0), which resolves to the same physical address, but can be surprising. A good practice is to enforce CS:IP at the very start of your boot sector.)
    Комент из вики найденной гуглом по константе. Если сигнатура найдена, вызывается некий интерпретатор басик. Иначе проверяются какие то маркеры и выполняется либо новая итерация в том цикле, либо вызывается басик.

    Больше ничего связанного с i13 нет.
     
  17. ReEnAsm

    ReEnAsm New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2011
    Сообщения:
    5
    Какая прелесть. Ещё актуально !?!??!
    Хочу и умею !!!

    Indy_, по дампу BIOS всё понятно.
    И архитектура и пр. ;)

    и ТС нужно найти как работает с аппаратурой int 13h (как минимум), а не где она вызывается. Это же ROM BIOS !!!
    А вызывается int 13h в ROM BIOS только для выполнения начальной загрузки с дискеты. Это как раз первый приведённый вами участок кода, только он в другом сегменте и с другим смещением на самом деле !!!
    В ROM BIOS есть место с инициализацией (заполнением данных в таблице прерываний). Оттуда берутся ссылки на процедуры прерываний реализованных в самом ROM BIOS .