Старые антиотладочные приемы на новый лад

       

Старые антиотладочные приемы на новый лад

Старые антиотладочные приемы на новый лад
Введение
древнейший отладчик debug.com
Программа, которая трассирует себя сама
диалоговое окно, появляющееся при попытке выполнения кода в стеке
Листинг1 простейший анти-отладочный прием, распознающий трассировку под некоторыми отладчиками
Листинг2 универсальный антиотладочный прием распознающий трассировку под большинством отладчиков

Листинг3 пример простейшей самотрассирующейся программы под ms-dos
Доступ к физической памяти
Листинг 4 просмотр списка установленных (псевдо)устройств утилитой objdir
Листинг5 открытие псевдоустройства PhysicalMemory
Листинг6 проецирование физической памяти на виртуальное адресное пространство
Листинг7 простейший (но ненадежный) алгоритм трансляции адресов

Врезка как работает Win2K/XP SDT Restore
Заключение

Основы конструирования компиляторов

Компиляторы составляют существенную часть программного обеспечения ЭВМ. Это связано с тем, что языки высокого уровня стали основным средством разработки программ. Только очень незначительная часть программного обеспечения, требующая особой эффективности, программируется с помощью ассемблеров. В настоящее время распространено довольно много языков программирования. Наряду с традиционными языками, такими, как Фортран, широкое распространение получили так называемые «универсальные» языки (Паскаль, Си, Модула-2, Ада и другие), а также некоторые специализированные (например, язык обработки списочных структур Лисп). Кроме того, большое распространение получили языки, связанные с узкими предметными областями, такие, как входные языки пакетов прикладных программ.
Для некоторых языков имеется довольно много реализаций. Например, реализаций Паскаля, Модулы-2 или Си для ЭВМ типа IBM PC на рынке десятки.

Обучение работе с системой
Производительность пользователя
Человеческие ошибки
Субъективная удовлетворенность
Что надо знать разработчику об эргономике программного продукта

Содержание раздела