Важная информация
RSS лента

Crypto

Работа с пзу

Оценить эту запись
Здравствуйте! Мне нужно узнать дату производства пзу и контрольную сумму.( нужно для защиты от копирования) На Паскале дату пзу можно получить следующим образом:

var
k:Integer;
begin
for k:=0 to 7 do
Write(chr(Mem[$F000:$FFF5+k]));
WriteLn
end.

Данный код работает на платформе платформе x32/
Вопрос вот в чем. Мне нужно чтобы это работало на х64. Как это сделать? Есть какие-либо аналоги массива Mem на с++? Что нужно знать - прочесть про работу с пзу? И ещё какие альтернативные данные можно использовать для проверки?
В интернете кроме старой книги на эту тему "В. В. Фаронов - Turbo Pascal 7.0. Практика программирования. Учебное пособие" - ничего не находил...
Метки: Нет Добавить / редактировать метки
Категории
Без категории

Комментарии

  1. Аватар для >Quiet Snow<
    Есть какие-либо аналоги массива Mem
    Это не массив это доступ к памяти по сегменту + смещению. Это 16 битный код, работает только под DOS.
    Винды до висты эмулировали подсистемы DOS более или менее нормально, дальше уже кривяк.
    С XP отвалилась мышь, бластер, часть портов. С висты - вся графика.

    Мне нужно чтобы это работало на х64.
    Где? Под досом по идее точно так же будет что под 32 что под 64 бита, т.к. процессор в реальном режиме.
    Под виндой для таких операций юзают WinAPI.

    В интернете кроме старой книги на эту тему "В. В. Фаронов - Turbo Pascal 7.0. Практика программирования.
    Учебное пособие" - ничего не находил...
    Вам прямая дорога на ассемблер, уж не знаю данные какого ПЗУ и контрольную сумму чего вы пытаетесь
    вытянуть, но очевидно что операции с железом такого уровня лучше делать на асме, но конечно не
    принципиально(можно и на паскале вставками или напрямую). Однако вполне вероятно, что это делается
    парой WinAPI функций. Просто архитектуры DOS И Windows очень сильно различаются, портировать проги
    достаточно трудоёмко. Ваша программа под какую ОС?
  2. Аватар для Crypto
    Пишу под windows 7 x64. Для начала нужно дату пзу на материнской плате или контрольную сумму узнать. А паскалевским Mem, MemW и MemL в справочниках дают определения, как предопределеные три массива, для прямого доступа к памяти - не суть.
    Winapi гляну. С ассемблером не разу ещё не связывался , но походу придется). Спасибо!
    Цитата Сообщение от >Quiet Snow<
    Это не массив это доступ к памяти по сегменту + смещению. Это 16 битный код, работает только под DOS.
    Винды до висты эмулировали подсистемы DOS более или менее нормально, дальше уже кривяк.
    С XP отвалилась мышь, бластер, часть портов. С висты - вся графика.



    Где? Под досом по идее точно так же будет что под 32 что под 64 бита, т.к. процессор в реальном режиме.
    Под виндой для таких операций юзают WinAPI.



    Вам прямая дорога на ассемблер, уж не знаю данные какого ПЗУ и контрольную сумму чего вы пытаетесь
    вытянуть, но очевидно что операции с железом такого уровня лучше делать на асме, но конечно не
    принципиально(можно и на паскале вставками или напрямую). Однако вполне вероятно, что это делается
    парой WinAPI функций. Просто архитектуры DOS И Windows очень сильно различаются, портировать проги
    достаточно трудоёмко. Ваша программа под какую ОС?