Автор: Angel07 , 20 декабря 2005
Уважаемые господа!

У меня непонятки с таким вот кодом работы с механизмом PNP (получен из бут-блока AMI BIOS-а мат. платы Zida TX100 в процессе дизассемблирования и изучения этого биоса):

[code:1]
:0001.F5B8 DW 03F0, 03F1
:0001.F5BC DB 86, 61, 55, 55
:0001.F5C0 DB 86, 61, 55, AA
:0001.F5C4 DB 86, 61, AA, 55

; *** ISA PNP initiation key ***

:0001.F5C8 DB 6A, B5, DA, ED, F6, FB, 7D, BE, DF, 6F, 37, 1B, 0D, 86, C3, 61
:0001.F5D8 DB B0, 58, 2C, 16, 8B, 45, A2, D1, E8, 74, 3A, 9D, CE, E7, 73, 39

; *** подпрограмма настройки ISA PNP ***

:0001:F5E8 8BCA mov cx, dx ;
:0001.F5EA 66C1E110 shl ecx, 10 ; "прячем"
:0001.F5EE 66C1E010 shl eax, 10 ; ax, bx и сх
:0001.F5F2 66C1E310 shl ebx, 10 ; в верхних "половинах"
:0001.F5F6 33DB xor bx, bx ; соотв. 32-разрядных р-в

:0001.F5F8 2E813EB8F5F003 cmp word ptr cs:[F5B8], 03F0 ;
:0001.F5FF 740F je F610 ;
:0001.F601 83C304 add bx, 0004 ;
:0001.F604 2E813EB8F5BD03 cmp word ptr cs:[F5B8], 03BD ;
:0001.F60B 7403 je F610 ;
:0001.F60D 83C304 add bx, 0004 ;
:0001.F610 BA7902 mov dx, 0279 ;
:0001.F613 B90400 mov cx, 0004 ;

:0001.F616 2E8A87BCF5 mov al , cs:[bx+F5BC] ;
:0001.F61B EE out dx, al ;
:0001.F61C 43 inc bx ;
:0001.F61D E2F7 loop F616 ;

:0001.F61F 2E8B16B8F5 mov dx, cs:[F5B8] ; активация режима
:0001.F624 33DB xor bx, bx ; настройки ISA PNP
:0001.F626 B92000 mov cx, 0020 ;
:0001.F629 2E8A87C8F5 mov al , cs:[bx+F5C8]; (загрузка ISA PNP
:0001.F62E EE out dx, al ; initiation key).
:0001.F62F 43 inc bx ;
:0001.F630 E2F7 loop F629 ;

:0001.F632 66C1EB10 shr ebx, 10 ;
:0001.F636 B007 mov al, 07 ;
:0001.F638 EE out dx, al ; записываем 7 в [F5B8]
:0001.F639 42 inc dx ;
:0001.F63A 8AC3 mov al , bl ; записываем bl в [F5B8]+1
:0001.F63C EE out dx, al ;
:0001.F63D 4A dec dx ;
:0001.F63E 66C1E810 shr eax, 10 ; записываем al в [F5B8]
:0001.F642 EE out dx, al ;
:0001.F643 42 inc dx ; записываем ah в [F5B8]+1
:0001.F644 86E0 xchg al , ah ;
:0001.F646 EE out dx, al ;
:0001.F647 4A dec dx ;
:0001.F648 B002 mov al, 02 ; записываем 02 в [F5B8]
:0001.F64A EE out dx, al ;
:0001.F64B 42 inc dx ;
:0001.F64C EB00 jmp F64E ;

:0001.F64E EE out dx, al ; записываем 02 в [F5B8]+1
:0001.F64F 66C1E910 shr ecx, 10 ;
:0001.F653 8BD1 mov dx, cx ; dx=cx
:0001.F655 FFE7 jmp di ; возврат
[/code:1]

Непонятки следующие:

1. Почему initiation key посылается не в адресный PNP-порт 279, как указано в спецификации ISA PNP, а в другой (в данном случае - порт 3F0)? И что это за порты - 3F0, 3F1?

2. Что-за 4-байтная последовательность (86, 61, 55, 55 с вариациями :-) )
пишется в адресный PNP порт 279 перед загрузкой initiation key в порт 3F0)?

Заранее большое спасибо за любую помощь.

P.S. Подправил код
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
Савелий, я вот тут ничего не понял
Ну, она работает. Пугают, что в базе сохраняются некие "watermark", по которым как минимум можно узнать, на кого была зарегана та копия, которой создана база. Не знаю - правда или нет. Но для этого база должна для чего-то коммерческого юзаться и попасть в соотв. руки...

Программа создает какую-то базу в процессе работы, чем это грозит если копия не
моя, при чем здесь коммерческое использование, и какие руки должны быть у
счастливого обладателя халявы :D (понятно, что не кривые :D )
В общем, если можешь поделись соображениями, я ведь потому и сообщение
написал, что нет уверенности, что все так складно, как кажется :?

savely

20 лет 10 месяцев назад

Да я без понятия, чем это грозит. Видимо тем же, чем нелицензионная XP у тебя на компе, если она (XP) тебе лично вообще чем-то грозит... :)
Неправильно дизассемблировать или форматить веник IDA не грозит.

Angel07

20 лет 10 месяцев назад

Это imho грозит тем, что, имея базу, можно будет определить, лицензионной ли программой она создана и, возможно, что-то еще (типа конфигурации компа "пирата", на кого зарегена ОС-ка и т.п.).
Соответственно если выложить такую базу в Инет, то (теоретически) это должно значительно повлиять на глубину твоего сна :-)

Добавлено спустя 8 минут 55 секунд:

А если пользоваться результатами программы для себя-друзей, то ничем это не грозит... Кстати, такие "штампы" не есть что-то новое, они, насколько я помню, и в документах Microsoft Office есть.

Прогу отыскал (v 4.30), качнул (не 19, а 30 Мб!), теперь, наверное, буду от начальства моральные пиндюлины получать как злостный и наглый растратчик финансовых средств предприятия ;-) А мож, пронесет...

Разбираюсь потихоньку. Программа интересная и довольно навороченная.

icbook

20 лет 10 месяцев назад

Прогу отыскал (v 4.30), качнул (не 19, а 30 Мб!)


А если "About" посмотреть, - что пишет? Моя Ида говорит, что она 4.3.0.740a... Интересно, что умеет v4.30?

savely

20 лет 10 месяцев назад

To icbook: Советую (с учетом специфики) приобрести легальную версию. Или почаще искать у китайцев...

icbook

20 лет 10 месяцев назад

К счастью, не IDA-ой единой... Т.е. это не тот продукт, без которого невозможно выполнить проект (опять же, с учетом специфики и без смайла). Потому что проекты нужно (или приходится?) придумывать, а не пионерить из других источников.
Знакомясь с IDA нельзя не признать талант ее автора. Но даже дизассемблирование свего кода вызывает некоторые вопросы. Это не принципиальные вопросы, поэтому интересно, какие новшества в других релизах без обсуждения в специальных форумах. Например, пофиксился ли BSWAP?

Root

20 лет 10 месяцев назад

а у меня 4.5.0 :P
Вроде пофиксили работу с юникодом, работу с PDBшками и пр. пр. Только списка изменений никак найти не могу. Полный комплект весит (вместе с базами FLIRT, SDK и примерами) 67MB. В архиве где-то около 30МБ.....

Angel07

20 лет 10 месяцев назад


Моя Ида говорит, что она 4.3.0.740a...

Моя говорит то же самое :-)

С прогой пока не разобрался, но apple_rom-овские AMI-шники открыл успешно. Наконец-то! :-) У idb формат такой, что, смотря как plain text, вообще ничего стОящего не увидишь :-)

Кстати, чтобы не плодить темы - если уж заговорили о пиратстве, то такой вопрос: если я выложу дизассембленный и прокомментированный мной биос, скажем, к себе на сайт - могу ли я спать крепко? :-) Ведь вроде как reverse engineering - дело незаконное? Или незаконен только r.e. для взлома?

savely

20 лет 10 месяцев назад

Ну, я лично не в курсе. Я никогда не публиковал свои IDB... Хотя на всякий случай - не выкладывал бы. Да и эту тему прибил бы, дабы Романа не подставлять ссылками...
P.S. Я в области "безопасности информации" работаю, у меня обычная "слегка паранойя".

NortonC

20 лет 10 месяцев назад

Angel07

если взять биос из пзу, то НИКАКАЯ лицензия не может быть нарушена, ведь мы её не имеем на руках, а вот если биос скачан с сайта производителя или другого места, куда он попал с этого сайта, то в этом случае у производителя, думаю, написано где-то мелкими буквами-"Нажимая эту кнопку вы соглашаетесь..."

PS в мануалах я читал про то, что их нельзя воспроизводить, но, кажется, про биос там не сказано...