Старые антиотладочные приемы на новый лад
Старые антиотладочные приемы на новый ладВведение
древнейший отладчик debug.com
Программа, которая трассирует себя сама
диалоговое окно, появляющееся при попытке выполнения кода в стеке
Листинг1 простейший анти-отладочный прием, распознающий трассировку под некоторыми отладчиками
Листинг2 универсальный антиотладочный прием распознающий трассировку под большинством отладчиков
Листинг3 пример простейшей самотрассирующейся программы под ms-dos
Доступ к физической памяти
Листинг 4 просмотр списка установленных (псевдо)устройств утилитой objdir
Листинг5 открытие псевдоустройства PhysicalMemory
Листинг6 проецирование физической памяти на виртуальное адресное пространство
Листинг7 простейший (но ненадежный) алгоритм трансляции адресов
Врезка как работает Win2K/XP SDT Restore
Заключение
Основы конструирования компиляторов
Компиляторы составляют существенную часть программного обеспечения ЭВМ. Это связано с тем, что языки высокого уровня стали основным средством разработки программ. Только очень незначительная часть программного обеспечения, требующая особой эффективности, программируется с помощью ассемблеров. В настоящее время распространено довольно много языков программирования. Наряду с традиционными языками, такими, как Фортран, широкое распространение получили так называемые «универсальные» языки (Паскаль, Си, Модула-2, Ада и другие), а также некоторые специализированные (например, язык обработки списочных структур Лисп). Кроме того, большое распространение получили языки, связанные с узкими предметными областями, такие, как входные языки пакетов прикладных программ.Для некоторых языков имеется довольно много реализаций. Например, реализаций Паскаля, Модулы-2 или Си для ЭВМ типа IBM PC на рынке десятки.
Обучение работе с системой
Производительность пользователя
Человеческие ошибки
Субъективная удовлетворенность
Что надо знать разработчику об эргономике программного продукта
Содержание раздела