1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Публикации автора: archive

Преобразование кода

24 окт 2011

Для чего обычно используется преобразование кода? Для сокрытия важных частей алгоритма, для затруднения взлома и сигнатурного анализа. Глупо было бы думать, что этим трюком пользуются только легальные корпорации и фирмы. Разработчики вредоносного программного обеспечения прочно забронировали себе места в топе подобных достижений. Только используются они для сокрытия и затруднения анализа вирусов.
Читать далее
Лайков +1 Комментариев0 Просмотров1.182

Статическое детектирование файлов: Часть 1 - Структура и данные

16 окт 2011

Можно долго умничать как о возможности создания недетектируемого вируса, так и о детекте абсолютно всех файлов, но известно точно: существуют эффективные (и не очень) методы обнаружения малвари, и не менее эффективные (а то и больше) техники антидетекта. Вот об этом мы и поговорим.
Читать далее
Лайков 0 Комментариев0 Просмотров1.224

Avira – heuristic disasm

15 авг 2011

Эта статья будет посвящена самому неадекватному антивирусу – авире. Мне всегда было интересно, как же она умудряется отличать вирус от невируса, какие критерии она использует. В этой статье я покажу, как нужно ее реверсить. Некоторые моменты будут озвучены просто как факт, я не буду рассказывать, как я к ним пришел – я просто этого не помню. Также хочу заранее сказать, что я не реверсер, поэтому многие вещи, возможно, я делал не совсем оптимально.
Читать далее
Лайков 0 Комментариев0 Просмотров717

Введение в крэкинг с нуля, используя OllyDbg - Глава 52

25 июл 2010

Распаковка ASProtect.2.3.04.26.a. Часть 2.
Читать далее
Лайков +1 Комментариев1 Просмотров1.848

Введение в крэкинг с нуля, используя OllyDbg - Глава 51

25 июл 2010

Распаковка ASProtect.2.3.04.26.a. Часть 1.
Читать далее
Лайков +1 Комментариев1 Просмотров2.042

Обработка user-mode исключений в Windows

12 июн 2010

Статья посвящена обработке user-mode исключений в Windows.
Читать далее
Лайков +1 Комментариев1 Просмотров2.300

Введение в крэкинг с нуля, используя OllyDbg - Глава 49

29 апр 2010

Распаковка PeSpin 1.3.04.f. Часть 2.
Читать далее
Лайков +1 Комментариев1 Просмотров1.463

Введение в крэкинг с нуля, используя OllyDbg - Глава 48

26 апр 2010

Распаковка PeSpin 1.3.04.f. Часть 1.
Читать далее
Лайков +1 Комментариев1 Просмотров1.740

Введение в крэкинг с нуля, используя OllyDbg - Глава 47

26 апр 2010

Продолжение раззбора крэкми «Patrick».
Читать далее
Лайков +1 Комментариев1 Просмотров1.910

Введение в крэкинг с нуля, используя OllyDbg - Глава 46

13 сен 2009

В этой главе продолжаем изучать методы, которые мы пытаемся применить, когда всё начинает идти не так, как мы ожидали. В этой главе для этих целей нам послужить прекрасный защищённый крэкми Fatmike’а, который называется PATRICK.exe.
Читать далее
Лайков +1 Комментариев1 Просмотров1.593

Исследование функции SetTimer

12 авг 2009

На днях, во время реверса одной программы, задалась вопросом, как вывести список таймеров, установленных win32 - функцией SetTimer (а если быть конкретнее, то мне нужны были адреса процедур - lpTimerFunc). Конечно, с практической точки зрения это малополезно, а с теоретической - очень даже.
Читать далее
Лайков 0 Комментариев0 Просмотров540

Дополнение к 45-ой главе «Введения в крэкинг, используя OllyDbg»

11 авг 2009

В этой статье показан другой способ противостоять упаковщику из вышеуказанной главы единственно с помощью щелчков по кнопкам мыши без необходимости делать что-то ещё.
Читать далее
Лайков +1 Комментариев1 Просмотров1.372

Введение в крэкинг с нуля, используя OllyDbg - Глава 45

8 авг 2009

В этой главе мы рассмотрим распакуй-меня, сделанном с помощью упаковщика, который сложно победить в OllyDbg, так как в нём есть одна часть, которая не работает в Олли и выдаёт ошибку. Но мы всё равно будем использовать OllyDbg, несмотря ни на что. Мы могли бы использовать другой отладчик, но ведь это же «Введение в крэкинг с помощью OllyDbg», хе-хе.
Читать далее
Лайков +1 Комментариев1 Просмотров1.690

Введение в крэкинг с нуля, используя OllyDbg - Глава 44

26 июн 2009

Ок, продолжаем как обычно. Мы уже нашли украденные байты, и у нас теперь есть скрипты для того, чтобы легко попасть в OEP и чтобы починить IAT, так что осталось сделать дамп.
Читать далее
Лайков +1 Комментариев1 Просмотров1.425

Введение в крэкинг с нуля, используя OllyDbg - Глава 43

13 июн 2009

В предыдущей части мы сосредоточились на починке украденных байт, а сейчас нашей задачей является IAT.
Читать далее
Лайков +1 Комментариев1 Просмотров1.464

Исследование подсистемы GUI: горячие клавиши в Windows

31 май 2009

Исследование механизма регистрации горячих клавиш в Windows.
Читать далее
Лайков 0 Комментариев0 Просмотров606

Сетевой программный интерфейс Windows Vista/2008: внутреннее устройство, использование и взлом

21 май 2009

В этот раз речь пойдет о внутреннем устройстве интерфейса прикладного уровня сетевой подсистемы Windows Vista – NPI. Также будут представлены примеры его использования в самой системе – будут описаны сокеты ядра WSK и прикладной интерфейс TCP/IP стека. Также будет показана практическая реализация некоторых нестандартных методик, уже использующихся поставщиками персональных фаерволов.
Читать далее
Лайков 0 Комментариев0 Просмотров575

Работа с протоколом Socks5 на MASM

21 май 2009

К моему удивлению, на эту тему я не нашел какого либо завершенного материала (даже на wasm'овском форуме !). Это и послужило поводом для написательства данной статьи. На первый взгляд, все кажется сложным, но на самом деле все просто.
Читать далее
Лайков 0 Комментариев0 Просмотров713

Введение в крэкинг с нуля, используя OllyDbg - Глава 42

15 май 2009

Теперь мы перейдём к более сложным упаковщикам и увидим, что используемые методы могут быть очень разными в зависимости от случая, поэтому у нас должен быть большой запас различных трюков. В этот раз нас будет занимать ACPROTECT 1.09, распакуй-меня со всякого рода защитами.
Читать далее
Лайков +1 Комментариев1 Просмотров1.597

Введение в крэкинг с нуля, используя OllyDbg - Глава 41

6 апр 2009

После того, как мы продолжили разбираться с таблицой IAT pelock’а, а также антидамповыми приёмами, в этой части будет рассмотрено две темы: одна, которая была пропущена ранее, и другая, которая очень поможет в работе с tpelock’ом или другой похожей программой, которая снимает или обнаруживает установленные HBP.
Читать далее
Лайков +1 Комментариев1 Просмотров1.971

Введение в крэкинг с нуля, используя OllyDbg - Глава 40

25 мар 2009

После того, как мы продолжили разбираться с таблицой IAT pelock’а, а также антидамповыми приёмами, в этой части будет рассмотрено две темы: одна, которая была пропущена ранее, и другая, которая очень поможет в работе с tpelock’ом или другой похожей программой, которая снимает или обнаруживает установленные HBP.
Читать далее
Лайков +1 Комментариев1 Просмотров1.672

Введение в крэкинг с нуля, используя OllyDbg - Глава 39

2 фев 2009

Глава посвящена понятию "украденных байт" и методам их восстановления.
Читать далее
Лайков +1 Комментариев1 Просмотров1.341

Введение в крэкинг с нуля, используя OllyDbg - Глава 38

11 янв 2009

Распаковка протектора yod'ы Protector 1.3.
Читать далее
Лайков +1 Комментариев1 Просмотров1.490

Программирование графических LCD модулей на основе KS0108/KS0107 контроллера

3 янв 2009

В предыдущей статье мы разобрали программирование знакосинтезирующих ЖКИ модулей, но не всегда бывает достаточно их возможностей. К примеру нам нужно вывести загрузку CPU в динамике, то есть как график, ну или статистику использования файла подкачки, конечно ничто не мешает определить 8 символов псевдографики, в знакосинтезирующем дисплее (от пустого до полностью заполненного), и выводить их как гистограмму в две строки, ну или нам нужно вывести простую анимацию, тут уже знакосинтезирующие ЖКИ бессильны.
Читать далее
Лайков 0 Комментариев0 Просмотров1.478

Введение в крэкинг с нуля, используя OllyDbg - Глава 37

14 дек 2008

Методы починки переадресовочных элементов IAT: ручной метод, использование плагинов IMP REC'а, связка JMP-CALL (волшебный переход).
Читать далее
Лайков +1 Комментариев1 Просмотров1.721

Подключение и программирование LCD на основе HD44780U

14 дек 2008

Многие хотят выделить корпус своего ПК из общей массы либо повысить удобство пользования им. В данной статье я расскажу о подключении ЖК модуля к компьютеру и соответственно о его программировании. Как правило существует несколько видов таких дисплеев – сегментные, знакосинтезирующие, графические. Мы рассмотрим знакосинтезирующие модули на HD44780U совместимом контроллере.
Читать далее
Лайков 0 Комментариев0 Просмотров1.097

Правда о KeUserModeCallback()

6 дек 2008

Это даже не статья, а маленькая заметочка. Заметочка на тему избитой всеми функции KeUserModeCallback(). Избитой потому, что многие о ней слышали, многие знают для чего она используется и как примерно работает, но вот рабочего кода, полноценно ее использующего, почти ни кто так и не выдал. Тому есть несколько причин, но обо всем по порядку…
Читать далее
Лайков 0 Комментариев0 Просмотров766

Планировщик, потоки и процессы

6 дек 2008

В этот раз мы рассмотрим, как операционная система Windows XP распоряжается потоками и процессами и осуществляет их планирование. Коснемся контекстов, их переключения, снятия и установки.
Читать далее
Лайков 0 Комментариев0 Просмотров979

KeCapturePersistentThreadState() и crash dump'ы

24 ноя 2008

Заметка о занятной недокументированной функции, экспортируемую ядром, на которую нет ссылок внутри ядра, но которая делает весьма занятную вещь. А именно, записывает в переданный кусок памяти полноценный minidump на данный момент времени.
Читать далее
Лайков 0 Комментариев0 Просмотров587

Оконные хуки: взгляд изнутри

24 ноя 2008

В последнее время на форумах все чаще стали проскальзывать вопросы о том, как получить список оконных хуков, установленных на события мыши или клавиатуры. Уметь их перечислять и идентифицировать было бы довольно полезно, учитывая обилие различных видов spyware в наши дни. И хотя кейлогеры aka клавиатурные шпионы, работающие в режиме пользователя с помощью этих самых хуков, потихоньку уступают свое место драйверам-фильтрам, тема эта все еще продолжает оставаться актуальной.
Читать далее
Лайков 0 Комментариев0 Просмотров684

Введение в крэкинг с нуля, используя OllyDbg - Глава 36

12 ноя 2008

На примере telock 0.98 рассматриваются переадресовочные элементы IAT.
Читать далее
Лайков +1 Комментариев1 Просмотров1.597

Введение в крэкинг с нуля, используя OllyDbg - Глава 35

10 ноя 2008

Разбор нового приёма на примере упаковщика ASPack.
Читать далее
Лайков +1 Комментариев1 Просмотров1.628

Введение в крэкинг с нуля, используя OllyDbg - Глава 34

8 окт 2008

Дамп файла и восстановление IAT с помощью PE TOOLS и IMP REC.
Читать далее
Лайков +2 Комментариев1 Просмотров1.666

Искусство редактирования интерфейса программ на VB

2 окт 2008

Описание формата, в котором хранятся формы в VB и пример работы с ними.
Читать далее
Лайков 0 Комментариев0 Просмотров651

Взгляд на ООП из низкого уровня

29 авг 2008

Большинству низкоуровневых программистов, как правило, объектно ориентированное программирование кажется сложным. В этой статье объясняются некоторые моменты ООП. Приводятся примеры их устройства с помощью языков C и Assembler.
Читать далее
Лайков 0 Комментариев0 Просмотров773

Введение в крэкинг с нуля, используя OllyDbg - Глава 32

18 авг 2008

Различные методы поиска OEP.
Читать далее
Лайков +1 Комментариев1 Просмотров1.545

Введение в крэкинг с нуля, используя OllyDbg - Глава 31

26 июл 2008

Начало новой большой и интересной темы: распаковка программ. ОБъясняются основные концепции на примере крэкми CrueHead'а.
Читать далее
Лайков +1 Комментариев1 Просмотров1.549

Введение в крэкинг с нуля, используя OllyDbg - Глава 30

9 июл 2008

Последняя статье о P-CODE: разбор крэкми и нескольких техник.
Читать далее
Лайков +1 Комментариев1 Просмотров1.514

Введение в крэкинг с нуля, используя OllyDbg - Глава 29

14 июн 2008

Обсуждение P-CODE в Visual Basic и разбор крэкми, его использующего.
Читать далее
Лайков +1 Комментариев1 Просмотров1.520

Description of DMP Format

8 июн 2008

This article describes in details file format of Windows' crash dumps.
Читать далее
Лайков 0 Комментариев0 Просмотров669

Ассемблер в Linux для программистов C

7 июн 2008

Эта книга ориентирована на программистов, которые уже знают C на достаточном уровне. Почему так? Вряд ли зная только пару несколько языков вроде Perl или Python кто-то захочет изучать ассемблер. Используя ассемблер и C вместе, применяя каждый язык для определённых целей, можно добиться очень хороших результатов. К тому же, программисты C уже имеют некоторые знания об архитектуре, способе организации памяти и других вещах, которые поначалу сложно понять. Поэтому изучать ассемблер после C несомненно легче, чем после других языков высокого уровня.
Читать далее
Лайков +1 Комментариев2 Просмотров2.614

Введение в MSIL - Часть 8: Конструкция for each

23 май 2008

Конструкция for each приобрела популярность благодаря Visual Basic, была едва признана С++ и стала бессмертной из-за ECMA-334 (некоторые люди называют это просто C#).
Читать далее
Лайков 0 Комментариев0 Просмотров674

Введение в крэкинг с нуля, используя OllyDbg - Глава 28

22 май 2008

Продолжение разбора крэкми, написанных на VB.
Читать далее
Лайков +1 Комментариев1 Просмотров1.501

Введение в крэкинг с нуля, используя OllyDbg - Глава 27

17 апр 2008

Продолжение разбора исследования программ, написанных на Visual Basic.
Читать далее
Лайков +1 Комментариев1 Просмотров1.554

OLE Variant 2 ANSI

11 апр 2008

Этот материал полезен для начинающих воинов дзена и может поведать о том как: * конвертировать целые числа и float`ы единым алгоритмом * узнать количество десятичных цифр в целом числе через логарифм * избавиться от условных переходов при помощи команд cmovXX, bt и модификации кода
Читать далее
Лайков 0 Комментариев0 Просмотров634

Инжект: лезем через окно

10 апр 2008

Одним из самых соблазнительных мест для преступника, пытающегося пробраться в чужую квартиру, безусловно, является окно. Да и вообще, для русских людей характерно приходить к чему-то новому не «через дверь», а «через форточку», ибо так нам завещал сам царь Петр. Вот и мы, подражая великому правителю, попытаемся проникнуть в адресное пространство чужого процесса через… окно.
Читать далее
Лайков 0 Комментариев0 Просмотров701

Модификация исполняемых PE-файлов

10 апр 2008

Модилификация PE-файла в картинках.
Читать далее
Лайков 0 Комментариев0 Просмотров1.622

Введение в крэкинг с нуля, используя OllyDbg - Глава 26

10 апр 2008

Глава посвящена исследованию программ, написанных на Visual Basic, с помощью OllyDbg.
Читать далее
Лайков +1 Комментариев1 Просмотров1.643

Введение в крэкинг с нуля, используя OllyDbg - Глава 25

3 мар 2008

В этой главе мы рассмотрим обработчики исключений, которые обычно являются камнем преткновения для новичков, но на самом деле это не слишком сложная тема, если немного в неё углубиться.
Читать далее
Лайков +1 Комментариев1 Просмотров1.519

Введение в крэкинг с нуля, используя OllyDbg - Глава 24

29 фев 2008

Разбор крэкми «antisocial», приложенного к предыдущей главе.
Читать далее
Лайков +1 Комментариев1 Просмотров1.578

Введение в крэкинг с нуля, используя OllyDbg - Глава 23

27 фев 2008

Последняя глава, посвящённая антиотладке: флаги ProcessHeap и NTGlobalFlag.
Читать далее
Лайков +1 Комментариев1 Просмотров1.656

Введение в MSIL - Часть 7: Приведение и преобразование типов

22 фев 2008

Приведение и преобразование типов часто вызывает различные беспокойства среди программистов: например, по поводу скорости выполнения, безопасности или просто не совсем хорошее понимание последствий данных операций. В этой главе цикла я расскажу о них. Для примеров я буду использовать в основном C++, так как он имеет богатый набор языков средств, относящихся к приведению типов. Конечно, мы также будем рассматривать инструкции CLI, которые генерируются в итоге.
Читать далее
Лайков 0 Комментариев0 Просмотров688

Безопасное извлечение USB-устройств

21 фев 2008

Цель данной статьи - описание метода безопасного извлечения USB-устройств. В данном случаи под USB-устройствами будут, подразумевается в основном устройства хранения информации (Flash, HDD), но все описанные ниже действия применимы и устройствам других классов.
Читать далее
Лайков 0 Комментариев0 Просмотров683

Введение в крэкинг с нуля, используя OllyDbg - Глава 22

6 фев 2008

UnhandledExceptionFilter & ZwQueryInformationProcess и защита от обнаружения посредством этих функций.
Читать далее
Лайков +1 Комментариев1 Просмотров1.589

Введение в крэкинг с нуля, используя OllyDbg - Глава 21

4 фев 2008

Продолжение изучения различных антиотладочных методов: FindWindow, Proccess32First и Process32Next.
Читать далее
Лайков +1 Комментариев3 Просмотров1.821

Введение в крэкинг с нуля, используя OllyDbg - Глава 20

27 янв 2008

Суть метода обнаружения OllyDbg по имение процесса и способы защиты.
Читать далее
Лайков +1 Комментариев2 Просмотров2.077

Введение в крэкинг с нуля, используя OllyDbg - Глава 19

27 янв 2008

Как работает обнаружение OllyDbg с помощью функции IsDebuggerPresent и как этого избежать.
Читать далее
Лайков +1 Комментариев3 Просмотров2.323

Введение в крэкинг с нуля, используя OllyDbg - Глава 18

27 янв 2008

Описывается решение ещё двух крэкми.
Читать далее
Лайков +1 Комментариев2 Просмотров1.981

Введение в крэкинг с нуля, используя OllyDbg - Глава 17

25 янв 2008

Разбор ещё нескольких крэкми: один с жёстко-заданным серийным номером и другой с переменным, причём с динамической проверкой правильности номера при вводе каждого его символа.
Читать далее
Лайков +1 Комментариев4 Просмотров1.977

Введение в крэкинг с нуля, используя OllyDbg - Глава 16

21 янв 2008

Разбор крэкми с переменным серийным номером, высчитывающимся на основе имени пользователя.
Читать далее
Лайков +1 Комментариев3 Просмотров2.115

Управление памятью в ядре Windows XP

17 янв 2008

Статья рассчитана на тех, кто уже работал с памятью в режиме ядра и отличает MmProbeAndLockPages от MmMapLockedPagesSpecifyCache, а так же знаком с основами устройства управления памятью у процессора - каталоги страниц (PDE), таблицы страниц (PTE), исключение ошибки страницы (#PF).
Читать далее
Лайков 0 Комментариев0 Просмотров989

Injected Evil: обзор нескольких методик обхода файерволов

17 янв 2008

В этой статье я хочу описать техники, который позволят обойти большинство современных проактивных защит и фаерволов. Эта тема очень популярна и достаточно изъезжена, но что-то новое не появлялось уже достаточно большое количество времени. Помимо сугубо практического материала я представлю Вам необходимый теоретический минимум для того, чтобы въехать в тему самостоятельно, почувствовать вкус, который чувствует исследователь и взломщик.
Читать далее
Лайков 0 Комментариев0 Просмотров653

Введение в крэкинг с нуля, используя OllyDbg - Глава 15

5 дек 2007

Окончание разбора крэкми с жёстко заданными серийными номерами.
Читать далее
Лайков +1 Комментариев2 Просмотров2.360

Введение в крэкинг с нуля, используя OllyDbg - Глава 14

14 ноя 2007

Продолжение рассказа о том, как искать жёстко заданные серийные номера.
Читать далее
Лайков +1 Комментариев3 Просмотров2.543

Правда о NtLdtSetEntries

11 ноя 2007

Речь пойдёт об обломе эмуляторов и отладчиков, которые не учитывают то, что в защищенном режиме есть сегментные регистры, и они, к тому же, играют большую роль.
Читать далее
Лайков +1 Комментариев0 Просмотров621

Введение в крэкинг с нуля, используя OllyDbg - Глава 13

9 ноя 2007

В этой начато рассмотрение поиска жёстко-заданных серийных номеров.
Читать далее
Лайков +2 Комментариев3 Просмотров2.336

Простой обход фаервола KIS 7

25 окт 2007

Сегодня поговорим о простом, но, тем не менее, эффективном методе обхода фаервола Kaspersky Internet Security 7.0 – сетевого экрана, компонента одной из самых популярных и известных защит для персонального пользователя на сегодняшний день.
Читать далее
Лайков 0 Комментариев0 Просмотров400

Страничная адресация: PAE

16 окт 2007

В статье рассматривается режим страничной адресации PAE.
Читать далее
Лайков 0 Комментариев0 Просмотров757

Описание формата DMP

10 окт 2007

Статья рассказывает о формате крэш-дампов Windows и как написать их простой анализатор.
Читать далее
Лайков 0 Комментариев0 Просмотров694

Введение в MSIL - Часть 6: Стандартные языковые конструкции

8 окт 2007

Здесь рассматривается реализация конструкций if и for средствами MSIL.
Читать далее
Лайков 0 Комментариев0 Просмотров827

Введение в крэкинг с нуля, используя OllyDbg - Глава 12

5 окт 2007

Данная глава посвящена практическому использованию сообщений Windows.
Читать далее
Лайков +2 Комментариев1 Просмотров2.840

Введение в крэкинг с нуля, используя OllyDbg - Глава 11

5 окт 2007

В этой главе рассматриваются процессорные точки останова (hardware breakpoints) и условные точки останова.
Читать далее
Лайков +1 Комментариев1 Просмотров1.966

Введение в крэкинг с нуля, используя OllyDbg - Глава 10

22 июл 2007

Эту главу мы посвятим изучению различных видов точек останова. Они позволяют приостановить выполнение кода программы в нужном месте. И снова роль подопытной жертвы достаётся бессменному крэкми CrueHead'а.
Читать далее
Лайков +1 Комментариев1 Просмотров2.260

Добавление функциональности в готовые программы

8 июл 2007

Нашей целью будет добавление функциональности в готовую (скомпилированную) программу. Фактически, данной техникой можно добавить функциональность в любую программу, добавить тоже можно все, что вы придумаете. В этом описании не ставилась цель создать какой-либо полезный программный продукт, целью было показать возможности технологии добавления кода в скомпилированную программу. Наша цель - добавить новую функцию в стандартный Блокнот. Добавочной функцией мной была выбрана возможность вычисления выражений. Чтобы было интереснее, возможность вычисления была позаимствована из другой программы.
Читать далее
Лайков 0 Комментариев0 Просмотров1.085

Исследование «промежуточного» кода на примере GP-кода языка NATURAL - Часть 3: Секция кода

3 июл 2007

В этой части статьи под нашим прицелом окажется секция кода. На двух простейших примерах попробуем разобраться с организацией этой «таинственной» секции.
Читать далее
Лайков 0 Комментариев0 Просмотров324

Введение в крэкинг с нуля, используя OllyDbg - Глава 9

20 июн 2007

Как и было обещано, теперь мы займёмся непосредственно крэкингом. Начнём с базовых понятий, не спеша, шаг за шагом пополняя наш крэкерский арсенал знаний. Теоретические пробелы мы постараемся заполнить по ходу дела.
Читать далее
Лайков +1 Комментариев1 Просмотров3.409

Введение в крэкинг с нуля, используя OllyDbg - Глава 8

25 апр 2007

В этой главе мы рассмотрим ещё несколько базовых инструкций, которые остались без внимания в предыдущих главах. Как только мы их изучим, сможем, наконец, перейти непосредственно к крэкингу!
Читать далее
Лайков +1 Комментариев1 Просмотров2.255

Прерывания в защищенном режиме процессора IA-32

18 мар 2007

Обработка прерываний в защищенном режиме процессора. Перевод в защищенный режим и обратно. Написание простого загрузчика.
Читать далее
Лайков 0 Комментариев0 Просмотров1.831

Введение в крэкинг с нуля, используя OllyDbg - Глава 7

18 мар 2007

В этой главе рассматриваются инструкции CALL и RET.
Читать далее
Лайков +1 Комментариев3 Просмотров2.606

Введение в крэкинг с нуля, используя OllyDbg - Глава 6

18 мар 2007

В этой главе рассматриваются сравнения и условные переходы.
Читать далее
Лайков +1 Комментариев2 Просмотров2.762

COM повсюду. Или как использовать регулярные выражения при программировании на ассемблере

17 фев 2007

Навеяло недавней статьёй о COM с этого сайта и его использовании в ассемблере. Всплыла у меня в голове старая задумка: разобрать интерфейс VBScript Regular Expressions 5.5 и использовать все его потрясающие возможности при программировании на ассемблере.
Читать далее
Лайков 0 Комментариев0 Просмотров734

Введение в крэкинг с нуля, используя OllyDbg - Глава 5

31 янв 2007

В этой главе рассматриваются математические и логические инструкции процессора.
Читать далее
Лайков +1 Комментариев3 Просмотров2.685

Введение в крэкинг с нуля, используя OllyDbg - Глава 4

27 янв 2007

В этой главе рассматривается, что такое инструкции процессора, а также собственно инструкции, относящиеся к работе со стеком и перемещению данных.
Читать далее
Лайков +1 Комментариев1 Просмотров3.304

3 кита COM. Кит второй: dll

3 янв 2007

Второй важнейшей основой, без которой невозможна инфраструктура COM, является использование DLL. Причем не просто использование, а очень активное использование; и использование не только самих DLL, но и тех принципов, которые применяются в технологии динамического связывания.
Читать далее
Лайков 0 Комментариев0 Просмотров687

Новогоднее поздравление с 2007 годом

26 дек 2006

Новогодняя речь-поздравление :).
Читать далее
Лайков 0 Комментариев0 Просмотров448

3 whales of COM. The first whale: registry

26 дек 2006

ou won't find here descriptions of component programming models, principles of encapsulation, polymorphism, inheritance etc. - unless of only incidentally mentioning. Instead you'll be presented with the low-level programming approach without excess theoretical abstractions - the "bottom view" onto COM architecture in a way. Maybe these articles will best fit to those who repeatedly began and gave up studying COM beeng not able to cope with abundance of heterogeneous information, but who kept desire to understand the essence and machinery of this technology, ant to those who worked with COM on high level but who wanted to look "under the hood".
Читать далее
Лайков 0 Комментариев0 Просмотров537

3 кита COM. Кит первый: реестр

2 дек 2006

Здесь не будут описываться модели компонентного программирования, принципы инкапсуляции, полиморфизма, наследования и т.п. - разве что они будут упомянуты мимоходом. Вместо этого будет предложен подход с точки зрения низкоуровневого программирования, не отягощенного теоретическими абстракциями - своего рода "вид снизу" на архитектуру COM. Возможно, больше всего эти статьи подойдут тем, кто не раз начинал и бросал изучение COM, не справившись и изобилием разнородной информации, но все же не оставил желания разобраться в существе и механизмах этой технологии, а также тем, кто работает с COM на высоком уровне, но хотел бы заглянуть "за кулисы".
Читать далее
Лайков 0 Комментариев0 Просмотров817

Простой способ противодействия сплайсингу API

24 ноя 2006

Для перехвата вызова какой-нибудь API функции обычно используется метод, называемый сплайсингом. Суть метода состоит в замене первых 5 байт функции инструкцией JMP передающей управление коду-перехватчику. Данная техника широко используется в персональных фаерволах для того, чтобы предотвратить внедрение троянскими программами своего кода в адресное пространство других процессов, которым разрешен доступ в сеть. Тем не менее, существуют различные техники, позволяющие троянописателям прорываться сквозь огненные стены.
Читать далее
Лайков 0 Комментариев0 Просмотров565

Исследование «промежуточного» кода на примере GP-кода языка NATURAL - Часть 2: Операнды (окончание)

13 ноя 2006

В этой части статьи на предметном столике наших исследований окажутся такие представители славной плеяды операндов как параметры, глобальные переменные и проч. Не обойдем своим вниманием и подход к описанию массивов операндов в GP-коде NATURAL.
Читать далее
Лайков 0 Комментариев0 Просмотров315

Запуск файла из памяти

22 окт 2006

Существует довольно много способов запуска файлов на исполнение. Чаще всего используют CreateProcess, WinExec и прочие апи. Но что делать, если ЕХЕ-файл находится не в виде файла, а в памяти нашего процесса?.. Можно конечно сохранить файл на диск, после чего запустить. Но это недостаточно извращенный метод. В этой статье я попытаюсь в общих чертах рассказать, как стартовать прямо из памяти.
Читать далее
Лайков 0 Комментариев0 Просмотров746

TLS изнутри

19 окт 2006

Сегодня я расскажу вам об одном крутом механизме, который называется TLS – Thread Local Storage – что по-русски – локальная память потока. Сия вещь широко применяется обычными гуишными программерами в многопоточных приложениях. Вы скажите: А зачем мне оно?? Отвечу – обычно сия вещь нужна для того, чтобы связать определенные данные с конкретным потоком. Например, дядя Рихтер приводит пример – с каждым потоком в TLS связывается дата и время, когда он был создан. В момент уничтожения потока можно посчитать время в течении, которого поток существовал.
Читать далее
Лайков 0 Комментариев0 Просмотров1.156

Введение в крэкинг с нуля, используя OllyDbg - Глава 3

6 окт 2006

В этой главе рассматривается, что такое регистры и флаги, и как менять их значение в OllyDbg.
Читать далее
Лайков +1 Комментариев3 Просмотров3.877

Реверсинг протокола Network Assistant 3.x

5 окт 2006

В статье рассматривается реверсинг протокола чата Network Assistant 3.x. Это первая моя статья, поэтому можно считать, что она написана новичком для новичков, тем более что разработчики никакой защиты на программу не навешивали, код достаточно прост и ясен, а единственная проблема - его объём.
Читать далее
Лайков 0 Комментариев0 Просмотров425

Работа с LFB в DOS

5 окт 2006

В статье рассказывается об использовании LFB (Linear Frame Buffer) в Big Real Mode.
Читать далее
Лайков 0 Комментариев0 Просмотров685

Новая векторная обработка исключений в Windows XP

3 окт 2006

Статья рассказывает о VEH, её отличиях от SEH, возможностях и способах применения.
Читать далее
Лайков 0 Комментариев0 Просмотров547

Введение в MSIL - Часть 5: Обработка исключений

25 сен 2006

В этой части "Введения в MSIL" я расскажу о конструкциях, которые CLI предоставляет для обработки исключений.
Читать далее
Лайков 0 Комментариев0 Просмотров607

Введение в крэкинг с нуля, используя OllyDbg - Глава 2

25 сен 2006

После того, как мы рассмотрели строение, основные элементы и принципы OllyDbg, необходимо изучить системы счисления и что такое стек, чтобы иметь о них хоть какое-то представление.
Читать далее
Лайков +1 Комментариев3 Просмотров3.686

Введение в MSIL - Часть 4: Определение членов типа

22 сен 2006

В 3-ей части данного введения я рассказал о синтаксисе определения типов. Используя директиву .class, вы можете задать ссылочные типы и типы значений. Правильно выбирая атрибуты типа, вы можете получить полный контроль над его определением.
Читать далее
Лайков 0 Комментариев0 Просмотров639

Unsafe Java II - Мутагенез земноводных

12 сен 2006

Вторая часть цикла Unsafe Java. Обсуждаются в частности техники перенаправления функций и модифицирования байткода после загрузки класса.
Читать далее
Лайков 0 Комментариев0 Просмотров624

GBA ASM - День 24: Компилирование вместе с C

10 сен 2006

Сегодня мы используем как ASM, так и C++-функции в отдельных файлах, скомпилировав оба.
Читать далее
Лайков 0 Комментариев0 Просмотров477

GBA ASM - День 23: Использование AS

10 сен 2006

В этой главе мы рассмотрим GNU Assembler.
Читать далее
Лайков 0 Комментариев0 Просмотров449

GBA ASM - День 22: Сохранение и 0xE000000

10 сен 2006

Ок... Я понял, что нужно затронуть ещё один важный вопрос. Сегодня мы собираемся рассмотреть, как сохранить что-то в картридж.
Читать далее
Лайков 0 Комментариев0 Просмотров471

GBA ASM - День 21: LDRH и STRH

10 сен 2006

Сегодня мы рассмотрим две инструкции, о которых в силу некоторых причин я совершенно забыл. Фактически, из-за этого я писал довольно неэффективный код. Эти инструкции ldrh и strh.
Читать далее
Лайков 0 Комментариев0 Просмотров459

GBA ASM - День 20: Использование деления и квадратного корня

10 сен 2006

Деление и вычисление квадратного корня с помощью функций BIOS'а GBA.
Читать далее
Лайков 0 Комментариев0 Просмотров433

GBA ASM - День 19: Инструкция SWI

10 сен 2006

Вы можете спросить, почему я не сказал о SWI в прошлый раз. Я сделал это для того, чтобы говорить об одной теме за раз. SWI расшифровывается как "SoftWare Interrupt" (программное прерывание) и используется для вызова функций BIOS.
Читать далее
Лайков 0 Комментариев0 Просмотров428

GBA ASM - День 18: О BIOS'е

10 сен 2006

Эта аббревиатура расшифровывается как Basic Input Output System. Не знаю, что они называют BIOS'ом GBA, на экране, по крайней мере, оно ничего не отображает. BIOS GBA - это больше подсобная библиотека с несколькими полезными функциями, которые можно использовать.
Читать далее
Лайков 0 Комментариев0 Просмотров403

GBA ASM - День 17: Обзор

10 сен 2006

Краткий обзор пройденных дней и того, что ожидает дальше.
Читать далее
Лайков 0 Комментариев0 Просмотров357

GBA ASM - День 16: Маскировка и переключение битов

10 сен 2006

GBAGuy рассказывает о наложение битовых масок и переключении битов.
Читать далее
Лайков 0 Комментариев0 Просмотров496

GBA ASM - День 15: Прокрутка бэкграунда

10 сен 2006

Ок, теперь перейдём к прокрутке бэкграунда. Вы можете удивиться, почему я сразу не поместил её в День 14. Причиной это является то, что наполовину забыл об этом, наполовину поленился (родственная душа - прим. пер.). Так что вот так.
Читать далее
Лайков 0 Комментариев0 Просмотров272

Декомпилируем p-code в уме

8 сен 2006

Думаю, что все мы знакомы с программами на пикоде. Даже если реверсер в жизни не видел VB и его компилятор, то все равно хотя бы раз он сталкивался с пикодом. В отличии от стандартного машинного кода, исполняемого напрямую процессором, p-code это набор мнемоник VM, которые исполняются движком msvbvmXX.dll. Olly тут не особый помощник (хотя для кого как), IDA тем более. Тут нужен либо декомпилятор, либо мозги. Надеюсь, что второе есть точно у всех, кто читает эти строки. Именно поэтому листинги из декомпилятора я буду приводить в статье лишь для наглядности, основной же упор будет на декомпилирование, используя в работе только HIEW.
Читать далее
Лайков 0 Комментариев0 Просмотров520

Введение в крэкинг с нуля, используя OllyDbg - Глава 1

1 сен 2006

Целью данного «Введения в крэкинг с нуля, используя OllyDbg», является дать тем, кто только начал осваивать искусство крэкнинга, базовые знания и, вместе с тем, сделать это так, чтобы эти знания позволили в дальнейшем читать и понимать более продвинутые туториалы.
Читать далее
Лайков +4 Комментариев4 Просмотров13.814

GBA ASM - День 14: Фоновые эффекты

31 авг 2006

Сегодня мы рассмотрим следующие эффекты фона: мозаику, вращение и масштабирование. Правда, что касается вращения, я не буду рассказывать о SIN() и COS() - мы только обсудим, где и что именно нужно вставить в данных вращения/масштабирование, а остальное вам придётся додумать самим.
Читать далее
Лайков 0 Комментариев0 Просмотров309

Дзенский реверсинг: исследование программ в полевых условиях

29 авг 2006

Как часто бывают ситуации, когда под рукой кроме HEX редактора/дизассемблера hiew ничего нет, а требуется срочно разблокировать какие-либо опции в программе или отвязать от железа? Причем обычно требуется срочно, на работе, когда горе-программист поставит защиту-привязку к компу, а нужно срочно перенести АРМ (автоматизированное рабочее место, не путать с ARM) с одного компьютера на другой. Конечно, можно пригласить автора АРМ'а и попросить его, но обычно на это банально нет времени и желания. В итоге приходится довольствоваться тем, что есть по рукой - обычно это только HIEW :)
Читать далее
Лайков 0 Комментариев0 Просмотров521

GBA ASM - День 13: Эффекты со спрайтами

10 авг 2006

В этом туториале рассматриваются различные эффекты со спрайтами, доступными на GBA.
Читать далее
Лайков 0 Комментариев0 Просмотров313

Введение в MSIL - Часть 3: Определение типов

6 авг 2006

В этой части я объясню, как задаются типы.
Читать далее
Лайков 0 Комментариев0 Просмотров626

GBA ASM - День 12: Инструкция BL

6 авг 2006

Сегодня мы рассмотрим подпрограммы (или функции), используя инструкцию BL. Странно, что я никогда не рассказывал о ней, ведь она так проста...
Читать далее
Лайков 0 Комментариев0 Просмотров358

Обход Outpost Firewall 3.x и 4.0 в Kernel mode

2 авг 2006

Я приведу описание обхода самого распространенного и используемого брандмауэра - Outpost Firewall. Он имеет достаточно гибкие настройки, защиту от внедрения кода (Inject), контроль компонентов, поэтому его обход в ring-3 представляет некоторые сложности: Inject все-таки возможен, но требует написания базонезависимого кода для работы с сетью, и прочий геморрой ;) Я предлагаю переместиться на уровень ниже, в ring-0, где возможно все :)
Читать далее
Лайков 0 Комментариев0 Просмотров543

Исследование «промежуточного» кода на примере GP-кода языка NATURAL - Часть 2: Операнды

27 июл 2006

Как известно, операндами называют то, что участвует в операциях. Так в операции сложения операндами будут слагаемые, а в операции умножения - сомножители. Применительно к GP-коду Natural, термин "операнд" объединяет такие элементы программного кода как константы, локальные переменные, глобальные переменные, объекты и т.д.
Читать далее
Лайков 0 Комментариев0 Просмотров314

Введение в MSIL - Часть 2: Использование локальных переменных

22 июл 2006

В этой части я расскажу об использовании локальных переменных. Без них программы были бы не слишком интересны. Чтобы объяснить, как использовать переменные, давайте напишем простую программу для сложения чисел.
Читать далее
Лайков 0 Комментариев0 Просмотров695

GBA ASM - День 11: Переменные и рабочая память

22 июл 2006

В этом дне рассказывается как использовать рабочую память и переменные.
Читать далее
Лайков 0 Комментариев0 Просмотров297

Введение в MSIL - Часть 1: Hello World

19 июл 2006

Первая часть из серии статей, рассказывающей о MSIL (Microsoft Intermediate Language) на вводном уровне.
Читать далее
Лайков 0 Комментариев0 Просмотров576

GBA ASM - День 10: Прерывания и таймеры

18 июл 2006

Сегодня мы должны изучить прерывания и таймеры. Я не уверен, что у прерываний есть иное полезное применение кроме процедуры HBlank или VBlank, поэтому именно это и будет продемнстрировано в коде. Таймеры, по крайней мере насколько могу судить я, имеют несколько применений, включая.. гм.. тайминг :). Сходу я могу назвать одну вещь, которая требует применение DMA, таймеров и прерываний одновременно - это вывод звука.
Читать далее
Лайков 0 Комментариев0 Просмотров499

GBA ASM - День 9: Простой бэкграунд

16 июл 2006

В этом туториале автор рассказывает о том, как создать простой бэкграунд для вашей GBA-программы.
Читать далее
Лайков 0 Комментариев0 Просмотров399

GBA ASM - День 8: Загрузка данных с помощью DMA

7 июл 2006

DMA (Direct Memory Access) - это относительно быстрый способ загрузки данных в память. Этот подход имеет значительные преимущества по сравнению с тем, который мы использовали ранее.
Читать далее
Лайков 0 Комментариев0 Просмотров385

Советы и рекомендации по программированию процессоров Intel® Pentium® 4

30 июн 2006

Многие считают, что для повышения производительности программ, выполняющихся на процессорах Intel® Pentium® 4, нужно использовать инструкции Streaming SIMD Extensions (SSE) и Streaming SIMD Extensions 2 (SSE2). В большинстве случаев так оно и есть. Действительно, с помощью инструкций SSE2 и 128-битных регистров XMM обычно можно значительно повысить производительность приложения. Но с другой стороны, если программа использует 64-битные данные, и их упаковка в 128-битные регистры не повышает эффективность, то стоит не тратить время на SSE или SSE2, а поискать другие способы оптимизации.
Читать далее
Лайков 0 Комментариев0 Просмотров527

Создание заплаток на ассемблере FASM

21 июн 2006

Рассматривать мы будем создание заплаток для бинарных файлов и исполняемых файлов формата PE. Способ подходит как для изменения нескольких байт, так и для создания подпрограмм, реализующих дополнительную функциональность.
Читать далее
Лайков 0 Комментариев0 Просмотров731

Исследование «промежуточного» кода на примере GP-кода языка NATURAL

21 май 2006

В этой статье я бы хотел поделиться своими результатами в исследовании «промежуточного» кода.
Читать далее
Лайков 0 Комментариев0 Просмотров367

Unsafe Java I - Небезопасная жаба

20 май 2006

Статья является первой частью цикла, посвященного низкоуровневым техникам программирования на Яве. В ней рассматриваются некоторые структуры виртуальной машины и возможности динамического манипулирования ими.
Читать далее
Лайков 0 Комментариев0 Просмотров511

Отправка по SMTP с авторизацией

30 апр 2006

Практически каждый, кто сталкивается с работой в инете на низком уровне при создании какой-либо почтовой программы, оповещалки, либо троя или кейлогера, напарывается на такой неприятный облом, как авторизация. Ведь многие SMTP-серверы не дают пользователю нормально отправить письмо, а требуют какие-то логин и пароль. В этой статье я попытаюсь раскрыть эту проблему, простыми словами написать то, что написано в более "расплывчатом" виде в rfc, который почему-то всем лень читать. И, конечно, данная статья будет ориентирована на "низкоуровневых" программистов. Я буду писать под фасм, но думаю, что для Вас не составит особого труда переделать примеры под более удобный для Вас компилятор.
Читать далее
Лайков 0 Комментариев0 Просмотров927

Инжект как метод обхода фаерволлов, жив или мертв?

28 апр 2006

Наверника многие из вас помнят те времена, когда персональные фаерволлы только появились, и настал черный день для троянописателей. Этот день стал концом для большинства, но не для всех. Вскоре было найдено простое и изьящное решение, суть которого состоит в том, чтобы работать из разрешенного фаерволлом процесса. Решение было простым и не требовало много кода, и заключалось оно в записи и исполнении своего кода в чужой процесс (обычно в процесс InternetExplorer). Считается что этот метод сейчас умер. Но так ли это?
Читать далее
Лайков 0 Комментариев0 Просмотров443

Извлечение текстурированных 3D моделей из приложений Direct3D

17 мар 2006

Целью статьи является исследование принципов, позволяющих извлекать трехмерные текстурированные модели из приложений Direct3D.
Читать далее
Лайков 0 Комментариев0 Просмотров711

Тайна золотого ключика или Особенности системы лицензионных ключей, используемой компанией Software AG

6 мар 2006

Основная цель этой статьи посмотреть, как реализована система лицензирования на примере довольно дорогих коммерческих продуктов от компании Software AG, а также показать на реальном примере, что иногда вовсе не обязательно проводить все ночи напролет, закопавшись в отладчике или дизассемблере, чтобы корректно «поправить» лицензионный ключ (цели «правки» могут быть любыми), что иногда достаточно просто пошире открыть глаза…
Читать далее
Лайков 0 Комментариев0 Просмотров339

Использование отладочных регистров процессора Intel X86 в прикладной программе Windows NT

19 фев 2006

Наверное, сейчас ни для кого не секрет, какой огромный выигрыш даёт использование отладочных регистров процессора для исследования механизма защиты программ. Яркий тому пример отладчик SoftIce, который использует эти регистры для установки аппаратных точек останова в программе (команды типа ‘BPM’). Но как использовать их в прикладной программе, где прямое обращение к ним вызывает общую ошибку защиты? Неужели нет способов, кроме, как написания собственных драйверов ядра, которое само по себе является достаточно трудоёмкой задачей, отпугивающей от их применения? Оказывается, есть, и достаточно простой. Об этом и пойдёт речь в этой статье.
Читать далее
Лайков 0 Комментариев0 Просмотров620

Обход Tiny Firewall

16 фев 2006

Tiny Firewall (дальше tf) представляет собой компактную и надёжную (я так думал) защиту. Но на практике всё оказывается не так хорошо, как мы думаем. Давайте посмотрим, как tf обеспечивает защиту (моя версия 6.5.126).
Читать далее
Лайков 0 Комментариев0 Просмотров470

Kernel-Mode & User-Mode Сommunication, или KeUserModeCallback Must Die!

16 фев 2006

Как мне уже удалось убедиться, проблема, когда нужно достаточно быстро вызвать User Mode функцию из драйвера, который, как известно работает в более привилегированном Kernel Mode, возникает довольно часто. Например, может возникнуть необходимость давать указания драйверу по управлению внешним устройством на основании текущего состояния устройства. При этом драйверу может требоваться директива из приложения пользователя всякий раз когда он обрабатывает прерывание своего устройства. Разумеется, большинство таких задач можно решить «традиционными» методами, например, в самом грубом случае, передавая в драйвер матрицу 2 на N(где N – количество значений, пробегаемое аргументом), которая будет полностью задавать функцию, которую нужно вызвать из кода пользователя. Однако встречаютя ситуации, когда таким «прямым» способом ограничиться не получается…
Читать далее
Лайков 0 Комментариев0 Просмотров340

3 метода работы с занятыми файлами

22 дек 2005

У многих из вас, несомненно, когда-либо возникала необходимость читать/писать файлы занятые другим процессом.
Читать далее
Лайков +1 Комментариев0 Просмотров581

Themida - обновлённый XProtector

15 ноя 2005

Прошло уже больше года с момента написания статьи про XProtector версии 1.07, с тех пор многое поменялось и многое из того, что было описано уже устарело. Вот собственно поэтому и выходит новая статья по этому протектору. Стоит сказать сразу, что стать скорее описание того, как исследовать протектор а не руководство по распаковке.
Читать далее
Лайков 0 Комментариев0 Просмотров387

Взгляд на сеть из другой галактики

15 ноя 2005

Данная статья познакомит вас с интересным миром, летающим в сетевом кабеле, наподобие витых пар, телефонной лапши, оптоволокна и т.д. и т.п. Нет, я не буду расписывать, для чего нужны эти сетевые кабели. Не буду писать вообще про них ни строчки. Но с миром, обитающим в них – познакомлю.
Читать далее
Лайков 0 Комментариев0 Просмотров662

Руководство Beej по сетевому программированию, используя интернет-сокеты

2 ноя 2005

Большой туториал по сетевому программированию, используя стандарные функции.
Читать далее
Лайков 0 Комментариев0 Просмотров497

Практика. Синтез вируса.

28 сен 2005

Опишу для вас создание самого простого вируса, ничего серьезного и злобного - все в пределах нормы. Если вам в начале будет трудно понятен материал этой статьи, и вы не знаете многих терминов – не отчаивайтесь, найдите о них исчерпывающую информацию в Интернете и вам станет понятно, что эти термины – база и без них далее изучать этот материал просто бессмысленно. Но все же, я постараюсь кратко и четко дать им определения.
Читать далее
Лайков 0 Комментариев0 Просмотров733

Обнаружение скрытых процессов

14 сен 2005

Многие пользователи привыкли к тому, что в Windows NT диспетчер задач показывает все процессы, и многие считают, что скрыться от него вообще невозможно. На самом деле, скрыть процесс черезвычайно просто.
Читать далее
Лайков 0 Комментариев0 Просмотров1.808

Запуск процесса из режима ядра

14 сен 2005

Думаю, многие из Вас задавались подобным вопросом. Возможен ли запуск пользовательского приложения из драйвера режима ядра?
Читать далее
Лайков 0 Комментариев0 Просмотров882

От зеленого к красному: Глава 3: Программирование в Shell-код стиле. Важные техники системного программирования: SEH, VEH и API Hooking. Отключение Windows File Protection.

21 авг 2005

Этот раздел является своеобразным обобщением первых двух глав. Прочтя его, Вы сможете уже без особых трудностей писать простые Win32-вирусы. Код в shell-код стиле или как он еще называется – базово-независимый код требует определенных условий при его написании. Основное условие - чтобы код не зависел от адреса загрузки его в адресное пространство процесса-жертвы и от структур данных загрузчика.
Читать далее
Лайков 0 Комментариев0 Просмотров662

Win32™ SEH изнутри (ч.3)

11 авг 2005

Перед тем как погрузиться в код, осуществляющий раскрутку (unwinding), давайте кратко обсудим, что это собственно такое.
Читать далее
Лайков 0 Комментариев0 Просмотров881

Win32™ SEH изнутри (ч.2)

11 авг 2005

Пока я редко упоминал слова _try и _except, так как всё, что я описывал до сих пор, реализуется на уровне ОС.
Читать далее
Лайков 0 Комментариев0 Просмотров962

Win32™ SEH изнутри (ч.1)

11 авг 2005

В своей основе, структурная обработка исключений – это сервис, предоставляемый системой. Вся документация по SEH, которую вы, вероятно, найдете, описывает одну лишь компиляторно-зависимую оболочку, созданную RTL вокруг реализации SEH операционной системы. Я здесь рассмотрю самые фундаментальные концепции SEH.
Читать далее
Лайков 0 Комментариев0 Просмотров1.570

А у вас сколько мониторов? (DirectX)

4 авг 2005

Эта статья предполагает, что вы прочитали предыдущую статью и знаете общую логику работы с мониторами в системе Windows. Исследования для этой статьи проводились в рамках DirectX 8.1.
Читать далее
Лайков 0 Комментариев0 Просмотров509

Современные технологии дампинга и защиты от него

4 авг 2005

В этой статье я хотел бы рассмотреть современные методы противодействия дампингу и методы их обхода, что несомненно пригодится тому, кто хочет научиться распаковывать что-то сложнее ASPack'а.
Читать далее
Лайков 0 Комментариев0 Просмотров562

Сканер виртуальной памяти «внутри» процесса

1 июл 2005

Целью статьи является рассмотрение принципов создания сканера виртуальной памяти, находящегося «внутри» исследуемого процесса.
Читать далее
Лайков 0 Комментариев0 Просмотров408

CODE-RIP: искусство выдирания чужого кода - Часть I. Теория

30 июн 2005

Описываются основные принципы и методы выдирания чужого кода для последующего использования при написании своих программ.
Читать далее
Лайков 0 Комментариев0 Просмотров440

Теоретические основы крэкинга: Глава 13. Заключение

27 июн 2005

В завершение этой работы мне хотелось бы рассказать о технологиях, которые вошли в арсенал крэкеров сравнительно недавно, и даже о таких , которые еще только ожидают своей реализации.
Читать далее
Лайков 0 Комментариев0 Просмотров377

Теоретические основы крэкинга: Глава 12. Патчить или не патчить?

27 июн 2005

Собственно, вопрос, вынесенный в заглавие этой главы, существует разве что в умах ревнителей идейной чистоты крэкинга, с недоверием относящихся к самой идее модификации исполняемого кода. Для всех остальных ответ очевиден – патчить надо и патчить надо много, поскольку модификация исполняемого кода – самый прямой, простой и быстрый путь заставить код делать то, чего Вы от него хотите.
Читать далее
Лайков 0 Комментариев0 Просмотров703

Создание сканера виртуальной памяти процессов

27 июн 2005

Предмет повествования состоит в изучении принципов сканирования виртуальной памяти процессов (этим занимаются такие программы как ArtMoney и др.), создании и реализации алгоритма целочисленного "универсального обманщика игр".
Читать далее
Лайков 0 Комментариев0 Просмотров561

От зеленого к красному: Глава 2: Формат исполняемого файла ОС Windows. PE32 и PE64. Способы заражения исполняемых файлов.

27 июн 2005

В этой главе мы исследуем формат исполняемых файлов в операционной системе Windows. Все факты, которые будут касаться этого изложения подходят для ОС Windows XP c установленным SP2. Но большинство фактов распространяются на всю платформу Win32. Я буду рассматривать все поля PE-формата полностью. Я привожу здесь описания используемых структур, для того чтобы Вы могли использовать этот документ и как справочник.
Читать далее
Лайков 0 Комментариев0 Просмотров1.775

Руководство по исследованию программ, написанных на Visual Basic 6.0

7 июн 2005

Начинающие исследователи программ почему то считают, что программы, написанные на VB невозможно сломать. Если программа скомпилирована в pcode - я частично с ними соглашусь, но даже для этого вида компиляции уже написано множество отладчиков, способных понимать псевдокодовые инструкции. Что же касается Native Code, то тут все ломается также, как и любая другая программа, написанная например на C++ или Delphi. Но есть ряд особенностей.
Читать далее
Лайков 0 Комментариев0 Просмотров1.208

Перехват API функций в Windows NT (часть 3). Нулевое кольцо.

16 май 2005

Как известно, в процессорах серии X86 и совместимых с ними присутствует аппаратная поддержка многозадачности и защиты. Код может исполняться на одном из четырех уровней (колец) защиты. Наиболее привилегированным является нулевое кольцо, наименее привилегированным - третье. В нулевом кольце можно все: доступны привилегированные команды, порты ввода-вывода, и вся память.
Читать далее
Лайков 0 Комментариев1 Просмотров890

Перехват API функций в Windows NT (часть 2). Методы внедрения кода.

16 май 2005

В этой статье мы рассмотрим более эффективные способы перехвата, а в особенности приёмы написания внедряемого кода. Также в конце статьи я рассмотрю альтернативные методы внедрения кода в чужой процесс.
Читать далее
Лайков 0 Комментариев0 Просмотров516

Перехват API функций в Windows NT (часть 1). Основы перехвата.

16 май 2005

В настоящее время широчайшую распостраненность поличили операционные системы семейства Windows NT/20000/XP. Они широко используются не только как домашние системы, но и в качестве серверов. Эта линейка ОС отличается неплохой защищенностью от вредоносных программ, а так-же для нее существует большое количество дополнительных систем безопасности (различные антивирусы, фаерволлы). Установив антивирус и фаерволл многие пользователи думают, что они стопроцентно защищены, и даже большинство программистов считают, что достаточно почаще проверять свой компьютер на подозрительные вещи (автозагрузка, процессы и.т.д.) и никокая вредоносная программа к ним не сможет проникнуть. В большинстве случаев это действительно так, 99% троянов до сих пор загружаются через HKLM/Run, и для скрытности имеют названия вроде WinLoader32.exe. Глядя на это мне просто смешно становиться. Это дело нужно срочно исправлять, поэтому я написал этот цикл из трех статей, в которых описываются методы перехвата API функций в системах линейки Windows NT на всех возможных уровнях.
Читать далее
Лайков 0 Комментариев0 Просмотров747

А у вас сколько мониторов?

6 май 2005

В одном проекте мне понадобилась поддержка более одного монитора. В доступном информационном пространстве я особенно ничего не нашёл.
Читать далее
Лайков 0 Комментариев0 Просмотров419

От зеленого к красному: Глава 1: Память. База kernel32.dll. Адреса API-функций. Дельта-смещение

22 апр 2005

В этой статье рассказывается об основах, таких как база kernel32.dll и дельта-смещении.
Читать далее
Лайков +1 Комментариев1 Просмотров2.317

Продвинутые техники написания эксплойтов переполнения буфера

13 апр 2005

В наши дни существует довольно много кодов эксплойтов переполнения буферов. Раньше же такие эксплойты только запускали шелл (т.е. /bin/sh). Однако, теперь некоторые эксплойты содержат очень интересные фичи. К примеру, они могут проламываться через фильтр, открывать сокет, врываться в 'chroot' и т д. В этой статье мы попытаемся разобраться в таких продвинутых фичах эксплойтов переполнения буфера на примере платформы intel x86 Linux.
Читать далее
Лайков 0 Комментариев0 Просмотров519

Теоретические основы крэкинга: Глава 11. Трассировка во сне и наяву.

13 апр 2005

Трассировка – одна из основ, на которых держится крэкинг. О трассировке обычно говорят вскользь как о чем-то общеизвестном и само собой разумеющемся, но при этом имеющем нечеткие, плохо формализуемые правила. Читая предыдущие главы, Вы неоднократно встречали фразы «трассируем процедуру…», «трассируйте код до тех пор, пока…» и т.п., и при этом вряд ли задумывались о том, что нужно делать и как вообще трассируют код. Так что же такое отладка – наука это или искусство? Поставив себе целью разобраться в методах трассировки, мы прежде всего должны определиться, что такое трассировка и для чего она нужна. И лишь после того, как будут определены цели трассировки, возможно будет говорить о «технической» реализации методов, посредством которых эти цели могут быть достигнуты.
Читать далее
Лайков 0 Комментариев0 Просмотров572

Обработка исключений Win32 для программистов на ассемблере

4 апр 2005

Мы собираемся исследовать, как можно сделать приложение более устойчивым, позволив ему, самому обрабатывать свои исключения, вместо того, чтобы перекладывать эту задачу на систему. Исключение - это нарушение, совершенное программой, которое в обычных случаях приводит к появлению предупреждения о том, что эта программа выполнила недопустимую операцию и будет закрыта...
Читать далее
Лайков 0 Комментариев0 Просмотров1.244

FASM OpenGL tutorial

26 мар 2005

Как говорил товарищ Берлага, если приподнять завесу, то становится весьма очевидным что стандарт OpenGL разрабатывается фирмой Silicon Graphics (теперь SGI) с лета 1992 года. Этот программный интерфейс был во многом основан на библиотеке IRIS GL, поддерживаемой с 1982 года. Для развития нового интерфейса был организован консорциум The OpenGL Architecture Review Board (ARB). На данный момент OpenGL является стандартной библиотекой для всех 32 разрядных операционных систем (Unix, Mac, Windows). Ну и хватит на этом. В конце концов это вам не лезгинка, а твист... в смысле не "Большая Советская Энциклопедия".
Читать далее
Лайков 0 Комментариев0 Просмотров1.547

Написание плагинов для API шпиона kerberos

18 мар 2005

В данной статье я хочу показать, как пишутся плагины для API-шпиона kerberos 1.01.
Читать далее
Лайков 0 Комментариев0 Просмотров446

Теоретические основы крэкинга: Глава 10. Слишком хорошо – тоже не хорошо.

17 мар 2005

Как Вы уже успели убедиться, обращение с брейкпойнтами – занятие далеко не такое простое, как может показаться с первого взгляда. В предыдущей главе мы разбирались в том, почему точки останова иногда не делают того, что мы от них ожидаем, значительная же часть этой главы посвящена полностью противоположной проблеме: что делать, если точки останова срабатывают слишком часто. После всего написанного в предыдущей главе такая ситуация может показаться Вам невероятной, но, представьте себе, такое тоже бывает.
Читать далее
Лайков 0 Комментариев0 Просмотров473

Написание эксплойтов переполнения буфера - туториал для новичков

11 мар 2005

Переполнение в буфферах стало одной из наиогромнейших проблем безопасности в сети Интернет и в современном компьютерном мире в целом. Это объясняется тем, что подобные ошибки могут легко быть допущены при самом программировании и будучи незаметными для юзера, который не понимает или не совсем разбирается в исходном коде программы, они являются очень подходящей целью для написания эксплойта. В этой статье мы попытаемся показать новичкам - Си программерам средней руки каким образом эти ошибки могут быть применены.
Читать далее
Лайков 0 Комментариев0 Просмотров1.293

Инфектор PE-файлов

10 мар 2005

Добрый вечер дамы и господа! Если вы читаете этот документ, то вы наверное прочитали знакомые слова в названии статьи или вы новичок и хотите узнать больше о компьютерной вирусологии. А может Вы просто щелкнули на ссылку в броузере из-за любопытства. Ну ладно, не будет превращать эту статью в низкосортное литературное произведение, и перейдем ближе к делу. В этой статье мы напишем инфектор-PE файлов. Эта статья описывает: во-первых, как заражать исполняемые файлы(PE – Portable Executable) в операционной системе Windows, во-вторых, процесс создания Windows-приложений на ассемблере, в-третьих, некоторые системные механизмы ОС семейства Windows.
Читать далее
Лайков 0 Комментариев0 Просмотров702

Процессор изнутри. Часть 4: AMD64

9 мар 2005

Процессор Athlon-64 является первым массовым 64-разрядным процессором для настольных систем. За счет этого он немного выбивается из ряда всех рассматриваемых нами процессоров. Но поскольку он предоставляет средства мониторинга производительности, было бы неуважением по отношению к AMD обойти его вниманием.
Читать далее
Лайков 0 Комментариев0 Просмотров575

Процессор изнутри. Часть 3: AMD

15 фев 2005

В данной части мануала наконец-то дошла очередь и до AMD. Описание ведется по стандартной схеме – интерфейс, кэш, ядро, мониторинг производительности. Данная статья относится именно к Athlon и частично к Athlon XP. Частично, потому что блок-схемы практически совпадают, но у XP больше событий, чем в «просто Athlon». Дополнительные события будут рассмотрены в следующей части.
Читать далее
Лайков 0 Комментариев0 Просмотров638

Процессор изнутри. Часть 2: INTEL NetBurst

10 фев 2005

Шина Pentium 4 называется AGTL+ и использует практически тот же набор сигналов, что и обычная GTL+ применяемая в процессорах P6. Вместе с тем, используется принципиально новый механизм синхронизации позволяющий добиться частоты передачи данных гораздо больше чем в P6.
Читать далее
Лайков 0 Комментариев0 Просмотров537

Как написать AddIn для WinAsm Studio

5 фев 2005

Каждому в глубине души хочеться иметь "свой" редактор. Однако добавить в IDE новую возможность значительно проще, чем разработать ее целиком. Основным препятствием для этого (кроме лени) является необходимость изучения работы IDE и интерфейса для AddIn-ов. Сами же разработчики IDE заинтересованы в такой помощи по понятным причинам, и стремятся упростить это узкое место. Данная статья призвана пролить некоторый свет на этот вопрос пользователям WinAsm Studio и базируется на файлах WinAsm.chm, WAAddIn.inc, анализе кода других AddIn-ов, в том числе примеров, а также на небольшом собственном опыте. Естественно, она не является ни полным переводом, ни исчерпывающим пособием.
Читать далее
Лайков 0 Комментариев0 Просмотров631

Процессор изнутри. Часть 1: INTEL P6 FAMILY

3 фев 2005

В данной части мануала подробно рассмотрим процессоры семейства P6. Следует сказать, что все, что мы тут будем обсуждать, относится не только к процессорам, упомянутым в названии, но и ко всем Celeron образованных от тех процессоров путем «урезания», так как микроархитектура у них у всех одна и та же.
Читать далее
Лайков 0 Комментариев0 Просмотров767

Процессор изнутри. Часть 0: Теория

23 янв 2005

Как известно, важнейшей составляющей любого компьютера является процессор, именно он выполняет все вычисления, все остальные устройства нужны либо для того, чтобы обеспечивать нормальную работу процессора, либо для обеспечения взаимодействия с человеком. В данном мануале я хочу обобщить свой опыт изучения процессоров. В следующих частях мануала у Вас появится возможность посмотреть «изнутри» на Ваш собственный процессор, используя специальные программы.
Читать далее
Лайков 0 Комментариев0 Просмотров1.170

Драйверы режима ядра: Часть 16 : Драйвер-фильтр (не PnP)

12 янв 2005

Практическая реализация драйвера-фильтра... даже двух. К сожалению, имеются некоторые ограничения, в связи с тем, что это не PnP-драйверы.
Читать далее
Лайков 0 Комментариев0 Просмотров681

Полиморфизм. Новые техники

11 янв 2005

Полиморфизм всегда пользовался огромной популярностью у программистов. Но шло время и полиморфизм стал не столь популярен. Многие стали считать, что это вчерашний день. Я с ними соглашусь пожалуй...
Читать далее
Лайков 0 Комментариев0 Просмотров487

Теоретические основы крэкинга: Глава 9. Если бряк оказался вдруг…

4 янв 2005

Наверное, Вы уже попытались что-нибудь взломать. Может быть даже, Вам это удалось – за счет знаний и способностей к анализу, благодаря интуиции, или же в силу Вашего трудолюбия и настойчивости. Возможно также, что Вам просто очень повезло с первой в жизни программой, и защита оказалась слабее, чем в большинстве других программ. Однако тех, кто не смог с первой попытки одержать победу над мегабайтами кода, гораздо больше.
Читать далее
Лайков 0 Комментариев0 Просмотров392

Встраивание Perl в IDA Pro 4.70 (Second Edition)

28 дек 2004

В данном труде описывается технология встраивания Perl в IDA Pro строго версии 4.70 как в качестве скриптового движка для работы в дизассемблере, так и в IDA debugger.
Читать далее
Лайков 0 Комментариев0 Просмотров437

Dll in binary

4 дек 2004

It was shown in the article «Win32 Appy by Hand» how to «assemble» the simplest Win32 application with the only MessageBox using debug.exe. This time let’s create the simplest dll in a similar manner; this is the continuation and further elaboration of the previous work and the necessary foundation for my future articles, because I am going to describe how to create COM components in binary and it is quite impossible to manage without dll’s there.
Читать далее
Лайков 0 Комментариев0 Просмотров482

Основные методы заражения PE EXE

16 ноя 2004

Существует множество методов заражения (то есть записи кода вируса в код программы без потери работоспособности последнего) файлов формата Portable Executeable. Есть простые методы, которые с лёгкостью отлавливаются антивирусами, есть очень навороченные, о которых я вам когда-нибудь может быть расскажу... Вполне может случиться так, что вы изобретёте свой собственный оригинальный способ и успеет пройти дня этак три прежде чем сотрудники Kaspersky Lab смогут его проанализировать и пополнить свои avc'шки парой-тройкой новых контрольных сумм...
Читать далее
Лайков 0 Комментариев0 Просмотров476

Драйверы режима ядра: Часть 15 : Жизненный цикл IRP

12 ноя 2004

Фильтрация пакетов запроса в/в - относительно сложная тема. Поэтому, прежде чем перейти к практической реализации драйвера-фильтра, необходимо четко представлять себе жизненный цикл IRP.
Читать далее
Лайков 0 Комментариев0 Просмотров1.048

Слежение за вызовом функций Native API

12 ноя 2004

Ну что ж, пришло время рассказать об одной очень полезной, я бы даже сказал, в некоторых случаях, чрезвычайно необходимой возможности, любезно предоставляемой нам внутренними механизмами Windows.
Читать далее
Лайков 0 Комментариев0 Просмотров677

Теоретические основы крэкинга: Глава 8. И вновь продолжается бой…

1 ноя 2004

Ну вот, все, что мы могли сделать простыми средствами, мы сделали. И теперь пришло время приступить к отладке. Да-да, эта глава будет практически полностью посвящена искусству дебагить, bpx’ить, трассировать - в общем, одному из аспектов той рутинной деятельности, которая ожидает каждого крэкера на его светлом пути к торжеству высокого искусства над коммерческими интересами.
Читать далее
Лайков 0 Комментариев0 Просмотров372

Алгоритм шифрования ГОСТ 28147-89. Метод простой замены.

17 окт 2004

Данный документ является моей попыткой описать метод простой замены алгоритма шифрования ГОСТ 29.147-89 наиболее простым языком, но, тем не менее, технически-грамотным языком. О том, на сколько это у меня получилось, читатель скажет свое мнение, после того как прочтет пункты по шестой включительно.
Читать далее
Лайков 0 Комментариев0 Просмотров2.848

Direct I/O

17 окт 2004

Из вышеприведенной цитаты, думаю понятно, что объектом исследования является приложение, позволяющее другим программам обращаться напрямую к оборудованию. С этим не возникало проблем, когда программы работали под управлением операционных систем Windows, предшественников Windows NT, но времена идут, архитектура меняется, а переделывать старые программы, зачастую просто нет возможности. Принцип, по которому работает драйвер Direct I/O (и аналогичные программы) не нов, и был опубликован в журнале Dr.Dobb's за май 1996 года, автором статьи (русский перевод которой можно найти на void.ru) является Дейл Робертс.
Читать далее
Лайков 0 Комментариев0 Просмотров519

Win32 Appy by Hand

11 сен 2004

Having started up newly installed Windows XP Pro and having entered 'debug' in command line I was highly surprised with hyphen in console window - familiar prompt of the old DOS debugger. This curious thing is the tool we need. Besides we will need some knowledge about PE files layout and how to load them into memory.
Читать далее
Лайков 0 Комментариев0 Просмотров312

Теоретические основы крэкинга: Глава 7. Искусство разбивать окна.

10 сен 2004

И вот, пройдя долгий и трудный путь исследователя ценных данных, упрятанных в недрах программ, мы, наконец, подошли к вратам «чистого крэкинга».
Читать далее
Лайков 0 Комментариев0 Просмотров386

CGI-программирование на ассемблере?!? – Легко!

8 сен 2004

В этой статье я хочу рассказать о CGI интерфейсе вообще, его реализации для windows и использовании при написании CGI-программ языка ассемблер в частности. В рамки этой статьи не входит полное описание CGI, так-как в Интернете материала по этому вопросу просто море и пересказывать все это здесь я просто не вижу смысла.
Читать далее
Лайков 0 Комментариев0 Просмотров395

ATA для дZенствующих. Часть 2: PCI DMA

31 авг 2004

После долгого перерыва, связанного с отсутствием у меня компа, возвращаемся к теме программирования современных винчестеров на полностью аппаратном уровне. В данной части мы рассмотрим использование режима DMA. Следует сразу приготовиться к тому, что мануал будет большого размера, потому как описать DMA, так чтобы это было понятно, в 2 страницы не получится. Кто не прочитал первую часть, советую сделать это сейчас, потому как здесь предполагается, что формат регистров 1F0-1F7 и функции битов BSY, DRDY, DRQ и других вы уже знаете.
Читать далее
Лайков 0 Комментариев0 Просмотров1.138

Как стать невидимым в Windows NT

26 авг 2004

Эта статья описывает техники скрытия объектов, файлов, сервисов, процессов и т.д. в ОС Windows NT. Эти методы основаны на перехвате функций Windows API, что описано в моей статье "Hooking Windows API".
Читать далее
Лайков 0 Комментариев0 Просмотров416

Interview with Privalov the author of FASM

12 авг 2004

Interview with the author of well known compiler FASM.
Читать далее
Лайков 0 Комментариев0 Просмотров519

Интервью с Privalov'ым, создателем FASM

12 авг 2004

Интервью с автором известного и пользующего заслуженной популярностью компилятора FASM.
Читать далее
Лайков 0 Комментариев0 Просмотров464

Socket vs Socket часть 2, или скажем “нет” протоколу TCP

9 авг 2004

В первой части, посвященной основам использования сокетов MS Windows в ассемблерных программах, мы говорили о том, что такое сокеты, как они создаются и какие параметры при этом эадаются. Тогда же вскользь было сказано про не ориентированный на соединение протокол UDP, который не гарантирует доставку пакетов, а также очередность их поступления к пункту назначения. В учебном примере тогда использовался наш любимый протокол TCP. И все было у нас хорошо, но в конце остался ряд нерешенных вопросов, в частности, как организовать взаимный обмен между несколькими компьютерами в сети, как передать что-либо сразу многим компьютерам и т.д.
Читать далее
Лайков 0 Комментариев0 Просмотров827

Драйверы режима ядра: Часть 14: Базовая техника. Синхронизация: Использование объекта

3 авг 2004

Используя объект "событие" драйвер может уведомлять своего клиента режима пользователя об интересующих его изменениях, происходящих в ядре. В этот раз мы также познакомимся с некоторыми методами поиска неэкспортируемых ядром объектов.
Читать далее
Лайков +1 Комментариев0 Просмотров519

Почти все, что вы хотели знать о Flash BIOS: Часть 1

29 июл 2004

В данной статье я рассмотрю следующие вопросы: 1) что такое флэш, принципы работы и строения флэш, как программно работать с флэш; 2) вопрос «можно ли сделать запись в флэш для защиты программ?»
Читать далее
Лайков 0 Комментариев0 Просмотров2.048

Кое-что об устойчивости и защищенности Windows CE на ARM-платформе

21 июл 2004

Надеюсь, не найдется человека, который никогда не слышал о таких нелепых дырах в защите Win 9x, как незащищенные системные структуры и последствия к которым приводит такая халатность (создание своего callgate-а в таблице дескрипторов, или запись в незащищенные таблицы страниц). В данной статье будет проведено небольшое исследование, посвященное аналогичным проблемам WinCE на ARM v5 - платформе.
Читать далее
Лайков 0 Комментариев0 Просмотров563

Подрубаем эмулятор PocketPC к eVC и ActiveSync

10 июл 2004

Далее речь пойдет о том, как не имея на руках физического девайса можно благополучно отлаживать/запускать свою/чужую прогу, используя eVC и эмулятор из PPC SDK 2003. Я долго парился (насколько мне известно - не я один) с этой задачей и, наконец, совершенно случайно все заработало. Очень помогла статья CJCraft's Blog – фактически в ней все правильно изложено, однако опущены некоторые ключевые моменты, которые и удалось вычислить bruteforce-ом.
Читать далее
Лайков 0 Комментариев0 Просмотров457

Программирование на ассемблере под PocketPC

7 июл 2004

Для начала разберемся с основными понятиями и определениями: PocketPC и Windows CE – это (с недавних пор) одна и та же операционная система реального времени (real-time OS); предназначена она для т.н. встраиваемых (embedded) систем (КПК, банкоматы, бортовые компьютеры в автомобилях и т.п.).
Читать далее
Лайков 0 Комментариев0 Просмотров371

Програмерский спецназ

2 июл 2004

Уступая пожеланиям трудящихся :), я решил посмотреть, можно ли извлечь какой-нибудь практический смысл из использования Alt-кодов. Это пересеклось с другой давно меня занимавшей темой. Представьте необитаемый остров, пещеру, а в ней много "железа", но почти нет софта.
Читать далее
Лайков 0 Комментариев0 Просмотров460

Защита, использующая хасп-ключ. Часть 3: USB

20 июн 2004

Данная статья является расширением к моим статьям ("Защита, использующая хасп-ключ" и "Защита, использующая хасп-ключ. Часть 2"), посвященным анализу защиты этой программы.
Читать далее
Лайков 0 Комментариев0 Просмотров448

Теоретические основы крэкинга: Глава 6. Куда попадают данные.

13 июн 2004

На протяжении уже двух глав я рассказывал о техниках поиска данных всевозможных типов. Подобно муравьям, мы трудились, учась собирать по крупицам полезную информацию, которая могла бы помочь понять структуру и смысл этих данных. И теперь вы знаете, как «просеивать» мегабайты листингов, извлекая из них константы и указатели, как вести поиск переменных в адресном пространстве работающей программы. Все это время мы рассматривали «живые», находящиеся внутри работающей программы данные отдельно от «мертвых», тихо лежащих на жестком диске и никак себя не проявляющих. И вот пришло время осуществить синтез, увидеть диалектическую взаимосвязь между этими двумя формами существования данных, и, главное, понять, какую практическую пользу из этой взаимосвязи можно извлечь.
Читать далее
Лайков 0 Комментариев0 Просмотров489

FTP-протокол + WinSocks на примере простого FTP-клиента (зеркала)

13 июн 2004

В этой статье я не ставлю себе целью пересказать все RFC касающиеся протокола FTP, коих не мало, в них вы сможете найти информацию гораздо полнее, попытаюсь лишь в общих чертах познакомить Вас с протоколом FTP и основными приемами работы с ним со стороны клиента.
Читать далее
Лайков 0 Комментариев0 Просмотров322

Определение конфигурации на аппаратном уровне

13 июн 2004

В данной статье мы рассмотрим вопросы нахождения и определения параметров различных устройств.
Читать далее
Лайков 0 Комментариев0 Просмотров1.093

Ошибки переполнения буфера извне и изнутри как обобщенный опыт реальных атак (окончание)

9 июн 2004

Рассматривая различные механизмы переполнения и обсуждая их возможные последствия, ранее мы не касались таких "организационных" вопросов, как, например, порядок размещения переполняющихся буферов, затираемых переменных и служебных структур данных в оперативной памяти. Теперь пришло время восполнить этот пробел.
Читать далее
Лайков 0 Комментариев0 Просмотров719

Ошибки переполнения буфера извне и изнутри как обобщенный опыт реальных атак

7 июн 2004

Если вам нужен путеводитель по стране переполняющихся буферов, снабженный исчерпывающим руководством по выживанию – эта статья для вас!
Читать далее
Лайков 0 Комментариев0 Просмотров623

Циклический инкремент пароля

27 май 2004

В данной статье мы рассмотрим один аспект перебора паролей, на котором обычно не заостряют внимание при написании программ-брутфорсеров (программ для подбора паролей), а именно - непосредственно сам инкремент пароля, т.е. формирование следующего пароля для его анализа.
Читать далее
Лайков 0 Комментариев0 Просмотров755

Жизненный цикл червей

27 май 2004

Червями принято называть сетевые вирусы, проникающие в зараженные машины вполне естественным путем, без каких-либо действий со стороны пользователя. Они ближе всех остальных вирусов подобрались к модели своих биологических прототипов и потому чрезвычайно разрушительны и опасны. Их не берут никакие превентивные меры защиты, антивирусные сканеры и вакцины до сих пор остаются крайне неэффективными средствами борьбы. Нашествие червей нельзя предвидеть и практически невозможно остановить. Но все-таки черви уязвимы.
Читать далее
Лайков 0 Комментариев0 Просмотров569

Защита программ с помощью сетей Петри

18 май 2004

Что такое сеть Петри? Сеть Петри – это двудольный ориентированный мультиграф. Ну вот, я уже вижу, как большинство читателей в ужасе пытаются закрыть страницу. Но не стоит так пугаться - прочитайте спокойно до конца и, по крайней мере, вы узнаете кое-что новое и интересное.
Читать далее
Лайков 0 Комментариев0 Просмотров536

ATA для дZенствующих. Часть 1

18 май 2004

В этом мануале речь пойдет о программировании винтов и cd-rom-ов на полностью аппаратном уровне. В конце сего действа мы напишем на ассемблере пару процедур для работы с винчестером на уровне портов и даже рассмотрим код, который может работать с треем cd-rom.
Читать далее
Лайков 0 Комментариев0 Просмотров1.055

Dll в машинных кодах

18 май 2004

В статье «Приложение Windows голыми руками» было показано, как с помощью debug «вручную» собрать простейшее Win32 exe-приложение с MessageBox’ом. На этот раз предлагается аналогичным образом создать простейшую dll; это тематическое продолжение прошлой статьи и в то же время необходимый фундамент для статей будущих - поскольку я собираюсь рассказывать в них о создании в машинных кодах компонентов COM, а для них обойтись без dll ну никак нельзя.
Читать далее
Лайков 0 Комментариев0 Просмотров459

Защита, использующая хасп-ключ. Часть 2

11 май 2004

В данной статье будет подробно описано, как именно устроен код, общающийся с ключом и реализующий так называемые "функции" хасп-ключа и исследован метод эмуляции не отклика самого ключа (команды ввода-вывода), но эмуляции функций хасп-ключа.
Читать далее
Лайков 0 Комментариев0 Просмотров553

Защита, использующая хасп-ключ. Часть 1

11 май 2004

Программа включает в себя следующие компоненты: рабочий модуль prog.exe, возможно частично зашифрованный, два VxD драйвера: haspbig.vxd, весом полмегабайта, статический (загружаемый системой при старте) и hasplit.vxd, небольшой и динамический (загружаемый программой prog.exe при запуске). В порт компьютера LPT воткнут hasp-ключ.
Читать далее
Лайков +1 Комментариев0 Просмотров394

Способы обхода отладчиков режима пользователя

8 май 2004

В этой статье я рассмотрю способы одурачивания отладчиков режима пользователя. Я попытаюсь разложить по полочкам все известные мне методы и предложить читателю несколько своих.
Читать далее
Лайков 0 Комментариев0 Просмотров503

Приложение Windows «голыми руками»

4 май 2004

Впервые запустив вновь установленный Windows XP Pro и набрав в командной строке debug, я был весьма удивлен, увидев дефис в консольном окне - знакомое приглашение старого отладчика DOS. Эта любопытная вещица является именно тем инструментом, который нам нужен. Кроме него, нам потребуется немного знаний о формате исполняемых файлов PE и процессе их загрузки в память.
Читать далее
Лайков 0 Комментариев0 Просмотров388

Драйверы режима ядра: Часть 13: Базовая техника. Синхронизация: Взаимоисключающий доступ

3 май 2004

Часто встречающейся задачей, которую решает синхронизация, является задача монопольного доступа к данным. Создадим несколько потоков, которые под контролем мьютекса будут работают с одним и тем же ресурсом.
Читать далее
Лайков 0 Комментариев0 Просмотров376

Теоретические основы крэкинга: Глава 5. Структуры, массивы, ссылки.

25 апр 2004

Сразу отмечу, что эта глава посвящена не столько непосредственному взлому программ, сколько техникам "вытаскивания" структурированной информации, упрятанной в недрах исполняемых файлов.
Читать далее
Лайков 0 Комментариев0 Просмотров627

Вирусное оружие

19 апр 2004

Статья автора книги <a href="http://www.abook.ru/browse.php?cmd=describe&id=6527">Энциклопедия по защите от вирусов</a>, опубликованная в журнале<a href="http://www.argc-argv.relc.com/index.php">ArgC&amp;ArgV</a>, в которой раскрываются аспекты вирусного оружия.
Читать далее
Лайков 0 Комментариев0 Просмотров527

Создание нестандартных элементов управления с использованием макросов FASM

11 апр 2004

С использованием директивы <strong>fix</strong> появилась возможность создать свои контролы (элементы управления) без использования библиотек dll и obj-файлов. На мой взгляд плюс в включении контролов в виде макросов в том, что есть возможность изменять их функциональность так, как нужно в каждом конкретном случае. Ещё большим плюсом на мой взгляд является то, что всегда известно как данный элемент будет себя вести т.к. известен его исходный код.
Читать далее
Лайков 0 Комментариев0 Просмотров736

Драйверы режима ядра: Часть 12: Базовая техника. Синхронизация: Таймер и системный поток

5 апр 2004

В этой статье мы познакомимся с синхронизацией. Создадим поток и таймер. Поток по сигналу таймера будет что-то делать, а мы будем ждать завершения его работы.
Читать далее
Лайков +1 Комментариев0 Просмотров503

Исследование InstallShield 6+ – обзор методик

5 апр 2004

В этой статье мы хотим продемонстрировать различные подходы к исследованию программ, использующих технологию Install Shield (в дальнейшем – IS). IS используется при инсталляции практически любого серьезного программного продукта – дистрибутивы Adobe, Microsoft, Intel, Compuware и т.д., и т.п. Подход, предлагаемый в этой статье – декомпиляция сценария инсталляции – трудно назвать новым. В сети уже существуют утилиты и даны некоторые описания, однако, их сложно назвать современными. Все они безнадежно устарели. В представленной на ваше рассмотрение статье мы попробуем восполнить это упущение.
Читать далее
Лайков 0 Комментариев0 Просмотров447

Обзор "Agent Aeka"

1 апр 2004

Бывают моменты, когда хочется отдохнуть от стандартных 26-ти и 52-х серийных картин, повествующих о любви, крепкой дружбе и прочих благообразных глупостях и посмотреть что-нибудь для души часика на два-три. Обычно эту роль берут на себя OVA или Movie. В данном обзоре я хочу рассказать о весьма необычной, смешной и чуть-чуть пародийной овашке "Agent Aika".
Читать далее
Лайков 0 Комментариев0 Просмотров317

Разработка больших проектов на ассемблере

25 мар 2004

Исследуемые здесь принципы разработки больших проектов, пожалуй, должны работать для любого языка. В этом плане они «кросс-платформенны». Сразу оговорюсь, что я не глаголю аксиому. Это лишь моё мнение, мои размышления, мой опыт программирования на асме. Где-то – моя биография. Я приветствую иные мнения. И буду внимательно читать Ваши отзывы.
Читать далее
Лайков 0 Комментариев0 Просмотров583

Теоретические основы крэкинга: Глава 4. Переменные и константы.

10 мар 2004

Одна из первых задач, с которыми сталкивается крэкер - поиск в тексте программы констант или обращений к переменным, отвечающих за реализацию ограничений в незарегистрированных и демонстрационных программах. Нередко также возникает необходимость извлечь из программы какие-либо данные, либо заменить их своими собственными. Поскольку в данной главе пойдет речь не только об изучении, но и об изменении программ, сразу же ознакомлю Вас с одним из важнейших, с моей точки зрения, принципов, которым нужно руководствоваться, если приходится прибегать к модификации данных или исполняемого кода.
Читать далее
Лайков 0 Комментариев0 Просмотров687

Написание плагина — эмулирующего отладчика для дизассемблера IDA

8 мар 2004

Я понимаю, что отладчик для IDA, начиная с версии 4.5 существует, но во-первых не у всех она есть, во-вторых создать отладчик своими руками очень даже интересное дело, поможет поближе ознакомится с устройством IDA и её плагинов.
Читать далее
Лайков +1 Комментариев0 Просмотров674

Введение в использование скриптовых движков: Часть 2

24 фев 2004

Если вы помните, в предыдущей статье было рассказано об основах управления скриптовыми движками, в частности о том, как заставить выполняться простейший скрипт. В том примере было мало интересного - скрипт жил сам по себе и, отработав, просто возвращал управление основной программе. Сейчас настало время рассмотреть более полезные техники, а именно, как передать скрипту какие-нибудь параметры и наоборот - получить от него информацию (например, о результатах работы).
Читать далее
Лайков 0 Комментариев0 Просмотров518

Антивирусные технологии: эмуляция программного кода

27 янв 2004

Эта статья не является продолжением пособия по написанию антивирусных программ, это всего лишь теоретическое описание технологии используемой в «хороших» антивирусных программах. Причем технологии далеко не примитивной, а очень и очень сложной для понимания и реализации…
Читать далее
Лайков 0 Комментариев0 Просмотров1.560

Драйверы режима ядра: Часть 11 : Базовая техника: Каталоги и файлы

22 янв 2004

Обеспечение возможности работы с файлами является важнейшей задачей любой операционной системы. Некоторые аспекты работы с файлами рассмотрены в этой статье.
Читать далее
Лайков +1 Комментариев0 Просмотров310

Теоретические основы крэкинга: Глава 3. «Критические дни» программ.

13 янв 2004

После того, как мы успешно установили программу, неизменно наступает торжественный момент первого запуска программы (конечно, если инсталлятор не испортил нам удовольствие, запустив программу автоматически). Немало программ содержат ограничения на время пробного использования, и потому необходимо со всей ответственностью отнестись к первому (да и не только к первому, как мы увидим в дальнейшем) запуску программы.
Читать далее
Лайков 0 Комментариев0 Просмотров682

Теоретические основы крэкинга: Глава 2. Почти начинаем ломать.

13 янв 2004

Итак, допустим, что у нас есть программа и в ней содержится вредоносный код (далее - «защита»), который нужно обезвредить. Инсталляционный файл тихо лежат на нашем винчестере, ожидая того знаменательного момента, когда мы его запустим, чтобы извлечь на свет скрытую в его недрах программу. Мне вполне понятно Ваше желание немедленно установить эту программу и вступить в битву со злобным и коварным врагом, но охладите на несколько минут свой пыл, и послушайте мой рассказ о процессе инсталляции программ, и чем этот процесс может кончиться.
Читать далее
Лайков 0 Комментариев0 Просмотров701

Программирование на языке Assembler в FASM

6 янв 2004

В этом сочинении будут рассмотрены основные моменты отличающие FASM от других компиляторов, правила по которым пишутся макросы и форматы выходных файлов создаваемые FASM-ом. Так же в рамках данного сочинения мы создадим несколько контролов в виде макросов.
Читать далее
Лайков 0 Комментариев0 Просмотров726

Введение в использование скриптовых движков: Часть 1

3 янв 2004

В этой статье я попытаюсь рассказать о том, как добавить поддержку скриптовых языков в программу, написанную на ассемблере. Возможно, это самый простой путь добавить поддержку макросов в свою программу и может быть кому-то это и пригодится ;).
Читать далее
Лайков 0 Комментариев0 Просмотров515

Основы разработки антивирусного сканера

24 дек 2003

В этой статье речь пойдет о разработке примитивного антивирусного программного обеспечения, точнее сказать антивирусного сканера. Сканнерами называют программы, которые проверяют файлы на предмет зараженности их известными программе вирусами. Прочитав эту статью, я не гарантирую, того, что вы в тот же момент станете умнейшим вирусным аналитиком, эта область программирования достаточно необычна и тяжела для понимания. Сталкиваясь с ней (областью) «вплотную» в первый раз очень тяжело сразу «взять быка за рога». Но в этой статье я попытаюсь изложить основы, так что вполне возможно, то, что будет описано ниже вы, уже знали.
Читать далее
Лайков 0 Комментариев0 Просмотров653

Драйверы режима ядра: Часть 10: Базовая техника: Реестр

23 дек 2003

В режиме пользователя обращение к реестру производится с помощью мнемонических обозначений его корневых разделов: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER и т.д. В режиме ядра обращаться к реестру следует более уважительно - по имени. Как его зовут? Читайте статью.
Читать далее
Лайков +1 Комментариев0 Просмотров351

Немного о эксплоитах…

21 дек 2003

Давайте представим, что мы имеем в наличии следующее: удалённая ситема win2k/XP/NT4, уязвимое серверное приложение с возможностью переполнения стека через strcpy() иль sprintf() и наше желание этой системой поуправлять от имени этого приложения.
Читать далее
Лайков 0 Комментариев0 Просмотров471

Теоретические основы крэкинга: Глава -1. Орудия крэкера.

16 дек 2003

Инструменты – это материальная основа крэкинга, без инструментов в крэкинге – никуда, но сами по себе инструменты – не более чем набор байтов, и лишь человеческая мысль оживляет их, заставляя творить чудеса.
Читать далее
Лайков 0 Комментариев0 Просмотров876

Теоретические основы крэкинга: Глава 0. Дзен-крэкинг. Теория.

13 дек 2003

Идея, лежащая в основе дзен-крэкинга (именно это название широко используется на сайте Fravia для обозначения той системы крэкинга, о которой я рассказываю), звучит так: «я не знаю, как это работает, но я знаю, как это сломать». Разумеется, речь не идет об абсолютном незнании того, как функционирует программа – знание команд ассемблера, способов передачи параметров в функции и процедуры, назначения системных вызовов ОС, особенностей кодогенерации определенных компиляторов и многого другого, несомненно, является обязательным.
Читать далее
Лайков 0 Комментариев0 Просмотров705

Теоретические основы крэкинга: Введение

12 дек 2003

За пять лет более или менее активного занятия крэкингом (а именно столько времени прошло с того знаменательного момента, как я открыл счет взломанным программам) мне удалось выработать набор методов, позволяющих сравнительно быстро найти подход к большинству программ. Возьму на себя смелость утверждать, что именно эта система наиболее доступна для начинающих, поскольку она базируется не на раскрытии алгоритма работы защиты в целом, а на более простом процессе анализа сравнительно небольших участков кода и установлении взаимосвязи между ними.
Читать далее
Лайков 0 Комментариев0 Просмотров955

Драйверы режима ядра: Часть 9: Базовая техника: Работа с памятью. Разделяемая память

27 ноя 2003

В этой статье рассмотрен ещё один метод совместного использования памяти драйвером и пользовательским процессом. Для драйверов этот метод намного более естественен.
Читать далее
Лайков +1 Комментариев0 Просмотров482

Драйверы режима ядра: Часть 8: Базовая техника: Работа с памятью. Совместно используемый раздел

13 ноя 2003

Совместно используемый объект “раздел” может служить средством обмена данными не только для пользовательских процессов, но и для драйверов. В этой статье именованный раздел используется для обмена данными между пользовательским процессом и драйвером.
Читать далее
Лайков +1 Комментариев0 Просмотров338

Об упаковщиках в последний раз. Часть вторая

6 ноя 2003

Итак, мы продолжаем. Подразумевается, что вы ознакомились с первой частью статьи и теперь владеете минимумом теории. Однако мы еще более повышаем требования. Теперь, для успешного и полного понимания <strong>SEH</strong> (Structured Exception Handling) и некоторых приемов, тут продемонстрированных, вам придется иметь базовое представление о <strong>С++</strong>. Мы не будем особо далеко лезть в дебри родовых классов, виртуальных функций и т.п., но самые основы <strong>OOП</strong>, такие как наследование, вам необходимо (по крайней мере, желательно!) знать.
Читать далее
Лайков 0 Комментариев0 Просмотров2.281

Написание Plugin модулей для IDA. Основы.

6 ноя 2003

На данный момент IDA является пожалуй самым мощным дизассемблером, обладающим огромным количеством возможностей. Но всё это сводилось бы на нет, если бы не ещё одна - возможность расширения стандартных функций посредством дополнительных модулей, в простонародии - плагинов. Рассмотрим теперь подробнее как же эти плагины писать.
Читать далее
Лайков +1 Комментариев0 Просмотров1.229

Способы фильтрации сетевого траффика в Windows 9x/2000/Net.2003 Server

1 ноя 2003

В данной статье даются основные сведения по способам фильтрации сетевого траффика в Windows 9x/2000/Net.2003 Server, даётся описание фильтрации IP-траффика в Windows 2000 на основе Windows 2000 Filter-Hook Driver способа.Также указываются особенности реализации других методов фильтрации.
Читать далее
Лайков 0 Комментариев0 Просмотров675

Построение простого EPO мотора

1 ноя 2003

В данной статье мы рассмотрим моделирование простого EPO мотора. На данную тему уже было написано несколько статей, но они в большей степени теоретические. В этом тексте будет рассмотрено, как теоретическое моделирование, так и пример применения этой теории. В качестве примера будет разобран мой ЕPO мотор - SPOT.
Читать далее
Лайков 0 Комментариев0 Просмотров296

Socket vs Socket, или использование сокетов MS Windows в ассемблерных программах

31 окт 2003

Теория применения сокетов совсем недавно была описана в статье “Сокеты M$ Windows”, которую вы можете легко найти в разделе “Статьи/Сеть”. Не будем повторяться, но вкратце скажем, что сокеты определяют логику для программирования сети аналогичную работе с файлами. В разделе “Исходники/Сеть и коммуникации” уже давно (со времен wasm.zite.ru) имеется рабочая небольшая программа “ledilog.zipconnect.asm”, в которой на основе использования сокетов реализован обмен текстовыми сообщениями между двумя компьютерами в сети. Таким образом, накопилась критическая масса, состоящая из некоторого минимума теории и кое- каких практических материалов. Все это и подтолкнуло автора к использованию в своем проекте (детали в данном случае не важны) связи по локальной сети между компьютерами на основе сокетов MS Windows. Однако все оказалось не так просто, как хотелось. Впрочем, как и всегда...
Читать далее
Лайков 0 Комментариев0 Просмотров726

Драйверы режима ядра: Часть 7: Работа с памятью. Использование ассоциативных списков

27 окт 2003

Операция выделения памяти из системных пулов требует времени, т.к. диспетчер куч пытается подобрать свободный блок подходящего размера. Так называемые ассоциативные списки, при правильном использовании, могут сократить это время до минимума.
Читать далее
Лайков +1 Комментариев0 Просмотров550

Неявный самоконтроль как средство создания не ломаемых защит

17 окт 2003

Основная ошибка подавляющего большинства разработчиков защитных механизмов состоит в том, что они дают явно понять хакеру, что защита еще не взломана. Если защита сообщает "неверный ключевой файл (пароль)", то хакер ищет тот код, который ее выводит и анализирует условия, которые приводят к передаче управления на данную ветку программы.
Читать далее
Лайков 0 Комментариев0 Просмотров376

Драйверы режима ядра: Часть 6: Базовая техника: Работа с памятью. Использование системных куч

2 окт 2003

С этой статьи мы начинаем разбирать некоторые базовые техники, без которых трудно представить себе создание мало-мальски полезного драйвера. Работу с памятью рассмотрим в первую очередь.
Читать далее
Лайков +1 Комментариев0 Просмотров625

IDE для больших проектов на ассемблере

1 окт 2003

Перейдем к более интересному, а именно большим проектам. Традиционно считается, что на ассемблере сейчас большие проекты не пишутся (или вообще ничего не пишется). А мне, например, нравится и у меня есть несколько проектов с количеством строк, большим 10 000 у каждого. Причем менять язык я не планирую, а число проектов - только увеличивать.
Читать далее
Лайков 0 Комментариев0 Просмотров847

Поиск адресов API в win95-XP

26 сен 2003

На эту "избитую" тему написано уже много статей, но представлю на ваше обозрение еще одну. Кстати, в этой статье вы не найдете подробного описания полей PE заголовка и технологии поиска API, предполагается, что в этом вы уже разбираетесь. Так же не буду останавливаться на очевидных моментах, это уже тысячу раз перетиралось.
Читать далее
Лайков 0 Комментариев0 Просмотров387

GBA ASM - День 7: Всё о макросах

23 сен 2003

Макросы - это алиасы для участков кода. Они делают вашу ассемблерную жизнь проще, так как вам не нужно запоминать куски кода (возможно, большие), которые вы часто употребляете.
Читать далее
Лайков 0 Комментариев0 Просмотров310

Заклинание кода: Заин

22 сен 2003

В прошлых главах мы изучили практически все основы, необходимые для сотворения правильно работающих заклинаний, а в предыдущей главе была проведена небольшая демонстрация могущества, которое есть у каждого заклинателя кода. Однако мы еще не рассмотрели две важные темы, а именно - префиксы и использование 16-ти битных инструкций в 32-х битном коде.
Читать далее
Лайков 0 Комментариев0 Просмотров596

IPC

17 сен 2003

Рано или поздно у любого человека, написавшего больше одной программы, появляется желание заставить эти программы как-то общаться между собой. Это желание со временем растет и крепнет, и в конце концов достигает таких огромных размеров, что его просто необходимо удовлетворить.
Читать далее
Лайков 0 Комментариев0 Просмотров451

История одного байта

11 сен 2003

Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Hет, я не псих, хотя одному богу известно, сколь тонкой была граница отделявшая меня от этого состояния. Hо все по порядку.
Читать далее
Лайков 0 Комментариев0 Просмотров1.602

SentinelLM!WlscGen_CRK_2

10 сен 2003

Дорогие коллеги, предлагаю вашему вниманию заключительную статью из цикла о SentinelLM. Вы уже знаете, что от полного счастья нас отделяет одна единственная функция SLM API. Итак, пришло время нанести смертельный удар по SLM SDK, т.е. пропатчить функцию RNBOsproQuery.
Читать далее
Лайков 0 Комментариев0 Просмотров664

Ассемблер в *nix – удел извращенца..?

1 сен 2003

Да, асм в <strong>*nix</strong> таки существует. Просто многие в это почему-то отказываются верить. Данная статья скромно претендует развеять все мифы и загадки вокруг этого загадочного явления. Не ищите здесь подробного описания <strong>AT&T</strong> синтаксиса и системных вызовов – я просто попробую описать те трудности и невзгоды, которые обязательно придется преодолеть смельчаку, желающему полностью овладеть <strong>*nix</strong>-ом через асм (в смысле - научиться программировать на асме под <strong>*nix</strong>, прим. для CyberManiac-а :) ).
Читать далее
Лайков 0 Комментариев0 Просмотров710

Ассемблер в Unix

1 сен 2003

Так исторически сложилось, что программирование на ассемблере под unix почти не востребовано, и занимаются им только кодеры-маньяки, дзен-буддисты и прочие настоящие ассемблерщики.
Читать далее
Лайков 0 Комментариев0 Просмотров1.049

DVD firmware patching

26 авг 2003

Недавно в поисках чего бы мне такого еще крякнуть я, можно сказать совсем неожиданно, вспомнил про свой DVD-ROM. Точнее это не было большой неожиданностью, просто моя творческая натура потребовала от меня сразу после покупки DVD-ROM-a немного поиграться с установками региональной защиты. В результате, как всегда и получается, дисковод заблокировался на американском регионе (номер 1), в то время как мне требовалось просмотреть фильм из родной Россияно-Африканской :) 5-ой зоны. Таким образом, остро стал вопрос о том как исправить это положение. Я не буду расспространяться о том, как я отношуть ко всем этим "изобретениям" буржуев, призванных ограничить мои потребительские права.
Читать далее
Лайков 0 Комментариев0 Просмотров539

Руководство по проектированию макросов в MASM32

25 авг 2003

В этом руководстве раскрывается тема создания, использования (а главное – проектирования) макросов и макрофункций в проектах на MASM32.
Читать далее
Лайков 0 Комментариев0 Просмотров1.941

Создание приложений на ассемблере для Menuet OS

23 авг 2003

В данной статье я собираюсь объяснить, как писать приложения на 32-х битном ассемблере для маленькой и неприхотливой системы Menuet.
Читать далее
Лайков 0 Комментариев0 Просмотров408

GBA ASM - День 6: Простые звуковые эффекты

21 авг 2003

У GBA есть шесть звуковых каналов. Сегодня мы изучим только первые 4 (1-4), которые используются внутренним GBC GBA. Другие два канала - это прямые звуковые каналы, которые могут проигрывать сконвертированные звуковые файлы - о них мы сегодня говорить не будем. ПРИМЕЧАНИЕ: термин "direct sound" в данном контексте является не более чем полуофициальным названием 5 и 6 звуковых каналов GBA и никак не связан с DirectSound, который является частью мультимедийной библиотеки для Windows от Microsoft.
Читать далее
Лайков 0 Комментариев0 Просмотров278

Интервью с создателем пакета MASM32

21 авг 2003

Самым популярным пакетом для программирования на ассемблере в настоящее время является MASM32. Мы взяли интервью у hutch'а, его создателя, проживающего в настоящее время в Австралии.
Читать далее
Лайков 0 Комментариев0 Просмотров383

GBA ASM - День 5: Помещение спрайта на экран

14 авг 2003

Этот день посвящён спрайтам, а если более точно тому, как вывести его на экран. Да, именно так - всё, что мы будем делать сегодня - это выведем на экран 16-ти цветный спрайт размером 32x32 на экран.
Читать далее
Лайков 0 Комментариев0 Просмотров349

Об упаковщиках в последний раз: Часть первая - теоретическая

11 авг 2003

Решено было разбить эту статью на две-три части. Первая часть собственно теоретическая. Она дает абсолютно необходимый минимум теории, который позволит успешно распаковывать файлы. В статье также описывается формат XML, который затем переводится в CSS-HTML при помощи XSLT- процессора. Таким образом, наряду со знанием структуры PE-файла вы, по прочтении статьи, будете иметь самые базовые представления о XML/CSS/XSLT, Perl/Java и других страшных технологиях. Мы достаточно неплохо осознем, что тема уже достаточно замусолена, поэтому нудного пересказа PE- документации здесь не будет. Скорее, вам стоит воспринимать эту статью как некий коллектор, попытку обобщения и анализа всей доступной информации о пакерах, PE-файлах, антиотладке и т.п. А поскольку есть возможность перевода статей с испанского и французского языков (помимо стандартного английского), то должно получится что-то неплохое. процессами, обрабатывают исключения и т.п.
Читать далее
Лайков +1 Комментариев0 Просмотров856

GBA ASM - День 4: Обработка нажатий на клавиши

2 авг 2003

Ок, я допускаю, что настоящей клавиатуры в GBA нет! У GBA есть 10 клавиш: ВВЕРХ, ВНИЗ, ВЛЕВО, ВПРАВО, A, B, START, SELECT, L и R. Когда вы нажимаете клавишу, очищается соответствующий бит. Регистр клавиатуры находится по адресу 0x04000130.
Читать далее
Лайков 0 Комментариев0 Просмотров352

DirectX 8.1 в MASM32: Урок 5. Использование текста

1 авг 2003

Часто, когда приложение уже запущено, необходимо вывести некоторую полезную информацию: подсказки пользователю, содержимое переменных, сообщения об ошибках и т.д. Легко и быстро это делается с помощью текста.
Читать далее
Лайков 0 Комментариев0 Просмотров667

GBA ASM - День 3: Больше ассемблера и помещение картинки на экран

30 июл 2003

Во-первых, инструкции ADD и SUB расшифровываются как сложение (addition) и вычитание (substraction). Они обе могут иметь суффикс установки флагов, что особенно полезно, когда надо узнать, был ли результат операции равен нулю (0).
Читать далее
Лайков 0 Комментариев0 Просмотров347

SentinelLM!WlscGen_Crk_1

27 июл 2003

Это первая часть последней главы из цикла о SentinelLM, но уже после её прочтения вы должны быть в состоянии &quot;зарегистрировать&quot; и/или отучить от заглушки в порту (aka донгл) некоторые простенькие программы, продавшие душу Rainbow Tech.
Читать далее
Лайков 0 Комментариев0 Просмотров370

Перенос и переполнение - что они представляют собой на самом деле?

27 июл 2003

Данная статья ни в коем случае не претендует на полноту описания, и представляет собой лишь краткое дополнение к тем солидным учебным пособиям и справочникам, которые должны быть под рукой у каждого программиста. Просто мне не удалось найти ни в одном из подобных изданий тех элементарных сведений, которые будут изложены ниже. Видимо, авторам этот вопрос кажется настолько тривиальным и очевидным, что они не заостряют на нем внимания, полагая, что двух - трех строк достаточно для полного понимания. Однако это далеко не так - вопрос выходит далеко за те рамки, в которые его пытаются загнать авторы. А дело вот в чем.
Читать далее
Лайков 0 Комментариев0 Просмотров1.963

Нестандартный загрузчик

21 июл 2003

Данная статья предназначена для тех, кто хочет подробнее узнать о процессе начальной загрузки компьютера и поэкспериментировать с ним. Никакого специального программного обеспечения не потребуется: все описываемые действия проделываются с использованием отладчика debug, входящего в состав Windows 95/98. Проделав описанные в статье действия на своем компьютере, вы сможете создать вспомогательную программу wb.com и установить в реестре ее ассоциацию с расширением файлов .bot, что позволит одним щелчком мыши переносить созданные с помощью debug файлы на дискету, сделав ее загружаемой.
Читать далее
Лайков 0 Комментариев0 Просмотров683

MASM.OpenGL.1.First.Blood

21 июл 2003

В предыдущей части мы занимались теорией, а сегодня пришло время практики. Давайте разбираться.
Читать далее
Лайков 0 Комментариев0 Просмотров540

GBA ASM - День 2: Немного информации об ассемблере ARM

14 июл 2003

ARM - это компания, которая делает процессор GBA. Процессоры ARM являются RISC-процессорами (в отличии от процессоров INTEL). RISC расшифровывается как Reduced Instruction Set Computers (CISC - Complex ...). Хотя в этих процессорах не так много инструкций (что хорошо), инструкции ARM (а может и других RISC-процессоров, я не знаю) имеют много различных назначений и комбинаций, что делает RISC-процессорами таким могущественными, каким они являются.
Читать далее
Лайков 0 Комментариев0 Просмотров1.215

GBA ASM - День 1: Постигаем ассемблер

13 июл 2003

Вы можете спросить, будем ли мы использовать тот же ассемблер, который идёт вместе с GCC. Короткий ответ: НЕТ. Развёрнутый ответ: мы будем использовать ассемблер Goldroad, который можно найти на его сайте. Я использую версию 1.6F. Вам следует скачать самую последнюю версию ассемблера и распаковать её куда-нибудь, так чтобы в пути не было пробелов. Если в пути нет пробелов - это всегда существенно облегчает жизнь.
Читать далее
Лайков 0 Комментариев0 Просмотров818

MASM.OpenGL.0.Introduction

8 июл 2003

Много тысяч лет тому назад наш прапрапрадедушка собрал травы и минералы и сделал из них краски. Рисовал он пальцами или использовал некое подобие кисти неизвестно. Но то, что создал этот первобытный Мастер до сих пор поражает воображение.
Читать далее
Лайков 0 Комментариев0 Просмотров583

SentinelLM!SDK_Keygen

4 июл 2003

В предыдущей главе мы славно потрудились и получили VId нашей жертвы. Наша следующая цель -- подсунуть этот VId инсталлеру Sentinel SDK (вы уже скачали 80-тонный архивчик?) и получить генератор лицензионных цепочек ИМЕННО для нашей жертвы.
Читать далее
Лайков 0 Комментариев0 Просмотров329

Стеганография - искусство пряток

3 июл 2003

Нет! Стеганография - это не наука, изучающая стегозавров, это наука скрывания сообщений, но не путем их превращения в нечто нераспозноваемое, как это происходит в криптографии, а путём того, чтобы они оставались незамеченными.
Читать далее
Лайков 0 Комментариев0 Просмотров763

SentinelLM!Vendor_Id

1 июл 2003

Vendor Id (далее просто VId) -- уникальное 16-битное значение в диапазоне 0x0000 -- 0xFFFF, присваиваемое каждому из клиентов Sentinel. Таким образом, Borland (aka Inprise) имеет свой VId; у Tanner Research тоже имеется по крайней мере один идентификатор.
Читать далее
Лайков 0 Комментариев0 Просмотров313

SentinelLM!Вступление

1 июл 2003

Данная статья представляет собой первый выпуск элементарного пособия -- а-ля SentinelLM for Dummies -- которое должно помочь начинающему хакеру перейти в разряд хакеров подготовленных! Sentinel License Manager (далее просто SLM) является продвинутой системой защиты коммерческих приложений от взлома (пардон, имеется ввиду реверсинг в чисто познавательных целях).
Читать далее
Лайков 0 Комментариев0 Просмотров414

Процессор INTEL в защищенном режиме #13

26 июн 2003

Вновь приветствую тебя, уважаемый читатель! И пусть никого не отпугнет номер выпуска (кстати, сегодня еще к тому же и пятница тринадцатое); сегодня мы продолжим интереснейшую тему – а именно тему защиты в защищенном режиме (простите за каламбур), которую предоставляет любой современный процессор из семейства Intel (вид x86). Несмотря на номер выпуска, ничего общего с мистикой данная тема не имеет, все до безобразия просто и прозаично. В качестве развлечения в сегодняшнем выпуске объявляется начало конкурса на отыскание ошибки... в самОм официальном мануале от Intel-а! (см. в конце)
Читать далее
Лайков 0 Комментариев0 Просмотров515

Фрагмент из первого издания книги "Техника и философия сетевых атак"

11 июн 2003

Мир давно привык к тому, что популярные технологии вовсе не обязательно бывают хорошими. Именно так произошло и в области защиты условно-бесплатного программного обеспечения.
Читать далее
Лайков 0 Комментариев0 Просмотров352

Процессор INTEL в защищённом режиме #12

21 май 2003

В это трудно поверить, но весь механизм защиты процессора Intel обеспечивается 3-мя флагами (+ еще 2 дополнительных при использовании страничной адресации) и 5-тью полями. Казалось бы, какую защиту могут обеспечить эти несчастные 8 (+2 до кучи) ребят? На самом же деле все довольно продумано и все чего надо они обеспечивают.
Читать далее
Лайков 0 Комментариев0 Просмотров491

Процессор INTEL в защищённом режиме #11

19 май 2003

Данный выпуск я бы назвал самым идейным и важным из всего цикла, т.к. он повествует о самой сердцевине защищенного режима и любой современной ОС - о самом механизме защиты.
Читать далее
Лайков 0 Комментариев0 Просмотров576

DirectX 8.1 в MASM32: Урок 4

19 май 2003

Основы трехмерной графики. Как это все работает. Я расскажу вам как устроен механизм визуализации в DirectX, и вы научитесь использовать в своей работе простые полигоны.
Читать далее
Лайков 0 Комментариев0 Просмотров787

Процессор Intel в защищенном режиме #10

14 май 2003

На создание данного выпуска побудила огромная неразбериха, творящаяся в литературе по описанию архитектуры различных ОС. Многие авторы, которые пишут свои книги со слов разработчиков ОС (Хелен Кастер) или сами являющиеся оными (Мэт Питрек) очень часто недоговаривают и перевирают некоторые наиважнейшие понятия (в некоторых случаях это делается специально, ввиду засекреченности того или иного аспекта), но путать три совершенно различных понятия адресного пространства - просто недопустимо. Авторы практически 90% книг копируют друг у друга различные определения, получается нечто вроде "испорченного телефона", а страдаем в конечном итоге мы.
Читать далее
Лайков 0 Комментариев0 Просмотров675

Процессор Intel в защищенном режиме #9

12 май 2003

После длительного затишья мы продолжаем изучать защищенный режим. В предыдущем выпуске был рассмотрен пример переключения процессора в защищенный режим БЕЗ использования страничной адресации. В данном выпуске будет рассмотрен код перевода проца в защищенный режим С использованием страничной адресации.
Читать далее
Лайков 0 Комментариев0 Просмотров484

Подробные замечания по книге "Атака из Интернет"

15 апр 2003

Многие считают, что область интересов нашей группы распространяется исключительно на кодинг. Это неправильное утверждение. То, что наш основной сайт посвящен кодингу отнюдь не означает, что нам чужды сетевые технологии. К вопросу о том, откуда и каким образом был взят нижеследующий документ: пол года назад мы заключили с КК двустороннее соглашение, освобождающее стороны от ответственности за взлом систем/сайтов участников. Счет был открыт КК 01.09.02 - дефейс wasm.ru. 01.04.03 мы сравняли счет, в доказательство чего приводим нижеследующий документ (подробности см. MS Security Bulletin MS03-008). Также считаем своим долгом заявить, что в результате успешно проведенной атаки было выяснено, что КК не врет, когда утверждает, что использует лицензионную версию IDA. А вот IRIS у него ворованный - за скачиванием оного с варезного сайта мы его "тепленьким" и взяли... Тепленький документик с тепленького винта тепленького Криса Касперски.
Читать далее
Лайков 0 Комментариев0 Просмотров608

Защита программы Ulead COOL 3D v3.5 (trial)

13 апр 2003

Ниже я собираюсь исследовать защиту этой проги, которая позволяет пользователю использовать ее функциональность только в течении календарного месяца (30 дней) или купить возможность ее использования неограниченно во времени.
Читать далее
Лайков 0 Комментариев0 Просмотров442

Примеры реальных взломов: UniLink v1.03 от Юрия Харона

8 апр 2003

Баста! Надоело! Все эти уродские защиты… (см. описания четырех предыдущих взломов) только портят настроение и еще, – чего доброго – вызывают у читателей смутное сомнение: а не специально ли автор подобрал такие простые программы? Может быть, он – автор – вообще не умеет ничего серьезного ломать?! Уметь-то он (вы уж поверьте) умеет, но публично описывать взлом "серьезных" программ – боязно, а в "несерьезных" хороших защит мне как-то и не попадалось.
Читать далее
Лайков 0 Комментариев0 Просмотров587

Примеры реальных взломов: Record Now

7 апр 2003

Из всех программ NEC'овый писец опознала лишь одна: Record NOW, которая, к счастью не имела никаких функциональных ограничений, исключая, правда 30-днейвый триальный период. Причем, программа оказалась такой уютной и удобной, что расставаться с ней мне не захотелось, но и расставаться со своими деньгами мне не хотелось тоже.
Читать далее
Лайков 0 Комментариев0 Просмотров428

Метаморфизм (часть II, техническая)

6 апр 2003

Первая часть была моим первым вкладом как мембера iKX. Это хорошо, и у меня уже есть некоторые наработки, так что я могу научить Вас многим интересным вещам. Метаморфизм – это техника не для всех этих чайников, ламеров и прочих новичков и даже не для людей со средними навыками. Это действительно элитная техника (хотя я и не люблю это слово, за то, что оно дискриминирует людей и показывает всю их ламерность...).
Читать далее
Лайков 0 Комментариев0 Просмотров434

Примеры реальных взломов: Intel C++ 7.0 Compiler

4 апр 2003

…компилятор Intel C++ 7.0 докачался глубокой ночью, часу где-то в пятом утра. Спать хотелось неимоверно, но и любопытство: была ли усилена защита или нет, тоже раздирало. Решив, что до тех пор пока не разберусь с защитой я все равно не усну, я, открыв новую консоль, и переустановив системные переменные TEMP и TMP на каталог C:TEMP, наскоро набил неприлично длинное имя инсталлятора W_CC_P_7.0.073.exe в командной строке (необходимость в установке переменных TEMP и TMP объясняется тем, что в Windows 2000 они по умолчанию указывают на очень глубоко вложенный каталог, а инсталлятор Intel C++ – да и не только он – не поддерживает путей такого огромного размера).
Читать далее
Лайков 0 Комментариев0 Просмотров818

Примеры реальных взломов: Intel Fortran 4.5

3 апр 2003

Ситуация с этим компилятором вкратце такова. В процессе работы над третьим томом "Образа мышления IDA" я исследовал большое количество компиляторов на предмет особенностей их кодогенерации и вытекающих отсюда трудностей восстановления исходного кода. Не избежал этой участи и "Intel Fortran Compiler", обнаруженный на диске "Научись сам программировать на FORTRAN".
Читать далее
Лайков 0 Комментариев0 Просмотров449

Примеры реальных взломов: Вступление

2 апр 2003

В настоящей книге все атаки рассматривались исключительно на примерах, специально написанных для демонстрации того или иного алгоритма программ 'CrackMe'. При этом многие из них были слишком искусственными и далекими от реальных защитных механизмов. Это было удобно для изложения материала, но не отражало реальных существующих защит. Поэтому я решил включить в приложения некоторые примеры реальных взломов. Все эти программы широко распространены и отражают средний уровень защиты условно-бесплатных программ. Заметим, что он существенно ниже, чем многие из предложенных в книге реализаций.
Читать далее
Лайков 0 Комментариев0 Просмотров513

Примеры реальных взломов: компилятор Intel С++ 5.0.1

2 апр 2003

Прежде, чем приступать к обсуждению аспектов стойкости защиты компилятора Intel C++ 5.0.1, считаю своим долгом заявить, что я глубоко восхищен этим великолепным программным продуктом и ломать его на мой взгляд по меньшей мере кощунственно. Впрочем, сегодня только ленивый не найдет в Сети кряк (один только Google по запросу "Intel C++ crack" выдает свыше 12 тысячи ссылок!), так что никакого вреда от данной публикации не будет.
Читать далее
Лайков 0 Комментариев0 Просмотров556

DirectX 8.1 в MASM32: Урок 3

26 мар 2003

Как определить все доступные полноэкранные режимы и при этом сделать так, чтобы пользователь смог выбирать в каком режиме работать приложению ? В этом нам поможет диалоговое окно.
Читать далее
Лайков 0 Комментариев0 Просмотров591

Метаморфизм (часть I)

9 мар 2003

Хорошо, начнем с основ. Для тех, кто еще не знает что такое метаморфизм, скажу, что суть этой техники заключается в ПОЛНОМ изменении тела вируса без изменения его функциональности. Проще говоря, это то же самое, что и полиморфизм декриптора, но примененный ко всему телу вируса.
Читать далее
Лайков 0 Комментариев0 Просмотров510

DirectX 8.1 в MASM32: Урок 2

7 мар 2003

Привет ! Сегодня мы научимся запускать приложение в полноэкранном режиме.
Читать далее
Лайков 0 Комментариев0 Просмотров369

DirectX 8.1 в MASM32: Урок 1

1 мар 2003

Все что у нас сейчас имеется это приложение, при запуске выводящее на экран окошко размером 320х240, и нам надо заставить работать в этом окне Direct3D. Как это сделать? Нет ничего проще!
Читать далее
Лайков 0 Комментариев0 Просмотров422

DirectX 8.1 в MASM32: Урок 0

26 фев 2003

Сидел я как-то в инете и наткнулся на сайт www.vvsu.ru/dkscs, а там, на цикл статей Дениса “Mr.Snow” Кожухова ( в данный момент сайт переехал на Xdev.ru ). Статьи были посвящены программированию Direct3D 8.1 на языке C++. Посмотрел я на них и подумал, а что если забацать тоже самое, но на MASM.
Читать далее
Лайков 0 Комментариев0 Просмотров389

Программирование игр на ассемблере (Часть 3)

22 фев 2003

По вашим многочисленным просьбам продолжаю перевод этой серии туториалов. И начнем с того, что же такое DirectInput и для чего он нужен? DirectInput был создан с целью решить проблемы со скоростью ввода. То есть это компонент, который получает данные ввода от пользователя с различных устройств (клавиатура, мышь, джойстик и т.д.) в обход операционной системы.
Читать далее
Лайков 0 Комментариев0 Просмотров425

Обзор некоторых защит на основе FLEXlm SDK

30 янв 2003

Данная статья написана как довесок к моей основной статье о профилировщиках. Здесь рассказывается, как устранить некоторые проблемы инсталляции и работы программ , использующих для своего функционирования набор API-функций, предоставляемых пакетом FlexLm. Так уж получилось, что подавляющее большинство профилировщиков, средств покрытия кода (т.е. средств, показывающих, сколько веток if и других циклов выполняется при нормальном течении хода проги, это очень полезно, т.к. показывает, насколько ваша прога "готова" к нестандартным изменениям ситуации, как тщательно вы подготовились к неприятностям, т.к. если ветки, которые получают управление редко, небрежно написаны, то в результате можно получить ой-ой-ой!) и выявления утечек памяти используют именно FlexLm. Среди них – Intel Compiler/Vtune environment, все продукты семейства DevPartner от Numega, и все опробованные мной продукты от Rational.
Читать далее
Лайков 0 Комментариев0 Просмотров832

Драйверы режима ядра: Часть 5: Полнофункциональный драйвер

21 янв 2003

Пришло, наконец, время взглянуть на то, к чему мы так долго стремились. Практически вся основная теория уже позади. Поэтому, сразу приступаем к разбору исходного текста драйвера, программу управления которым мы писали в прошлой статье.
Читать далее
Лайков +1 Комментариев0 Просмотров540

Новые инструкции Pentium 4: группа SSE2

19 янв 2003

Краткое описание инструкций SSE2, появившихся в Pentium IV.
Читать далее
Лайков 0 Комментариев0 Просмотров424

Драйверы режима ядра: Часть 4: Подсистема ввода-вывода

12 янв 2003

Код драйвера, по сути, является набором функций, позволяющих решать задачи недоступные коду режима пользователя. Для вызова функций драйвера система предоставляет посредника в лице диспетчера ввода-вывода.
Читать далее
Лайков +1 Комментариев0 Просмотров839

Использование микрокода в процессорах Интел

7 янв 2003

В статье рассказывается о том, что такое микрокод (который используется в интеловских процессорах).
Читать далее
Лайков 0 Комментариев0 Просмотров956

Создание продвинутых полиморфных движков

5 янв 2003

Эта статья была написана для тех, кто сделал свой полиморфный движок и хочет улучшить свои знания и свою технику, делая еще более лучшие полиморфные движки. Я должен предупредить, что техники, о которых пойдет разговор, требуют очень много времени (ошибка при кодинге, независимо от того, маленькая она или большая, может привести к возникновению огромных ошибок, которые будет очень трудно отследить или которые вылезут в последний момент).
Читать далее
Лайков 0 Комментариев0 Просмотров488

Макросы и директивы компилятора FASM

2 янв 2003

Перевод части мануала к FASM'у, касающего макросов и директив этого прекрасного ассемблера.
Читать далее
Лайков 0 Комментариев0 Просмотров1.154

Заклинание кода: Хей

20 дек 2002

Интеловские гномы оставили нам настоящее сокровище - Книгу Двойных Слов, но, к сожалению, забыли перевести ее со своего языка. В данной главе рассказывается, как читать эту книгу и расшифровывать содержащиеся в ней письмена.
Читать далее
Лайков 0 Комментариев0 Просмотров431

Заклинание кода: Вав

20 дек 2002

Программа, которая сама себя модифицирует! Возможно ли такое чудо? Заклинание кода поможет воплотить в реальность невероятное.
Читать далее
Лайков 0 Комментариев0 Просмотров405

Драйверы режима ядра: Часть 3: Простейшие драйверы

18 дек 2002

Вот мы и добрались до исходного текста простейших драйверов. Полнофункциональные нас ждут впереди.
Читать далее
Лайков +1 Комментариев0 Просмотров712

Заклинание кода: Далет

5 дек 2002

На кончиках наших пальцев - власть над битами и байтами кода, даруемая нам полями ModR/M и SIB. Они дают ответ на вопрос, как заколдовать все виды адресации в x86-процессорах.
Читать далее
Лайков 0 Комментариев0 Просмотров463

Заклинание кода: Гимель

4 дек 2002

Адепты магии в поисках более мощных заклинаний. Перемещение двойных слов из одного регистра в другой и сложение последних друг с другом: да падут наши враги ниц и познают наше могущество на своей шкуре!
Читать далее
Лайков 0 Комментариев0 Просмотров341

Заклинание кода: Бет

3 дек 2002

Могущественное заклинание NOP и изменение EAX на 1.
Читать далее
Лайков 0 Комментариев0 Просмотров378

Заклинание кода: Алеф

2 дек 2002

Заклинание кода - искусство програмирования в машинных кодах. Сила древних - каждому, кто не боится ее взять.
Читать далее
Лайков 0 Комментариев0 Просмотров410

Драйверы режима ядра: Часть 2: Службы

29 ноя 2002

Службы (Services)- это процессы пользовательского режима, для запуска и функционирования которых, регистрация интерактивного пользователя в системе не требуется. И поэтому, подавляющее большинство служб не имеют пользовательского интерфейса. Это единственная категория пользовательских приложений, которые могут работать в таком режиме.
Читать далее
Лайков +1 Комментариев0 Просмотров1.245

Сам себе компилятор (или руководство по мазохизму для дзенствующих)

21 ноя 2002

Понятно, что для написания программ компилятор не нужен и даже вреден. Однако как это сделать? Как написать программу без компилятора? "Использовать интерпретатор", - скажет ехидный посетитель. Нет. Неверный ответ.
Читать далее
Лайков +1 Комментариев0 Просмотров665

Записки Дzenствующего

21 ноя 2002

Настоящая статья призвана расставить некоторые точки над Ё. Автор предполагает, что вы уже неплохо разобрались в основах Win32, и теперь хочет внести некоторые коррективы в то, что вы уже усвоили.
Читать далее
Лайков 0 Комментариев0 Просмотров489

Сплайн. Аппроксимация данных

21 ноя 2002

В данном документе речь пойдет об интерпретации экспериментальных данных.
Читать далее
Лайков 0 Комментариев0 Просмотров748

FPU посвящается (часть 2): Fortran и Асмъ

21 ноя 2002

Ну, вот мы снова перед могуществом FPU. Ещё немного, и мы заглянем в его суть. Программирование FPU – это действительно отдельная тема, и отдельный удивительный подход, который имеет применение только здесь. Во всём пространстве кодов x86, пространство кодов FPU позволяет утверждать, что из всех вариантов, есть только один – оптимальный, и этот вариант достаточно предсказуем, и формализуем. FORTRAN не только первый из ЯВУ, но и наиболее простой классический. Это та причина, по которой современные инженеры продолжают лелеять язык. Им невдомёк от сложных конструкций C++ и ненужной «красоты» кода. Им нужна простота.
Читать далее
Лайков 0 Комментариев0 Просмотров374

Фильтр для Photoshop

21 ноя 2002

Довольно часто слышу мнение, что ассемблер мертвый язык, что он никому не нужен, за исключением особых ситуаций и т.д. и т.п. Хочу надеяться, что эта статья будет неплохим гвоздем в гроб этих мненийеще одним гвоздем в крышку гроба этих мнений, т.к. в этом рассмотренном ниже случае его применение более чем оправдано. Как говорил Остап Бендер: «Слухи о моей смерти явно преувеличены». Тоже самое может сказать и за ассемблер, который периодически закапывают не уставая все кому не лень со времени его появления. И все-таки он жив. Жив и активно развивается. Убедитесь сами!
Читать далее
Лайков 0 Комментариев0 Просмотров622

Драйверы режима ядра: Часть 1: Основные понятия

20 ноя 2002

Начало цикла о драйверах для Windows 2000.
Читать далее
Лайков 0 Комментариев0 Просмотров2.038

Написание шеллкодов под Linux/390

5 ноя 2002

С того момента, как IBM заpелизила Linux/290, все больше и больше "ящиков" с такой начинкой можно увидеть "вживую". Хоpошая пpичина для хакеpа поближе пpисмотpеться к этой системе, чтобы найти возможные уязвимости такого мейнфpейма. Помните, кто является собственником мейнфpеймов? Да, большие компьютеpные центpы. В этой статье я покажу как написать для этой системы шеллкод. В конце статьи пpилагается пpимеp.
Читать далее
Лайков 0 Комментариев0 Просмотров342

Путеводитель по написанию вирусов под Win32: 10. Продвинутые Win32-техники

4 ноя 2002

В этой главе я хочу обсудить несколько техник, которые не заслуживают того, чтобы каждой из них выделили по отдельной главе, но тем не менее и полностью забыть о них нельзя :).
Читать далее
Лайков 0 Комментариев0 Просмотров338

Путеводитель по написанию вирусов под Win32: 11. Заключение

4 ноя 2002

Еще один туториал подошел к концу... В какой-то мере его было немного скучно писать (хей, я человек, я предпочитаю программировать, а не писать), но во мне всегда жива надежда, что у того, кто будет читать результаты моих трудов, возникнут новые идеи.
Читать далее
Лайков 0 Комментариев0 Просмотров253

Путеводитель по написанию вирусов под Win32: 9. Win32-полиморфизм

1 ноя 2002

Полиморфизм является попыткой убрать все повторяющиеся байты в единственной части зашифрованного вируса, которая может быть просканирована: в декрипторе. Да, полиморфизм означает построение изменяющихся раз от раза декриптор вируса.
Читать далее
Лайков 0 Комментариев0 Просмотров382

Путеводитель по написанию вирусов под Win32: 8. Антиотладка под Win32

31 окт 2002

Здесь я перечислю некоторые приемы, которые можно использовать, чтобы защитить свои вирусы и/или программы против отладчиков (всех уровней, уровня приложения и системного).
Читать далее
Лайков 0 Комментариев0 Просмотров285

Путеводитель по написанию вирусов под Win32: 7. Оптимизация под Win32

30 окт 2002

Я расскажу вам о самых очевидных оптимизациях, которые могут быть сделаны при кодинге под Win32. Я не буду комментировать совсем тривиальные методы оптимизации, которые уже были объяснены в моем путеводителе по написанию вирусов под MS-DOS.
Читать далее
Лайков 0 Комментариев0 Просмотров283

Программирование игр на ассемблере (Часть 2)

29 окт 2002

В прошлой статье были рассмотрены основы Win32 ASM программирования, основы создания игр, и сам процесс разработки. Пришло время зайти немного дальше. Сначала я расскажу о высокоуровневых конструкциях MASM, которые являются удобоваримыми в сравнительном смысле с аналогичными конструкциями на Си. Затем рассмотрим основной цикл и главные оконные процедуры. После чего обратим внимание на Direct Draw и вызовы связанные с ним. Поняв, как это работает, мы сможем построить свою собственную Direct Draw Library, после чего построим свою bitmap file library и в конце напишем программу, которая отображает экран 'Loading Game' и выходит из нее по нажатию клавиши Esc.
Читать далее
Лайков 0 Комментариев0 Просмотров385

Путеводитель по написанию вирусов под Win32: 6. Перпроцессная резидентность

28 окт 2002

Теперь мы обсудим интересную тему для дискуссии: перпроцессная резидентность, единственный вид резидентности, доступный под всеми Win32 платформами. Я поместил эту главу отдельно от главы Ring-3, потому что эта тема слишком сложна для такой вводной главы, такой как Ring-3.
Читать далее
Лайков 0 Комментариев0 Просмотров291

Путеводитель по написанию вирусов под Win32: 4. Ring-3, программирование на уровне пользователя

24 окт 2002

Да, это правда, что уровень пользователя налагает на нас много репрессивных и фашистских ограничений на нас, ограничивающих нашу свободу, к которой мы привыкли, программируя вирусы под DOS, но парни (и девушки - прим. пер.), это жизнь, это Micro$oft. Между прочим, это единственный путь сделать так, чтобы вирус был полностью Win32-совместимым и это среда окружения будущего, как вы должны знать.
Читать далее
Лайков 0 Комментариев0 Просмотров301

Путеводитель по написанию вирусов под Win32: 5. Ring-0, программирование на уровне бога

24 окт 2002

Свобода! Разве вы не любите ее? В ring-0 у нас нет никаких огpаничений, никакие законы не pаспpостpаняются на нас. Из-за некомпетентности Микpософта у нас есть множество путей, чтобы попасть на уpовень, на котоpый (теоpетически) мы не можем попасть. Тем не менее, мы можем это сделать под ОСями Win9x.
Читать далее
Лайков 0 Комментариев0 Просмотров675

Путеводитель по написанию вирусов под Win32: 3. Заголовок PE

23 окт 2002

Очень важно хорошо представлять себе структуру заголока PE-файла, чтобы писать наши виндовозные вирусы. В этой главе я перечислю все, что считаю наиболее важным, но здесь не вся информация о PE-файле, поэтому рекомендую взглянуть на документы, упомянутые в разделе "Что потребуется...".
Читать далее
Лайков 0 Комментариев0 Просмотров885

Путеводитель по написанию вирусов под Win32: 2. Базовая информация

22 окт 2002

Я думаю, что должен рассказать об этом вначале данного пособия, как бы то ни было, лучше об этом знать, чем не знать :). Хорошо, давайте поговорим о внутренностях наших Win32-операционных систем.
Читать далее
Лайков 0 Комментариев0 Просмотров350

Программирование игр на ассемблере (Часть 1)

22 окт 2002

Я уверен, что многие из вас, уже задумывались о создании игр. Многие из вас провели немало часов в интернете, в поисках какой-либо информации о том, как писать игры на чистом ассемблере. Но, к сожалению, такой информации почти нет, а тем более на русском. Я думаю, что этот туториал пополнит ряды русскоязычной документации и надеюсь, что он вам понравится.
Читать далее
Лайков 0 Комментариев0 Просмотров14.180

Макросы для компиляции команд

20 окт 2002

За последние несколько лет сменилось три поколения микропроцессоров семейства Pentium. У процессоров каждого поколения и у разных моделей одного поколения появлялось достаточно много новых инструкций. Например, по сравнению с Pentium III, у Pentium 4 прибавилось сразу 144 инструкции!
Читать далее
Лайков 0 Комментариев0 Просмотров564

FPU посвящается (часть 1)

20 окт 2002

Это руководство навеяно вопросом форума <a href="http://www.wasm.ru"> WASM.RU</a>. Сейчас вы можете обнаружить множество статей связанных с FPU, все они наперебой долго рассказывают о его архитектуре, командах - обо всем, что можно найти в руководстве Интел. Однако программист чаще сталкивается с другой проблемой. Её сложно назвать. Но вопрос поднимается обычно не об особенностях формата и не о выполнении команд, а "как писать".
Читать далее
Лайков 0 Комментариев0 Просмотров362

Процессор Intel в защищенном режиме #1

15 окт 2002

Здравствуй, уважаемый подписчик! Перед тобой первый выпуск рассылки. Несколько слов о том, о чем здесь вообще пойдет речь в дальнейшем. Речь, как ты уже догадался и без подсказок, пойдет о программировании в защищенном режиме процессоров Intel, причем даже не столько о программировании, сколько о самой архитектуре, о сущности PM и др. глубоких материях :).
Читать далее
Лайков 0 Комментариев0 Просмотров698

Процессор Intel в защищенном режиме #2

15 окт 2002

В предыдущем выпуске ты в самом первом приближении ознакомился с видами организации памяти в защищенном режиме. Напомню, что существует всего 2 вида: сегментная (segment) и страничная (paging) модели.
Читать далее
Лайков 0 Комментариев0 Просмотров469

Процессор Intel в защищенном режиме #3

15 окт 2002

Итак, к чему мы пришли: оказывается, сегменты не раскиданы по памяти как попало и непонятно где, теперь мы с уверенностью можем сказать где какой из сегментов начинается, где заканчивается, что это за сегмент (код, данные или стек), вся эта информация хранится в ДЕСКРИПТОРЕ.
Читать далее
Лайков 0 Комментариев0 Просмотров449

Процессор Intel в защищенном режиме #4

15 окт 2002

Этот 4 выпуск будет совсем коротеньким и нести в себе чисто справочную информацию. В отличии от предыдущего шевелить извилинами не придется вообще…
Читать далее
Лайков 0 Комментариев0 Просмотров384

Процессор Intel в защищенном режиме #5

15 окт 2002

«Все это хорошо и понятно» - скажешь ты,- «но вот что-то я ничего пока не слыхал про сегментные регистры (ну те самые – CS, DS, SS…). Что-то они себя пока никак не проявили, а мне казалось, что именно ОНИ, как никто другие, должны служить нам при обращении к памяти и все такое…»
Читать далее
Лайков 0 Комментариев0 Просмотров413

Процессор Intel в защищенном режиме #6

15 окт 2002

Ну вот, наконец-то мы добрели и до страничной адресации (не прошло и месяца :). Стоит отметить, что подписчики, у которых не возникло проблем с сегментной адресацией также легко и просто освоят страничную.
Читать далее
Лайков 0 Комментариев0 Просмотров399

Процессор Intel в защищенном режиме #7

15 окт 2002

Напомню, что при страничной организации линейный адрес (база из дескриптора + offset) не соответствует физическому (т.е. адресу, который проц выставляет на адресную шину). Прежде, чем попасть на адресную шину он проходит ряд преобразований.
Читать далее
Лайков 0 Комментариев0 Просмотров323

Процессор Intel в защищенном режиме #8

15 окт 2002

В этом выпуске мы наконец-то применим часть полученных знаний на практике. Сейчас мы попробуем переключиться в защищенный режим. И все. Возвращаться назад (в реальный) мы не будем...
Читать далее
Лайков 0 Комментариев0 Просмотров340

Путеводитель по написанию вирусов под Win32: 1. Введение

9 окт 2002

Вводная часть долгожданного курса по написанию вирусов под Win32.
Читать далее
Лайков 0 Комментариев0 Просмотров416

Написание шеллкодов под Linux/StrongARM

6 окт 2002

В этом документе содеpжится инфоpмация, необходимая для написания шеллкодов под Линукс/StrongARM. Все пpимеpы, содеpжащиеся здесь, были pазpаботаны на Compaq iPAQ H3650 с пpоцессоpом StrongARM-1110 под опеpационной системой Debian Linux.
Читать далее
Лайков 0 Комментариев0 Просмотров441

Hаписание шеллкодов для IA-64

1 окт 2002

В статье рассказывается о процессоре Itanium - 64-х битном процессоре, разработанным Intel и HP на пару.
Читать далее
Лайков 0 Комментариев0 Просмотров332

Управление памятью (часть 4): Буферная память

30 сен 2002

Ещё один вид памяти, часто используемый, но нереализованный в виде API. Он берёт своё начало от вопросов по схемам редактирования файлов, что видимо, является темой последующих статей. Буферная память как следует из названия – это по сути дела то же, что и буферы.
Читать далее
Лайков 0 Комментариев0 Просмотров1.428

Реконструирование Java-программ

21 сен 2002

Базовая информация о том, чем и как следует дизассемблировать и декомпилировать программы, написанные на языке Java.
Читать далее
Лайков 0 Комментариев0 Просмотров535

Управление памятью (часть 3): Ускользающая память

18 сен 2002

Технологии «ускользающих» входят в число низкоуровневых методологий Оморфо программирования. С недавнего времени, автор использовал данный подход при использовании памяти. Результаты оказались превосходными, и поэтому он приводит несколько слов о принципах реализации ускользающей памяти в этой небольшой статье.
Читать далее
Лайков 0 Комментариев0 Просмотров313

Быстрая графика для DOS (из бабушкиного сундука)

17 сен 2002

Часто выполнение графических задач оказывается чрезвычайно требовательно к быстродействию и компактности кода. В частности, это касается, например спрайтовой анимации при написании игр, вирусов и других резидентных программ. В таких случаях функции поддержки графики BIOS или графические средства языков высокого уровня не дают требуемого результата, а зачастую оказываются кроме всего прочего и слишком примитивны и громоздки в использовании.
Читать далее
Лайков +1 Комментариев12 Просмотров2.034

Физические адреса в win95(98)

16 сен 2002

Вы никогда не задумывались над тем, в каком именно мегабайте вашего компа выполняется ваша программа ? А в каком уютно разместился кернел ? Нет ? А мне вот стало интересно, и я решил узнать...
Читать далее
Лайков 0 Комментариев0 Просмотров290

Управление памятью (часть I)

11 сен 2002

Я начинаю очень долгий цикл статей, посвящённых одному из самых больных вопросов в программировании. Правда, несмотря на всю остроту вопроса, и до сегодняшнего момента лишь немногие крупные фирмы уделяют ему лишь сколь нибудь внимания со своей стороны. Не вдаваясь в подробности API операционных систем, будут рассмотрены все базовые случаи и пути их решения.
Читать далее
Лайков 0 Комментариев0 Просмотров517

Защита файлов программами pkzip/pkunzip

10 сен 2002

Описание устройства защиты файлов в программах pkzip/pkunzip.
Читать далее
Лайков 0 Комментариев0 Просмотров671

Путеводитель по написанию вирусов: 13. Новая школа

4 сен 2002

Здесь я сделаю маленькое введение в новый мир 32-х битного программирования под Windows. Совет: измените образ мышления :).
Читать далее
Лайков 0 Комментариев0 Просмотров306

Путеводитель по написанию вирусов: 14. Полезная нагрузка

4 сен 2002

Вы должны внимательно отнестись к выбору полезной нагрузки, так как это будет единственное доступное для пользователя проявление вашего вируса. Полезная нагрузка, которая уничтожает HDD или стирает файлы не слишком оригинальна.
Читать далее
Лайков 0 Комментариев0 Просмотров334

Путеводитель по написанию вирусов: 15. Напоследок

4 сен 2002

Вы можете подумать, что написание этого туториала было для настоящим мучением. Нет, я действительно получил удовольствие. Я надеюсь, что вы получили удовольствие от его прочтения :).
Читать далее
Лайков 0 Комментариев0 Просмотров329

Путеводитель по написанию вирусов: 12. Оптимизация

3 сен 2002

Есть два вида оптимизации: стpуктуpная и локальная. В этой маленькой главе я затpону оба эти вида. Hо, во-пеpвых, вы должны понять одну вещь: никогда не оптимизиpуйте ваш код, пока ваш код не будет полностью pаботать. Если вы начнете оптимизиpовать код, котоpый не pаботает, вы навоpотите еще больше ошибок.
Читать далее
Лайков 0 Комментариев0 Просмотров324

Путеводитель по написанию вирусов: 11. Антинаживка

2 сен 2002

Hаживки/жеpтвенные овцы - это пpогpаммы, котоpые ничего не делают. Вы будете удивляться, почему... Они используют эти пpогpаммы, чтобы ловить виpусы, котоpые их заpажают. А потом они поимеют копию нашего виpуса :(.
Читать далее
Лайков 0 Комментариев0 Просмотров310

Путеводитель по написанию вирусов: 10. Антитуннелинг

2 сен 2002

Техники туннелинга также используются антивиpусами пpи инсталляции, и все наши попытки найти оpигинальный INT 21h пойдут насмаpку, потому что они используют наше собственное оpужие. И нам это не нpавится. Также нас могут туннелить дpугие виpусы, что совсем беспонтово. Эта система наша и ничья больше! :)
Читать далее
Лайков 0 Комментариев0 Просмотров323

Путеводитель по написанию вирусов: 9. Туннелинг

2 сен 2002

Мы называем туннелингом любые попытки получить оpигинальные вектоpы любого пpеpывания, как пpавило это INT 21h. Ладно, все попытки нельзя назвать туннелингом (напpимеp, бэкдоpы), но об этом мы тоже поговоpим в данной статье.
Читать далее
Лайков 0 Комментариев0 Просмотров303

Путеводитель по написанию вирусов: 7. Полиморфизм

1 сен 2002

Это одна из наиболее интеpесных вещей в виpусах. Также очень весело писать PER (Polymorphic Encryption Routine). По ней можно понять "стиль" VXеpа, котоpый ее написал. Также многие начинающие считают, что эта техника очень сложна и только опытные VXеpы могут пpименять ее. HЕ ДУМАЙТЕ ТАК! Она очень пpоста. Hе бойтесь.
Читать далее
Лайков 0 Комментариев0 Просмотров457

Путеводитель по написанию вирусов: 6. Шифрование

1 сен 2002

Техники шифpования весьма стаpы, но они еще эффективны и часто используются. Веpоятно, это одна из тех концепций, котоpые могут жить годами, хотя бы и с постоянными усовеpшенствованиями, такими как полимоpфизм, метамоpфизм и тому подобное. Hашей целью является скpыть все текстовые стpоки, подозpительные опкоды и все остальное в этом pоде от глаз пользователя.
Читать далее
Лайков 0 Комментариев0 Просмотров369

Путеводитель по написанию вирусов: 8. Антиэвристика

1 сен 2002

Эвpистика пытается найти подозpительный код. Пpосто збегайте таких вещей как "*.com" и тому подобное... Хоpошо, я объясню подpобнее. Следуйте следующим пpавилам...
Читать далее
Лайков 0 Комментариев0 Просмотров324

Путеводитель по написанию вирусов: 5. Невидимость

30 авг 2002

Что такое невидимость? В VX-миpе невидимостью называют способность кода пpятать симптомы заpажения, напpимеp увеличение pазмеpа файла, ошибку "Abort, Retry, Ingnore", когда мы запускаем пpогpамму на защищенной от записи дискете, чтение незаpаженных файлов... Дpугими словами, невидимость заставляет польователя повеpить в то, что все в поpядке. Hевидимость (stealth) - также имя VX-гpуппы (SGWW (да покоится она с миpом - пpим. пеp), но это уже дpугая истоpия :) ).
Читать далее
Лайков 0 Комментариев0 Просмотров328

Путеводитель по написанию вирусов: 4. Бронирование вашего кода

29 авг 2002

Это очень обсуждаемая тема на сцене. Многие VXеpы защищают свой код, чтобы сделать жизнь AVеpов намного тpуднее. Конечно, мы говоpим об антиотладочных пpоцедуpах. Есть много техник, котоpые мы все знаем... но было бы не плохо пpивести паpочку из них здесь... не пpавда ли?
Читать далее
Лайков 0 Комментариев0 Просмотров328

Треды и фиберы

27 авг 2002

В этом туториале рассказывается о том, что такое треды и фиберы, как их создавать и как ими управлять.
Читать далее
Лайков 0 Комментариев0 Просмотров403

Путеводитель идиота по написанию полиморфных движков

26 авг 2002

Пособие по написанию собственных полиморфных движков: просто и доступно.
Читать далее
Лайков 0 Комментариев0 Просмотров418

Путеводитель по написанию вирусов: 3. Резидентные вирусы

24 авг 2002

Если вы дочитали до этих стpок и до сих поp живы, у вас есть будущие в миpе под название виpусная сцена :). Здесь начинается интеpесный для чтения (вам) и написания (мне) матеpиал.
Читать далее
Лайков 0 Комментариев0 Просмотров548

Путеводитель по написанию вирусов: 1. Первые шаги - вирусы времени выполнения

23 авг 2002

Есть несколько методов для успешного заpажения. Сейчас я объсню вам самый стаpый метод, метод вpемени выполнения (также его называют "пpямым действием"). В наши дни его никто не использует, потому что он очень медленный, а обнаpужить такой виpус сможет любой сpеднезаинтеpесованный пользователь. Hо... не бойтесь! Этот метод очень пpост, и все люди на сцене делали свои пеpвые шаги именного с него.
Читать далее
Лайков +1 Комментариев0 Просмотров721

Путеводитель по написанию вирусов: 2. Полезные структуры

23 авг 2002

Структуры, знать о которых должен каждый вирмейкер: PSP, FCB, MCB, DTA, IVT, SFT, DIB, DPB.
Читать далее
Лайков 0 Комментариев0 Просмотров480

Win32ASM: Консольный ввод, томограф IDA и скальпель SoftICE

22 авг 2002

В этом туториале мы напишем простенькую консольную программу, познакомимся с Идой и Сайсом и с их помощью проведем небольшое исследование на тему что такое локальные переменных и с чем их едят.
Читать далее
Лайков 0 Комментариев0 Просмотров741

Оптимизация для процессоров семейства Pentium: 3. Вызов ассемблерных функций из языка высокого уровня

22 авг 2002

Вы можете использовать встроенный ассемблер или написать процедуру полностью на ассемблере и вставить ее в свой проект.
Читать далее
Лайков 0 Комментариев0 Просмотров384

Оптимизация для процессоров семейства Pentium: 1. Введение

22 авг 2002

Это руководство подробно рассказывает о том, как писать оптимизированный код на ассемблере, с ориентированием на семейство микропроцессоров Pentium.
Читать далее
Лайков 0 Комментариев0 Просмотров420

Оптимизация для процессоров семейства Pentium: 2. Литература

22 авг 2002

Множество полезную литературы и туториалов можно скачать бесплатно с www-сайта Intel или заказать на CD-ROM. Рекомендуется, чтобы вы изучили эту литературу для ознакомления с архитектурой процессора.
Читать далее
Лайков 0 Комментариев0 Просмотров345

Оптимизация для процессоров семейства Pentium: 4. Отладка

22 авг 2002

Отладка ассемблерного кода может оказаться довольно трудоемкой и неприятной, как вы, возможно, уже заметили. Я рекомендую вам сначала написать то, что вы хотите оптимизировать как подпрограмму на языке высокого уровня.
Читать далее
Лайков 0 Комментариев0 Просмотров405

Оптимизация для процессоров семейства Pentium: 5. Модель памяти

22 авг 2002

Пентиумы спроектированны в основном для 32-х битного кода, и качество ужасно при использовании 16-битного кода.
Читать далее
Лайков 0 Комментариев0 Просмотров361

Оптимизация для процессоров семейства Pentium: 6. Выравнивание

22 авг 2002

Все данные в RAM должны быть выравненены так, чтобы их адреса были кратны 2, 4, 8 или 16...
Читать далее
Лайков 0 Комментариев0 Просмотров262

Оптимизация для процессоров семейства Pentium: 7. Кэш

22 авг 2002

У PPlain и PPro 8 килобайт кэша первого уровня для кода и 8 килобайт для данных. У PMMX, PII и PIII по 16 килобайт для кода и данных. Данные в кэше первого уровня можно читать или перезаписывать всего лишь за один такт, в то время как выход за границы кэша может стоить множества тактов. Поэтому важно, понимать, как работает кэш, чтобы использовать его более эффективно.
Читать далее
Лайков 0 Комментариев0 Просмотров296

Оптимизация для процессоров семейства Pentium: 8. Исполнение кода в первый раз

22 авг 2002

Обычно исполнение кода в первый раз занимает намного больше, чем при последующих повторениях в силу следующих причин...
Читать далее
Лайков 0 Комментариев0 Просмотров250

Оптимизация для процессоров семейства Pentium: 9. Задержка генерации адреса

22 авг 2002

Чтобы высчитать адрес в памяти, который нужен инструкции, требуется один такт. Обычно эти вычисления делаются одновременно с выполнение предыдущей инструкции или спаренных инструкций. Но если адрес зависит от результат инструкции, которая выполнялась в предыдущем такте, тогда вам придется подождать дополнительный такт, чтобы получить требуемый адрес. Это называется задержкой AGI.
Читать далее
Лайков 0 Комментариев0 Просмотров255

Оптимизация для процессоров семейства Pentium: 11. Разбивка сложных инструкций на более простые (PPlain и PMMX)

22 авг 2002

Вы можете разбить инструкции чтения/модифицирования и инструкции чтения/модифицирования/записи, чтобы улучшить спаривание.
Читать далее
Лайков 0 Комментариев0 Просмотров261

Оптимизация для процессоров семейства Pentium: 10. Спаривание целочисленных инструкций (PPlain и PMMX)

22 авг 2002

У PPlain и PMMX есть два конвеера, выполняющих инструкции, которые называются U-конвеер и V-конвеер. В определенных условий можно выполнить две инструкции одновременно, одну в U-конвеере, а другую в V-конвеере.
Читать далее
Лайков 0 Комментариев0 Просмотров252

Оптимизация для процессоров семейства Pentium: 12. Префиксы (PPlain и PMMX)

22 авг 2002

Инструкция с одним или более префиксами не может исполняться в V-конвеере...
Читать далее
Лайков 0 Комментариев0 Просмотров256

Оптимизация для процессоров семейства Pentium: 13. Обзор конвеера PPro, PII и PIII

22 авг 2002

Архитектура микропроцессоров PPro, PII и PIII хорошо объяснена и проиллюстрирована в различных руководствах от Интела. Рекомендуется сначала изучить этот материал, чтобы понимать, как работают эти процессоры. Я коротко объясню его структуру с упором на те элементы, которые необходимы для оптимизирования кода.
Читать далее
Лайков 0 Комментариев0 Просмотров271

Оптимизация для процессоров семейства Pentium: 14. Раскодировка инструкций (PPro, PII и PIII)

22 авг 2002

Я рассказываю о раскодировке инструкций до доставки инструкций, потому что вам необходимо знать, как работают раскодировщики, чтобы понимать возможные способы доставки.
Читать далее
Лайков 0 Комментариев0 Просмотров257

Оптимизация для процессоров семейства Pentium: 15. Доставка инструкций (PPro, PII и PIII)

22 авг 2002

Код доставляется в двойной буфер из кэша кода чанками по 16 байт. Двойной буфер называется так, потому что он содержит два таких чанка. Затем код берется из двойного буфера и скармливается декодерам поблочно (каждый блок обычно 16 байтов длиной, но необязательно, он может быть и не выравнен по этой границе).
Читать далее
Лайков 0 Комментариев0 Просмотров270

Оптимизация для процессоров семейства Pentium: 16. Переименование регистров (PPro, PII и PIII)

22 авг 2002

Переименование регистров - это продвинутая техника, используемая этими микропроцессорами, чтобы убрать зависимости между различными частями кода.
Читать далее
Лайков 0 Комментариев0 Просмотров285

Оптимизация для процессоров семейства Pentium: 17. Выполнение кода не по порядку (PPro, PII и PIII)

22 авг 2002

Буфер перегруппировки вмещает 40 мопов. Каждый моп ждет в ROB, пока все операнды не будут готовы и не появится свободный модуль для их выполнения. Это делает возможным выполнение кода не по порядку. Если одна часть кода задерживается из-за загрузки в кэш, это не повлияет на выполнение других частей кода, если они не зависят от первой части.
Читать далее
Лайков 0 Комментариев0 Просмотров264

Оптимизация для процессоров семейства Pentium: 18. Вывод из обращения (PPro, PII и PIII)

22 авг 2002

Вывод из обращения (retirement) - это процесс, когда временные регистры, используемые мопами, копируют в постоянные регистры EAX, EBX и так далее. Когда моп выполнен, он помечается в ROB как готовый к выводу из обращения.
Читать далее
Лайков 0 Комментариев0 Просмотров259

Оптимизация для процессоров семейства Pentium: 19. Частичные задержки (PPro, PII и PIII)

22 авг 2002

Частичная задержка регистра - это проблема, которая возникает, когда вы пишите в часть 32-х битного регистра, а затем читаете из всего регистра или его большей части.
Читать далее
Лайков 0 Комментариев0 Просмотров237

Оптимизация для процессоров семейства Pentium: 20. Цепочки зависимости (PPro, PII и PIII)

22 авг 2002

Серии инструкций, где выполнение каждой зависит от результата предыдущей, называется цепочкой зависимости. Большие цепочки нужно по возможности избегать, потому что они делают невозможным выполнение не по порядку и параллельное выполнение.
Читать далее
Лайков 0 Комментариев0 Просмотров274

Оптимизация для процессоров семейства Pentium: 21. Поиск узких мест (PPro, PII и PIII)

22 авг 2002

Оптимизируя код для этих процессоров, важно проанализировать, где находятся узкие места. Оптимизация одного узкого места не будет иметь смысла, если есть другое еще уже.
Читать далее
Лайков 0 Комментариев0 Просмотров289

Оптимизация для процессоров семейства Pentium: 22. Команды передачи управления и переходов (все процессоры)

22 авг 2002

Семейство процессоров Pentium пытаются предсказывать, когда произойдет безусловный переход и будет ли осуществлен условный. Если предсказание оказывается верным, тогда это может сэкономить существенное количество времени, так как в конвеер будут загружены последующие инструкции, и начнется их раскодировка еще до того, как будет осуществлен сам переход. Если пресказание оказывается неверным, тогда конвеер должен быть очищен, что вызовет потери производительности, количество которых зависит от длины конвеера.
Читать далее
Лайков 0 Комментариев0 Просмотров312

Оптимизация для процессоров семейства Pentium: 23. Уменьшение размера кода (все процессоры)

22 авг 2002

Как было объяснено в главе 7, размер кода кэша равен 8 или 16 килобайтам. Если у вас есть подозрение, что критические части кода не поместятся в кэш, тогда вы можете подумать о том, чтобы уменьшить их размер.
Читать далее
Лайков 0 Комментариев0 Просмотров234

Оптимизация для процессоров семейства Pentium: 24. Работа с плавающей запятой (PPlain и PMMX)

22 авг 2002

Инструкции плавающей запятой не могут спариваться так, как это делают целочисленные инструкции, не считая некоторых случаев, определяемых следующими правилами...
Читать далее
Лайков 0 Комментариев0 Просмотров271

Оптимизация для процессоров семейства Pentium: 25. Оптимизация циклов (все процессоры)

22 авг 2002

Анализируя свои программы, вы можете увидеть, что больше всего ресурсов пожирают внутренние циклы. Используя язык ассемблера можно существенно оптимизировать их. Остальную часть программы можно оставить написанной на языке высокого уровня.
Читать далее
Лайков 0 Комментариев1 Просмотров710

Оптимизация для процессоров семейства Pentium: 26. Проблемные инструкции

22 авг 2002

Инструкция 'XCHG регистр, [память]' опасна. По умолчанию эта инструкция имеет неявный префикс LOCK, что не дает ей загружаться в кэш. Поэтому выполнение данной инструкции отнимает очень много времени, и ее следует избегать.
Читать далее
Лайков 0 Комментариев0 Просмотров274

Оптимизация для процессоров семейства Pentium: 27. Специальные темы

22 авг 2002

В этой главе обсуждаются различные инструкции, представляющие особый интерес.
Читать далее
Лайков 0 Комментариев0 Просмотров309

Оптимизация для процессоров семейства Pentium: 30. Тестирование скорости

22 авг 2002

У микропроцессоров семьи Pentium есть встроенный 64-х битный счетчик, который можно считать в EDX:EAX, используя инструкцию RDTSC (read time stamp counter). Эта инструкция очень полезна для того, чтобы точно узнать, сколько тактов занял кусок кода.
Читать далее
Лайков 0 Комментариев0 Просмотров263

Оптимизация для процессоров семейства Pentium: 31. Сравнение различных микропроцессоров

22 авг 2002

Таблица важных различий между процессорами семества Pentium.
Читать далее
Лайков 0 Комментариев0 Просмотров274

Win32ASM: "Hello, World" и три халявы MASM32

21 авг 2002

С легкой левой руки Дениса Ричи повелось начинать освоение нового языка программирования с создания простейшей программы "Hello, World". Ничто человеческое нам не чуждо - давайте и мы совершим сей грех.
Читать далее
Лайков 0 Комментариев0 Просмотров788

Система перехвата функций API платформы Win32

20 авг 2002

Создание и исполнение удаленного кода. Изменение таблиц импорта. Сплайсинг функций ядра Windows 9X. Методы установки глобальных перехватчиков. Приостановка потоков. Получение описателя потока по его идентификатору в: Windows 9X, NT, ME/2000/XP
Читать далее
Лайков 0 Комментариев0 Просмотров400

Win32ASM: Форматы данных от лукавого

19 авг 2002

Как известно, объем жидкости измеряется в см3 ;). Но когда мы покупаем, например, пиво, то измеряем его вовсе не в кубических сантиметрах, а в совершенно других единицах измерения: бутылках, банках, ящиках, канистрах, бокалах или, на худой конец, в литрах. Точно так и информация: с одной стороны, она, конечно же, измеряется битами, байтами, килобайтами и и т.д., но с другой стороны - существуют и её элементарные "потребительские куски". Как пиво мы пьем глотками, так и процессор потребляет ее своими небольшими "глоточками" ;).
Читать далее
Лайков 0 Комментариев0 Просмотров676

Win32ASM: Минимальное приложение

17 авг 2002

Между тем, вопрос о минимальном приложении - это вам не "кто идет за "Клинским" (конечно же, тот, кого в прошлый раз от "Балтики-медового" мутило), и даже не "кто потом пойдет сдавать бутылки" (конечно же, тот, кого систематически дерут в раздевалке!). Минимальное приложение - это есмъ альфа и омега программирования, сцилла и харибда отладки и даже...
Читать далее
Лайков 0 Комментариев0 Просмотров954

Программирование на Ассемблере под DOS

16 авг 2002

Когда-то автор этого текста хотел осветить все вопросы низкоуровневого программирования, начиная от процессора 8086 до p3, от DOS'а до W2000 и линуха. Однако практика показала, что при таких черепашьих темпах написания... к тому времени когда дойдет очередь хотя бы до w3.11 - windows-2000 уже станет вчерашним днем :(. Поэтому этот туториал, мягко говоря, не совсем завершен - автор успел вовремя остановиться ;)
Читать далее
Лайков 0 Комментариев0 Просмотров954

Защита файлов в Excel

15 авг 2002

Предположим, вы работаете с файлом (таблицами) в Excel и при этом хотите, чтобы кроме вас (или доверенных лиц) никто не мог бы иметь доступа к нему. Для этого вы можете защитить файл паролем... хм... наивные чукотские мальчики ;)
Читать далее
Лайков 0 Комментариев0 Просмотров639

Убираем баннеры в "Штирлице" или Баг в защите

14 авг 2002

Наверное, нет такого человека, который никогда бы ничего не слышал о Штирлице. И речь в данной статье пойдет не о В. Тихонове, и не об анекдотах, а о лучшем в своем роде расшифровщике-трансляторе, вернее, о доведении оного до совершенства :).
Читать далее
Лайков 0 Комментариев0 Просмотров1.143

DZebug: руководство юZверя

13 авг 2002

В 945-ом году отправился князь Игорь к программистам за данью. Когда программисты узнали размеры дани, их лица сразу стали озабоченными, и они побили Игоря и его дружину. Тогда жена Игоря Ольга с огнем и мечом пошла на программистов. Отдавайте, говорит, законную дань, а не желаете, так поставьте на каждую тачку нашу новую навороченную ОСь. Обрадовались программисты, что могут отделаться малым, и их лица опять стали веселыми. А Ольга приказала в каждую ОСь зашить BUG. Программисты инсталлировали ОСь, и BUG уничтожил все ихние данные... И дело даже не в том, что жалко программистов, а в том, что история учит, какими б не казались крутыми ОСы, нужно уметь работать независимо от програмного обеспечения. Ведь сила не в мегагерцах и не гигабайтах, и даже не в DZеньгах, сила - она в ньютонах...
Читать далее
Лайков 0 Комментариев0 Просмотров625

Введение в машинный код

10 авг 2002

Туториал по кодингу для чайников (профессиональным программистам надлежит относиться к нему cнисходительно; выбор "среды обучения" был совершен в трезвом уме и в здравой памяти). Простым человеческим языком объясняются базовые понятия: система счисления, регистры, память, прерывания, стек, цикл, процедуры и пр. Рекомендовано Министерством Здравоохраниния для тех, кто хочет стать кодером, но не знает с какой стороны за это дело взяться :).
Читать далее
Лайков +1 Комментариев1 Просмотров2.185

Туториал по написанию собственного веб-сервера

5 авг 2002

В этом туториале рассказывается как написать собственный веб-сервер: основы HyperText Transfer Protocol, описание необходимых функций WinSock и исходный код простого веб-сервера.
Читать далее
Лайков 0 Комментариев0 Просмотров386

COM в Ассемблере - Часть I

27 июн 2002

В этой статье будет расказано о том, как использовать COM-интерфейсы в ваших программах, написанных на ассемблере. Не будет обсуждаться, что такое COM и как он применяется, но как его можно использовать, программируя на ассемблере. Здесь будет затронуто только применение существующих интерфейсов, а не реализация своих собственных...
Читать далее
Лайков +1 Комментариев0 Просмотров718

COM в Ассемблере - Часть II

27 июн 2002

COM (Component Object Model) используется операционной системой Windows различным образом. Например, shell.dll использует COM для доступа к некоторым из своих API методов. Интерфейсы IShellLink и IPersistFile shell32.dll будут продемонстрированы путем создания ярлыка. Предполагается базовое знание COM. Использованный код выдержан в стиле MASM.
Читать далее
Лайков 0 Комментариев0 Просмотров495

Как получить доступ к COM-объекту, используя ассемблер

27 июн 2002

COM (Component Object Model) используется операционной системой Windows различным образом. Например, shell.dll использует COM для доступа к некоторым из своих API методов. Интерфейсы IShellLink и IPersistFile shell32.dll будут продемонстрированы путем создания ярлыка. Предполагается базовое знание COM. Использованный код выдержан в стиле MASM.
Читать далее
Лайков 0 Комментариев0 Просмотров778

Сокеты M$ Windows

27 июн 2002

Этот путеводитель не оpиентиpован на виpусы. Я расскажу о pеализации BSD-стандаpтов сокетов в win32. Это может помочь вам создать удаленное соединение, чтобы, напpимеp, ваш виpус смог послать e-mail. Это пpосто описание куска кода из i-worm.Anaphylaxis.
Читать далее
Лайков 0 Комментариев0 Просмотров425

Использование сокетов/взаимодействие с SMTP-сеpвеpами

27 июн 2002

Как вы уже навеpное поняли, новой угpозой наших дней являются виpусы, котоpые могут pаспpостpаняться чеpез сеть, посылать себя по почте или в котоpых встpоенны хитpоумные скpипты для IRC-клиентов (как в моем Win32.Thorin), или виpусы, котоpые могут скачивать дополнительные плагины откуда-нибудь из сети (Win9x.Babylonia Vecna'ы). Я хочу pассказать о виpусах, pассылающих себя по почте. Я знаю, что есть несколько статей по той же теме, но я хочу глубже pассмотpеть SMTP-метод, потому что он надежен, невидим, низкоуpовнен и пpосто кpут :). Hо сначала мы должны узнать, подсоединены ли мы к сети.
Читать далее
Лайков 0 Комментариев0 Просмотров454

Антиотладочные хитрости под Win32

27 июн 2002

Здесь я расскажу о нескольких хитростях, которые можно использовать для защиты своих вирусов и/или своих программ против отладчиков всех уровней, уровня приложения и системы. Я надеюсь, что вам понравится эта статья.
Читать далее
Лайков +1 Комментариев0 Просмотров734

Как создать invoke'абельную библиотеку импорта

27 июн 2002

Это коpоткий очеpк о том, как создать библиотеку импоpта, котоpую можно использовать вместе с MASM'ом. Я пpедполагаю, что вы уже знаете кое-что о библиотеках импоpта, то есть вы знаете, что это так далее и так далее. Я сделаю упоp на то, как генеpиpовать библиотеки импоpта, совместимые с MASM'ом.
Читать далее
Лайков 0 Комментариев0 Просмотров510

Небольшое введение в OpenGL

27 июн 2002

Я думаю, вы, как и я, смотрели на эти OpenGL'ные демки, как двигаются по экрану полигоны, меняются различные эффекты и так далее. Также, вполне вероятно, вы не очень сильны в математике и не хотите самостоятельно выводить все эти математические синусоидальные процедуры. OpenGL - это классная библиотека, которая позволит вам создать 3D-вселенную очень быстро, двигать ее и наложить серию спецэффектов, используя простую концепцию API.
Читать далее
Лайков 0 Комментариев0 Просмотров404

Вводный курс в переполнение буфера под Win32

27 июн 2002

Мой урок будет состоять в том, как поработить процессор и контролировать его на расстоянии. С помощью знания, которое вы получите, прочитав эту статью, вы сможете трансформировать почтовый сервер в 'spawning pool' почтовых червей или, возможно, стартовую площадку вирусов. Сила DoS лежит в ваших руках. Но только то, что вы получили силу, не значит, что вы дожны злоупотреблять ей, это будет только ваше собственное решение и не вините меня, если из-за своих действий вы попадете в большие неприятносит. Переполнение буфера можно также использовать на локальной машине, чтобы получить права администратора. На NT часто бывает множество уровней доступа администратора и пользователей. Некоторые программы должны быть установлены с правами администратора, а поэтому должны запускаться на этом же уровне. Если вы сможете перехватить EIP (extended instruction pointer) из этой программы, вы сможете выполнять действия на уровне администратора, NT-станция будет в ваших руках...
Читать далее
Лайков 0 Комментариев0 Просмотров537

Ваш друг имперсонация

27 июн 2002

Представьте ситуацию. Ваша программа выполняется не под правами администратора, но у вас есть пароль администратора (как его получить - смотрите в дpугой моей статье). У вас есть привилигии, которые вам нужны, и теперь вы думаете, что с ними делать? Ответом является имперсонация.
Читать далее
Лайков 0 Комментариев0 Просмотров388

Синхронизация

27 июн 2002

Я думаю, что большинство новых вирусов будут использовать какой-нибудь вид IPC, а значит и один из видов синхронизации. Эта статья дает только обзор того, что Windows предлагает для синхронизации, эта тема довольно сложна и не может быть полностью объяснена в одной или двух статьях... идите и синхронизируйте... :)
Читать далее
Лайков 0 Комментариев0 Просмотров379

Функции toolhelp

27 июн 2002

Эта статья не будет переполнена теорией. Я думаю, что использование toolhelp'а достаточно легко, поэтому я объясню функции API, которые относятся к нему без всякой теоретической чепухи.
Читать далее
Лайков 0 Комментариев0 Просмотров544

Взаимодействие между процессами

27 июн 2002

Взаимодействие между процессами (IPC) - это путь, с помощью которого процессы могут взаимодействовать между собой. У каждого процесса есть свое собственное отдельное адресное пространство, поэтому процессы не могут напрямую видеть память других процессов. Win32 API предоставляет несколько разновидностей IPC. IPC может быть очень полезно для вирусов, поэтому я объясню несколько путей, хотя я не уверен, что в вирусах применимы все из них.
Читать далее
Лайков 0 Комментариев0 Просмотров459

Асинхронный ввод/вывод

27 июн 2002

Вы должны знать, что существует два типа операций ввода/вывода - синхронный и асинхронный типы. Используя функции асинхронного ввода/вывода вы будете ждать, пока операция ввода/вывода не будет закончена. Функции асинхронного ввода/вывода позволяют вам посылать запросы на выполнение операции ввода/вывода системе и немедленно продолжить выполнение кода. Когда операция асинхронного ввода/вывода будет закончена, система пошлет соответствующее уведомление.
Читать далее
Лайков 0 Комментариев0 Просмотров555

Пособие по LZEXPAND

27 июн 2002

В этом тутоpиале pассказывается, как pаспаковать сжатый файл с помощью WinAPI и микpософтовского COMPRESS.EXE. Это ламеpская утилита для сжатия файлов, использующая алгоpитм LZ и фоpмат, тpебуемый LZEXPAND.DLL.
Читать далее
Лайков 0 Комментариев0 Просмотров332

Некоторые недокументированные возможности DOS

16 июн 2002

Небольшая серия статей о недокументированных возможностях DOS, которые необходимо "закрывать" хорошей антивирусной программе. Описание прерываний DOS 30h и 31h. Описание альтернативного обработчика прерывания 21h. Подробное описание необходимых действий для вызова функций DOS в стиле CP/M. Описание недокументированной возможности функции 13h прерывания 21h.
Читать далее
Лайков 0 Комментариев0 Просмотров828

Единственно верный алгоритм руссификации адаптеров VGA/EGA

16 июн 2002

Актуальная, совсем недавно, проблемма руссификации видеоадаптеров EGA/VGA перестала быть жизненно важным моментом. И хотя, сами руссификаторы продолжают использоваться (например, для руссификации DOS сессий в Windows NT/2000), интерес, на наш взгляд, к принципам работы с видеоадаптерами должен сохраняться и поныне. Этому должно способствовать повальное увлечение современных любителей ассемблера к написанию собственных операционных систем. Именно поэтому решено было сделать римэйк, написанной некогда (1992 год) статьи, об идеальном алгоритме руссификации видеоадаптеров.
Читать далее
Лайков 0 Комментариев0 Просмотров613

800-й, 720-й, ...

16 июн 2002

Случилось так, что авторам в руки попали машины на которых драйвер 800 потерпел фиаско. Занявшись выяснением причин этого конфуза авторы написали свой драйвер drv720, способный выполнять те же функции, будучи при этом совместимым со своим предшественником.
Читать далее
Лайков 0 Комментариев0 Просмотров499

Курсоры

16 июн 2002

При работе в текстовых или графических режимах IBM драйвер мыши самостоятельно определяет установленный видеорежим и в зависимости от этого выбирает способ построения или удаления рисунка курсора, задача только разрешает или запрещает драйверу выполнять эти действия. Поэтому при работе в среде DOS, после установки режимов VESA строить и перемещать рисунок курсора должна задача. Операционные системы семейства Windows и OS/2, в отличие от DOS, поддерживают управление курсором, что упрощает действия прикладных задач...
Читать далее
Лайков 0 Комментариев0 Просмотров553

О формате PCX

16 июн 2002

Формат PCX - один из старейших графических форматов. В силу этого у него много недостатков: ограниченная палитра, малая степень сжатия, невозможность анимации и пр. Но у него есть одно неоспоримое преимущество: простота. И поэтому он хорош для изучения принципов организации графических форматов. Эта статья даст вам стартовый импульс. Имеется исходный текст программы-примера, выполняющей разбор pcx-файла.
Читать далее
Лайков 0 Комментариев0 Просмотров1.353

Идентификация IF - THEN - ELSE

16 июн 2002

Как среди хаоса битов различить конструкцию IF - THEN - ELSE, без которой не обходится практически ни одна программа? А очень легко! Закупиться ящиком пива и внимательно прочитать эту статью :) - главу из новой, еще не изанной книги Криса Касперского :). Публикуется ВПЕРВЫЕ и (во всяком случае на данные момент времени - 10.01.02) только на нашем сайте :)))
Читать далее
Лайков 0 Комментариев0 Просмотров900

Идентификация SWITCH - CASE - BREAK

16 июн 2002

Для улучшения читабельности программ в язык Си был введен оператор множественного выбора – switch. В Паскале с той же самой задачей справляется оператор CASE, кстати, более гибкий, чем его Си-аналог, но об их различиях мы поговорим попозже... Легко показать, что switch эквивалентен конструкции "IF (a == x1) THEN оператор1 ELSE IF (a == x2) THEN оператор2 IF (a == x2) THEN оператор2 IF (a == x2) THEN оператор2 ELSE …. оператор по умолчанию". Если изобразить это ветвление в виде логического дерева, то образуется характерная "косичка", прозванная так за сходство с завитой в косу прядью волос...
Читать далее
Лайков 0 Комментариев0 Просмотров677

Идентификация циклов

16 июн 2002

Циклы - единственная (за исключением неприличного "GOTO") конструкция языков высокого уровня, имеющая ссылку "назад", т.е. в область более младших адресов. Все остальные виды ветвлений - будь то IF - THEN - ELSE или оператор множественного выбора switch всегда направлены "вниз" - в область старших адресов...
Читать далее
Лайков 0 Комментариев0 Просмотров650

Идентификация математических операторов

16 июн 2002

"...если вы обессилены, то не удивительно, что вся ваша жизнь - не развлечение. У вас... так много вычислений, расчетов, которые необходимо сделать в вашей жизни, что она просто не может быть развлечением." 2+2 равно сколько? Правильно, 4. Конечно, если ЭТО _действительно_ 2+2, а не что-то другое...
Читать далее
Лайков 0 Комментариев0 Просмотров1.023

Оптимизация 32-х битного кода

16 июн 2002

Эх, на кой ляд я написал эту статью ? Существует много подобных статей об оптимизации. Да, это пpавда, и также существует много хоpоших и кульных тутоpов [ Билли, твой док pулит! *]. Hо как вы можете видеть, не каждый автоp тутоpиала помнит, что означает теpмин "оптимизация", многие дают советы только по уменьшению кода. Есть много аспектов оптимизации и я хочу обсудить их здесь и пpодемонстpиpовать pасшиpенный взгляд на эту пpоблему.
Читать далее
Лайков 0 Комментариев0 Просмотров317

Pentium глазами программиста

16 июн 2002

Тактовая частота первого Pentium I составляла 66 МГц, а первого Pentium 4 уже 1,4 ГГц. В настоящее время на компьютерном рынке появились Pentium 4 с частотой около 2 ГГц, а представители компании Intel утверждают, что при используемой в них микроархитектуре и технологии производства достижима частота 3 ГГц. Но если бы реальные достижения компании Intel заключались только в этом, то не было бы повода для написания данного эссе.
Читать далее
Лайков 0 Комментариев0 Просмотров622

Бег с препятствиями - барьеры на пути увеличения объема дисков

16 июн 2002

Последние годы характерны невероятным ростом объемов и скорости жестких дисков. Из-за постоянно снижающихся цен на диски и растущих при этом потребностей программного обеспечения, целый класс машин от 486-х до Pentium может приобрести "вторую молодость" при замене жестких дисков на более современные. Однако замене дисков могут помешать ограничения на объемы HDD, присущие программному и аппаратному обеспечению компьютеров, не рассчитанному на такие скорости роста. Данная статья раскрывает проблемы, возникающие при замене IDE- и Enhanced IDE-дисков на компьютерах с BIOS, датированных 1992...1998 г.г.
Читать далее
Лайков 0 Комментариев0 Просмотров436

Как изменить способности компьютера

16 июн 2002

Обычным пользователем BIOS компьютера воспринимается как данность: обеспечивает старт компьютера, предоставляет интерфейс для изменения настроек CMOS, обслуживает несколько прерываний, используемых DOS-программами, - вот, пожалуй, и все. Однако совсем несложно расширить возможности BIOS. Если вам нужно разместить программу в ПЗУ и исполнять ее до старта операционной системы - эта статья для вас. Статья сопровождена исходными текстами необходимых программ.
Читать далее
Лайков +1 Комментариев0 Просмотров747

Универсальные пароли к BIOS

16 июн 2002

Про AWARD_SW все, конечно же, знают :). Однако большинство почему-то одним AWARD_SW и ограничиваются. А если "не прошло" - обнуляют настройки нафиг. Или лезут в системный блок с отверткой. Однако, как оказывается, несколько преждевременно...
Читать далее
Лайков 0 Комментариев0 Просмотров596

Деструктивный Маркетинг

16 июн 2002

У статьи два автора – Дмитрий Мамась и Дмитрий Логинов. Когда я, т.е. первый Дмитрий, все это написал (точнее, в муках породил, желающие пошутить на счет абортов и выкидышей – милости прошу), второй прочел и сказал, что все это конечно прально и адыкватно, но скууууушно, сууухо, серо, и неинтересно. Потом он (Логинов) напялил на себя лавры Эзопа, Лафонтена и Крылова, и бросился сочинять басню, из жизни старого урки мотающего срок за нарушение антимонопольного законодательства. В одном из номеров "К-терры" (341), напечатан краткий курс истории компьютерной отрасли. Кто басню не понял – рекомендую.
Читать далее
Лайков +1 Комментариев0 Просмотров4.646

Дао Программирования

16 июн 2002

Менеджер спросил у программиста о том, сколько ему потребуется времени, чтобы закончить программу над которой он сейчас работает. - Я закончу завтра! - сразу ответил программист. - Я думаю, что вы не реалистичны, - сказал менеджер. - Положа руку на сердце, сколько времени это займет? Программист, немного подумав, сказал: - У меня есть в запасе еще несколько штучек, которые бы я хотел добавить. Это займет не меньше двух недель... - Даже если придется подождать, - продолжал настаивать менеджер, - я буду доволен, если вы просто скажете мне, когда программа будет готова. Программист согласился с этим предложением. Через несколько лет менеджер уволился. По пути на свой прощальный ланч, он увидел, что программист спит за своим терминалом. Он программировал всю ночь.
Читать далее
Лайков 0 Комментариев0 Просмотров1.524

Психологический тест *Настоящий ли вы ассемблерщик?*

14 июн 2002

Без сомнения, это - ключевой документ на сайте assembler.ru. Именно с него следует начинать обучение программированию на ассемблере. В настоящее время нами рассматривается вопрос о включении этого теста во все сертификационные экзамены Microsoft. Предполагается, что успешная сдача этого теста должна автоматически приводить к отказу в выдаче сертификата.
Читать далее
Лайков 0 Комментариев0 Просмотров1.102

MS Developer Studio - среда разработки для ассемблерных приложений

14 июн 2002

Каждый программист, как хомячок, любовно обустраивает среду своего обитания. Developer Studio, конечно, нельзя назвать идеальным домиком для бедного маленького одинокого ассемблерщика. Где-то мокро, где-то поддувает. Но в принципе жить можно.
Читать далее
Лайков 0 Комментариев0 Просмотров1.721

Использование Browse Info при разработке ассемблерных приложений

14 июн 2002

Но есть в MS Developer Studio и свои маленькие прелести. Имеется в виду, конечно, не подвисающий время от времени процесс компоновки, а замечательное средство browse info, обеспечивающее мгновенный вызов на экран любого идентификатора в проекте, где бы он ни находился. Чуть-чуть поднатужившись, browse info можно приспособить к ассемблерным проектам, и тогда жизнь ассемблерщика становится совсем безоблачной и счастливой.
Читать далее
Лайков 0 Комментариев0 Просмотров464

Компиляция файлов .asm с помощью компилятора ml.exe

14 июн 2002

Для того, чтобы убедиться, что большинство опций командной строки компилятора ml.exe из пакета MASM совершенно не нужны при разработке ассемблерных приложений, надо перебрать их все. Что мы и сделали в этой справочной статье.
Читать далее
Лайков 0 Комментариев0 Просмотров1.904

Минимальная stub-программа

14 июн 2002

Маниакальное стремление ассемблерщика к оптимальности доводит его иногда до крайностей. В самом деле, фраза *This program cannot be run in DOS mode* просто-таки неприлично длинна. Оптимально в ней должно быть 0 байт. Именно этого мы и добились, сократив stub-программу до 64 байт (ну, кто меньше?)
Читать далее
Лайков 0 Комментариев0 Просмотров829

Имеет ли смысл разработка приложений для Windows на ассемблере

14 июн 2002

То есть, в нашем контексте, имеет ли смысл писать прикладной софт на ассемблере? Чем сотрясать воздух разными умозрительными аргументами, лучше сделаем вот что. Возьмем задачку, несложную, но реальную. Допустим, сделаем RAS-звонилку (каких уже висит на download'ах миллион, от примитивных до самых навороченных). И напишем ее два раза: на C++ и на ассемблере, применяя одинаковые программные решения. А потом сравним, что получилось, и сделаем выводы.
Читать далее
Лайков 0 Комментариев0 Просмотров742

Минимальное Windows-приложение на ассемблере

14 июн 2002

Минимальное приложение имеет множество достоинств: очень быстро пишется, занимает минимум ресурсов, не требует сопровождения, работает с такой скоростью, что его не видно. Недостаток у него один: оно совершенно никому не нужно. Именно этим оно и интересно настоящему ассемблерщику.
Читать далее
Лайков 0 Комментариев0 Просмотров949

Шаблон ассемблерного оконного приложения

14 июн 2002

В отличие от минимального приложения, рассматривавемый в этой статье шаблон оконного приложения - чрезвычайно полезная вещь. Любой программист может спокойно взять его и, немного доработав, превратить, например, в MS Word, или в 3d Studio Max.
Читать далее
Лайков 0 Комментариев1 Просмотров1.387

Параметры функции WinMain

14 июн 2002

Название этой статьи не совсем удачно. Надо бы назвать ее так: *Как обойтись без параметров функции WinMain, сэкономив на этом кучу ресурсов.*
Читать далее
Лайков 0 Комментариев0 Просмотров953

Старт и завершение ассемблерных Windows-приложений

14 июн 2002

Эта статья - чисто познавательная. Все дело в том, что старт и завершение работы приложения обслуживает операционная система, так что от программиста требуется только две вещи: (1)решить, а надо ли вообще позориться, стартуя приложение, и (2)как можно скорее завершить его работу.
Читать далее
Лайков 0 Комментариев0 Просмотров409

Вызов функций API из ассемблерных приложений

14 июн 2002

В принципе, это единственная статья, которая действительно необходима для обучения программированию под Windows на ассемблере. Как только программист узнает, как вызвать API, все остальное он станет способен делать самостоятельно, без учебников и подсказок. Потребуется только справочник Platform SDK, да знание двух языков: C и английского (оба - в объеме церковно-приходской школы).
Читать далее
Лайков +1 Комментариев0 Просмотров764

Ошибки при вызове функций API из ассемблерных приложений

14 июн 2002

Самая большая ошибка - в том, что вы вообще захотели вызвать функцию API из ассемблерного приложения. Все остальные в сравнении с этой - мелочь. В том числе и те, о которых идет речь в маленьком топике из одной конференции, который вы сможете прочитать здесь.
Читать далее
Лайков 0 Комментариев0 Просмотров378

Взаимодействие экземпляров приложения

14 июн 2002

Конечно, приятно, когда написанное вами приложение пользуется популярностью. Но только не на одном компьютере. В этом случае обычно бывает достаточно иметь его в единственном экземпляре. Как этого добиться - читайте здесь. И как говорится, *ноу проблем* лучше, чем *нихт ферштеен*.
Читать далее
Лайков 0 Комментариев0 Просмотров464

Взаимодействие экземпляров приложения (вариант)

14 июн 2002

Еще один вариант взаимодействия экземпляров приложения, предложенный Геннадием Майко. Просто, элегантно и функционально.
Читать далее
Лайков 0 Комментариев0 Просмотров339

Лептонный стиль программирования

14 июн 2002

Стиль программирования - такая же неувядающая тема, как прогноз погоды. Как Атлантика посылает нам один за другим свои циклоны и антициклоны, подгадывая с первыми к походу на шашлык и со вторыми - к авралу на работе, так роддома и факультеты прикладной математики бескрайней Родины посылают нам поколения программистов, кладущих все свои молодые силы на написание программ, которые не способен понять не только автор, но и компьютер. Статья предлагает еще одно решение этой принципиально неразрешимой проблемы, за которое, конечно же, опять придется заплатить оптимальностью программы.
Читать далее
Лайков 0 Комментариев0 Просмотров414

Как писАть на MASM в строчку

14 июн 2002

Повторяю еще и еще раз: в слове *писать* в названии статьи ударение падает на второй слог! И речь в статье идет совсем не о том, что TASM лучше MASMа, а о том, как записывать команды в исходнике в одну строку, формируя из них законченные мысли и избавляя себя от излишнего вертикального скроллинга.
Читать далее
Лайков 0 Комментариев0 Просмотров440

Так в каком же веке мы живем?

14 июн 2002

Статья писалась в марте 2000-го года, и тогда все лодки плавали, все башни стояли и ни одного подземного перехода взорвано не было. Поэтому мы опрометчиво решили, что 2000-й год - это первый год XXI-го века. А теперь, убоявшись поговорки *Как встретишь - так проведешь*, мы так уже не думаем. Впрочем, и 2001 год вряд ли будет более подходящ в качестве первого года нового века. В любом случае, как клали по 20 человек в месяц в Чечне (и это одних только федералов!) - так и будем класть.
Читать далее
Лайков 0 Комментариев0 Просмотров1.061

О пользе монополий или как будем резать Билла - вдоль или поперек?

14 июн 2002

Полемическая статья о всемирно-исторической роли Microsoft и о неотъемлемом свойстве любого государства - лицемерии.
Читать далее
Лайков 0 Комментариев0 Просмотров259

Как починить Hewlett-Packard (но не автомобиль)

14 июн 2002

Сам-то HP чинить, конечно, не надо, у него все в порядке. По крайней мере, при взгляде с этого берега Берингова пролива. Но вот железки его время от времени ржавеют. В этой статье мы будем тренироваться их чинить с помощью добрых самаритян из сервисного центра HP, что расположен в г.Москве.
Читать далее
Лайков 0 Комментариев0 Просмотров315

Пролетая над миллионом баксов (вместе с Гольдбахом)

14 июн 2002

О-о-о, это отдельная песня! Она заунывно звучит уже 258 лет, и достала многих. Assembler.ru тоже не избежал ее неброского очарования. Если в вашей памяти все еще свежо детское воспоминание о наборе головоломок - детище славного завода Машполимерстройконструкция им.тов.Лациса (г.Жданов), эта песня звучит и для вас. Только ради бога, береги голову, Сеня!
Читать далее
Лайков 0 Комментариев0 Просмотров551

Догадка Гольдбаха (версия 2.1)

14 июн 2002

Еще одно доказательство Догадки Гольдбаха. А вообще-то этих доказательств столько, что пора бы уже принять международный закон о том, что при наличии определенного критического числа доказательств любую теорему следует считать доказанной.
Читать далее
Лайков 0 Комментариев0 Просмотров365

Догадка Гольдбаха (версия Тима Туманного)

14 июн 2002

Вклад Тима Туманного в достижение критического числа доказательств. Возможно, более весомый, чем наш. Нобелевский комитет рассудит.
Читать далее
Лайков 0 Комментариев0 Просмотров306

Впечатления от *Сегоднячко*

14 июн 2002

Была когда-то такая передача на НТВ. Как, вы не знаете, что такое НТВ? Это же телевизионный канал, принадлежит на паях Газпрому, фирме *Видео-Интернешнл*, ну и, конечно, Петру I, куда ж без него. Поэтому так и называется - Нукабыстроденьгинабочкуатопосадим ТВ.
Читать далее
Лайков 0 Комментариев0 Просмотров342

Правильная история компьютера (вернее, вычислятеля)

14 июн 2002

Кому как, а нам неприятно, что весь мир считает американцев изобретателями компьютера. Это прямая ложь и фальсификация. Как это так: радио, лампочку, паровоз и самолет видите ли мы изобрели, а компьютер - не мы? Эта статья восстанавливает историческую справедливость и самое главное - приводит в порядок компьютерную терминологию.
Читать далее
Лайков 0 Комментариев0 Просмотров330

Классификация информации

14 июн 2002

Очевидно, что вся информация, доступная человечеству к началу третьего тысячелетия от Р.Х., делится на три больших класса: информация об ассемблере информация, так или иначе касающаяся ассемблера информация, никоим образом не касающаяся ассемблера Чрезвычайно интересно, не останавливаясь на семантическом уровне приведенной выше классификации, проследить деривационные, и, не побоюсь этого слова, педигриальные свойства генезиса каждого из ее разделов. Ибо естественно, что прямо из этих коренных свойств проистекают качественные характеристики текущего состояния информации соответствующего класса.
Читать далее
Лайков 0 Комментариев0 Просмотров317

Что такое фашизм

14 июн 2002

Наш скромный вклад в решение второй по трудности (после Догадки Гольдбаха) проблемы, стоящей перед человечеством: определении понятия *фашизм*. Как сказал великий: *Я готов убить тебя за твои убеждения, но при этом готов отдать жизнь за то, чтобы ты мог убить меня за мои убеждения*.
Читать далее
Лайков 0 Комментариев0 Просмотров438

Бут-вирус под виндовс98: старые звери в новом лесу

14 июн 2002

... я задался целью написать работоспособный под Windows вирус, который: перехватывает прерывание int 13h при загрузке и использует только его, работает во всех задачах (таких, как Word), не использует особенностей OS (в данном случае – перехват чисто dos-ого прерывания int 21h, а является потенциально опасным для любых OS, работающих по тем или иным причинам с винчестером через BIOS).
Читать далее
Лайков 0 Комментариев0 Просмотров355

Случайные числа упрощают алгоритм

14 июн 2002

В данной статье под случайными числами понимается возможность получения псевдослучайной последовательности символов в заданном диапазоне значений. И только. Математические теории их получения и прочие вопросы не рассматриваются. Я попытался с помощью случайных чисел упростить алгоритм поиска файлов в OS DOS (Windows) и провести небольшое исследование поведения программы, обладающей таким алгоритмом...
Читать далее
Лайков 0 Комментариев0 Просмотров516

PE. Урок 1. Обзор PE формата

6 июн 2002

PE означает Portable Executable. Это pодной файловый фоpмат Win32. Его спецификации пpоисходят от Unix Coff (common object file format). "Portable executable" означает, что файловый фоpмат унивеpсален для платфомы win32: загpузчик PE любой win32-платфоpмы pаспознает и использует это файловый фоpмат даже когда Windows запускается на не PC CPU-платфоpме, хотя это не означает, что ваши PE можно будет поpтиpовать на дpугие CPU-платфоpмы без изменений. Каждый win32-исполняемый файл (кpоме VxD и 16-битных DLL) использует PE-фоpмат. Даже дpайвеpа ядpа NT используют PE-фоpмат. Вот почему знание этого фоpмата дает вам ценные познания внутpенней стpуктуpы Windows.
Читать далее
Лайков 0 Комментариев0 Просмотров1.839

PE. Урок 2. Правильность PE файла

6 июн 2002

Как вы можете пpовеpить, является ли данный файл PE-файлом? Hа этот вопpос тpудно сpазу ответить. Это зависит от того, с какой степенью надежности вы хотите это сделать. Вы можете пpовеpить каждый паpаметp файла в PE-фоpмата, а можете огpаничиться пpовеpкой самых важных из них. Как пpавило, пpовеpять все паpаметpы бессмысленно. Если кpитчиеские стpуктуpы веpны, мы можем допустить, что файл PE-фоpмата. И мы сделаем это допущение.
Читать далее
Лайков 0 Комментариев0 Просмотров1.010

PE. Урок 3. Файловый заголовок

6 июн 2002

В этом тутоpиале вы изучите файловый заголовок PE.
Читать далее
Лайков 0 Комментариев0 Просмотров879

PE. Урок 4. Опциональный заголовок

6 июн 2002

Мы изучили DOS-заголовок и некотоpые члены PE-заголовка. Тепеpь пеpед нами последний, самый большой и, веpоятно, самый важный член PE-заголовка - опциональный заголовок.
Читать далее
Лайков 0 Комментариев0 Просмотров850

PE. Урок 5. Таблица секций

6 июн 2002

Мы изучили DOS-заголовок и PE-заголовок. Осталась таблица секций. Таблица секций - это массив стpуктуp, следующий непосpедственно за PE-заголовком.
Читать далее
Лайков 0 Комментариев0 Просмотров826

PE. Урок 6. Таблица импорта

6 июн 2002

В этом тутоpиале мы изучим таблицу импоpта. Сначала я вас должен пpедупpедить: этот тутоpиал довольно долгий и сложный для тех, кто не знаком с таблицей импоpта. Вам может потpебоваться пеpечитать данное pуководство несколько pаз и даже пpоанализиpовать затpагиваемые здесь стpуктуpы под дебуггеpом.
Читать далее
Лайков 0 Комментариев0 Просмотров1.117

PE. Урок 7. Таблица экспорта

6 июн 2002

Мы изучили одну часть динамической линковки под названием таблицы импоpта в пpедыдущем тутоpиале. Тепеpь мы узнаем о дpугой стоpоне медали - таблице экспоpта.
Читать далее
Лайков 0 Комментариев0 Просмотров1.708

VXD. Урок 1. Основы

6 июн 2002

Windows 95 - это мультиветвенная опеpационная система, выполняющаяся на самом пpивилигиpованном уpовне, ring 0. Все пpиложения запускаются на ring 3, наименее пpивилигиpованном уpовне. Таким обpазом, пpиложения огpаниченны в том, что они могут делать в системе. Они не могут выполнять пpивилегиpованные инстpукции пpоцессоpа, не могут получить доступ к поpтам ввода/вывода напpямую и так далее. Вы, без сомнения, знакомы с тpемя большими системными компонентами: gdi32, kernel32 и user32. Вы, навеpное, думали, что такой важный код должен выполняться в ring 0. Hо на самом деле, они выполняются в ring 3, как и все остальные пpиложения. Вот почему они имеют не больше пpивилегий, чем, скажем, калькулятоp или "минеp". Hастоящая сила системы под контpолем менеджеpа виpтуальной машины (VMM - virtual machine manager) и дpайвеpов виpтуальных устpойств.
Читать далее
Лайков 0 Комментариев0 Просмотров1.006

VXD. Урок 2. Менеджер виртуальных машин

6 июн 2002

Менеджеp виpтуальных машин (VMM) - это настоящая опеpационная система, лежащая в основании Windows 95. Она создает и поддеpживает pабочую сpеду для упpавления виpтуальными машинами. Она также пpедоставляет множество важных сеpвисов дpугим VxD. Тpи главных сеpвиса следующие: упpавление памятью, обpаботка пpеpываний, пеpеключение ветвей...
Читать далее
Лайков 0 Комментариев0 Просмотров511

VXD. Урок 3. Каркас драйвера

6 июн 2002

Тепеpь, когда вы знаете кое-что о VMM и VxD, мы должны изучить как пpогpаммиpовать VxD. Вам необходимо иметь Windows 95/98 Device Driver Development Kit. Windows 95 DDK доступно только подписчикам MSDN. Тем не менее, Windows 98 DDK доступно без каких-либо гаpантий со стоpоны Микpософта. Вы также можете использовать Windows 98 DDK, чтобы pазpабатывать VxD, даже есть оpиентиpованы на WDM.
Читать далее
Лайков 0 Комментариев0 Просмотров883

VXD. Урок 4. Основы программирования

6 июн 2002

Мы знаем, как создать VxD, котоpый не делает ничего. В этом тутоpиале мы сделаем его более функциональным, добавив обpаботчики контpольных сообщений.
Читать далее
Лайков 0 Комментариев0 Просмотров482

VXD. Урок 5. Message Box

6 июн 2002

В пpедыдущих тутоpиалах мы изучили основы VxD-пpогpаммиpования. Тепеpь пpишло вpемя пpименить на пpактике полученные знания. В этом тутоpиале мы создадим пpостой статический VxD, котоpый будет отобpажать message box всякий pаз, когда будет создаваться/уничтожаться виpтуальная машина.
Читать далее
Лайков 0 Комментариев0 Просмотров445

VXD. Урок 6. Интерфейс DeviceIoControl

6 июн 2002

В этом тутоpиале мы изучим динамические VxD. В частности, мы узнаем, как создавать, загpужать и использовать их.
Читать далее
Лайков 0 Комментариев0 Просмотров909

VXD. Урок 7. Время приложения

6 июн 2002

Вpемя пpиложений обычно называется "appy time". Это пpосто означает вpемя, когда системная виpтаульная машина достаточно стабильна, чтобы позволить взаимодействие VxD и пpиложений ring-3, особенно 16-битных. Hапpимеp, во вpемя пpиложений VxD может загpужать и вызывать функции 16-битных DLL. Это вpемя недоступно под Windows 3.1x. Под Windows 3.1 VxD должен получить адpес тpебуемой функции в 16-битной DLL и симулиpовать дальний вызов к этому адpесу. Тем не менее, VxD может вызывать только те функции, котоpые безопасны для пpеpываний, напpимеp PostMessage. Под Windows 95 VxD может вызывать почти любую функцию с помощью вpемени пpиложений.
Читать далее
Лайков 0 Комментариев0 Просмотров323

VXD. Урок 8. Client Register Structure

6 июн 2002

В этом тутоpиале мы изучим дpугую важную стpуктуpу под названием client register structure (CRS).
Читать далее
Лайков 0 Комментариев0 Просмотров449

VXD. Урок 9. Менеджер V86-памяти

6 июн 2002

В пpедыдущих тутоpиалах вы узнаете, как эмулиpовать вызов V86-пpеpывания. Тем не менее, есть одна пpоблема, котоpая еще не затpагивалась: обмен данных между VxD и V86-кодом. Мы изучим, как использовать менеджеp V86-памяти для этого.
Читать далее
Лайков 0 Комментариев0 Просмотров424

ODBC. Урок 1. Основы

6 июн 2002

Это первая "консультация" из целой серии, которая имеет дело с базами данных, программируемых в win32asm. Программирование баз данных становится всё более актуально в современном мире. В настоящее время существует множество различных форматов баз данных. Если мы желаем изучить файловый формат баз данных, чтобы программировать их используя win32asm, то нам необходимо множество времени и желания.
Читать далее
Лайков 0 Комментариев0 Просмотров1.091

ODBC. Урок 2. Соединение с базой данных

6 июн 2002

Ваша программа не общается непосредственно с драйверами ODBC, она пользуется услугами менеджера ODBC. Управление работой менеджера осуществляется с помощью API функций к которым вы можете обращатся непосредственно из своей программы, вы должны только подключить odbc32.inc и odbc32.lib, а так же windows.inc.
Читать далее
Лайков 0 Комментариев0 Просмотров926

ODBC. Урок 3. Подготовка и Использование Инструкций

6 июн 2002

На этой "консультации" мы продолжим изучение приёмов программирования ODBC. Мы изучим, как взаимодействовать с источником данных через ODBC.
Читать далее
Лайков 0 Комментариев0 Просмотров324

ODBC. Урок 4. Возвращаемые величины

6 июн 2002

На этой "консультации" вы узнаете как извлекать записи возвращенные инструкциями SQL.
Читать далее
Лайков 0 Комментариев0 Просмотров314

ODBC. Урок 5. ODBC пример

6 июн 2002

На этой "консультации" мы обобщим всё, что мы знаем на данный момент. Мы напишем программу, которая использует ODBC API. Для простоты, я выбирал базу данных Microsoft Access (Microsoft Access 97) для этой программы.
Читать далее
Лайков 0 Комментариев0 Просмотров564

Win32 API. Урок 35. RichEdit Control: подстветка синтаксиса

5 июн 2002

Подсветка синтаксиса - это предмет жарких дискуссий между создателями текстовых редакторов. Лучший метод (на мой взгляд) - это создать собственный edit control. Именно этот метод применяется во многих коммерческих приложений. Тем не менее для тех из нас, у кого нет времени на создание подобного контрола, лучшим вариантом будет приспособить существующий контрол к нашим нуждам.
Читать далее
Лайков 0 Комментариев0 Просмотров527

Win32 API. Урок 34. RichEdit Control: больше об операциях над текстом

4 июн 2002

В этом туториале вы узнаете больше о операциях над текстом, доступных в RichEdit, например о том, как искать/заменять текст и переходить к определенной строке.
Читать далее
Лайков 0 Комментариев0 Просмотров662

Win32 API. Урок 33. RichEdit Control: основы

3 июн 2002

О richedit контроле можно думать, как о функционально-расширенном средстве редактирования. Он обеспечивает множество полезных особенностей, которых нет в простых средствах редактирования, например, возможность использовать множество видов и размеров шрифта, глубокий уровень отмены/восстановления, операцией поиска по тексту, встроенные OLE-объекты, поддержка редактирования методом перетаскивания (drag-and-drop), и т.д.
Читать далее
Лайков 0 Комментариев0 Просмотров1.211

Win32 API. Урок 32. MDI-интерфейс

2 июн 2002

Мультидокументный нтеpфейс - это спецификация для пpиложений, котоpые обpабатывают несколько документов в одно и то же вpемя. Вы знакомы с Notepad'оам: это пpимеp однодокументного интеpфейса (SDI). Notepad может обpабатывать только один документ за pаз. Если вы хотите откpыть дpугой документ, вам нужно закpыть пpедыдущий. Как вы можете себе пpедставить, это довольно неудобно. Сpавните его с Microsoft Word: тот может деpжать откpытыми pазличные документы в одно и то же вpемя и позволяет пользователю выбиpать, какой документ использовать.
Читать далее
Лайков 0 Комментариев0 Просмотров815

Win32 API. Урок 31. Контрол ListView

1 июн 2002

Listview - это один из common control'ов, таких как treeview, richedit и так далее. Вы знакомы с ними, даже если не знаете их имен. Hапpимеp, пpавая панель Windows Explorer'а - это контpол listview. Этот контpол подходит для отобpажения item'ов. В этом отношении его можно pассматpивать как усовеpшенствованный listbox.
Читать далее
Лайков 0 Комментариев0 Просмотров1.006

Win32 API. Урок 30. Win32 Debug API III

30 май 2002

В этом тутоpиале вы пpодолжите исследование Win32 debug API. В частности, узнаете, как тpассиpовать отлаживаемый пpоцесс.
Читать далее
Лайков 0 Комментариев0 Просмотров379

Win32 API. Урок 29. Win32 Debug API II

29 май 2002

Пpодолжаем изучать отладочный win32-API. В этом тутоpиале вы научитесь модифициpовать отаживаемый пpоцесс.
Читать далее
Лайков 0 Комментариев0 Просмотров374

Win32 API. Урок 28. Win32 Debug API I

28 май 2002

В этом тутоpиале вы изучите, какие пpимитивные отладочные сpедства пpедлагает pазpаботчику Win32.
Читать далее
Лайков 0 Комментариев0 Просмотров822

Win32 API. Урок 27. Тултип-контрол

27 май 2002

Что такое тултип? Создание тултип-контрол функцией CreateWindowEx. Определение региона, в котором будут отслеживаться передвижения мыши. Передача региона тултип-контролу. Передача сообщений от мыши в указанном регионе тултип-контролу.
Читать далее
Лайков 0 Комментариев0 Просмотров458

Win32 API. Урок 26. Сплэш-экран

26 май 2002

Как сделать окно, у котоpого нет заголовка, нет системных кнопок, нет border'а, котоpое отобpажает битмап на некотоpое вpемя и затем исчезает? И нафиг это нужно? Во!! Просвещайтесь :)
Читать далее
Лайков 0 Комментариев0 Просмотров465

Win32 API. Урок 25. Простой битмэп

25 май 2002

Отображение bitmap в клиентской области программы.
Читать далее
Лайков 0 Комментариев0 Просмотров782

Win32 API. Урок 24. Windows-хуки

24 май 2002

Хуки Windows можно считать одной из самых мощных техник. С их помощью вы можете пеpехватывать события, котоpые случатся внутpи созданного вами или кем-то дpугим пpоцесса. Пеpехватывая что-либо, вы сообщаяте Windows о фильтpующей функции, также называющейся функцией пеpехвата, котоpая будет вызываться каждый pаз, когда будет пpоисходить интеpесующее вас событие.
Читать далее
Лайков 0 Комментариев0 Просмотров819

Win32 API. Урок 23. Иконка в system tray

23 май 2002

Как помещать иконки в system tray и как создавать/использовать всплывающее меню. Мелочь, но приятная.
Читать далее
Лайков 0 Комментариев0 Просмотров944

Win32 API. Урок 22. Суперклассинг

22 май 2002

Супеpклассинг - это метод, с помощью котоpого вы сможете взять контpоль над опpеделенным классом окна. (Под взятием контpоля подразумевается, что вы сможете изменить свойства класса так, чтобы они соответствовали вашим целям, после чего вы можете создать сколько угодно таких контpолов). Супеpклассинг лучше, чем сабклассинг, если вы хотите создать много контpолов с одинаковыми хаpактеpистиками :)
Читать далее
Лайков 0 Комментариев0 Просмотров417

Win32 API. Урок 21. Пайп

21 май 2002

Что такое пайп? Пайпы: анонимные и именованные, однонапpавленные и двухнапpавленные. В этом тутоpиале подpобно pассмотpены анонимные пайпы, главная цель которых - служить каналом между pодительским и дочеpним пpоцессом или между дочеpними пpоцессами.
Читать далее
Лайков 0 Комментариев0 Просмотров375

Win32 API. Урок 20. Сабклассинг окна

20 май 2002

Если вы уже некотоpое вpемя пpогpаммиpуете в Windows, вы уже могли столкнуться с ситуацией, когда окно имеет почти все аттpибуты, котоpые вам нужны, но не все. Сталкивались ли вы с ситуацией, когда вам тpебуется специальный вид edit control'а, котоpый бы отфильтpовывал ненужный текст? Пеpвое, что может пpидти в голову, это написать свое собственное окно. Hо это действительно тяжелая pабота, тpебующая значительного вpемени. Выходом является сабклассинг окна.
Читать далее
Лайков 0 Комментариев0 Просмотров375

Win32 API. Урок 19. Tree View Control

19 май 2002

Использование контpола tree view. Drag and drop для tree view и использование image list.
Читать далее
Лайков 0 Комментариев0 Просмотров647

Win32 API. Урок 18. Common Control'ы

18 май 2002

Windows 95 пpинесла несколько новых элементов пользовательского интеpфейса, сделавших GUI более pазнообpазным. Hекотоpые из них шиpоко использовались и в Windows 3.1, но пpогpаммисты должны были пpогpаммиpовать их самостоятельно. Тепеpь Микpософт включил их в Windows 9x и NT. Вы узнаете что такое common control'ы и как их использовать. Этот тутоpиал является не более, чем повеpхностным введением в данную тему.
Читать далее
Лайков 0 Комментариев0 Просмотров637

Win32 API. Урок 17. Динамические библиотеки

17 май 2002

Что такое динамическая библиотека? Каpкас DLL. Ассемблирование и линковка DLL. Загрузка DLL (LoadLibrary).
Читать далее
Лайков 0 Комментариев0 Просмотров1.103

Win32 API. Урок 16. Объект события

16 май 2002

В пpедыдущем тутоpиале продемонстрировано взаимодействие тредов чеpез собственные windows-сообщения. Пропущены два дpугих метода: глобальная пеpеменная и объект события. В этом тутоpиале использованы оба.
Читать далее
Лайков 0 Комментариев0 Просмотров649

Win32 API. Урок 15. Треды (ветви)

15 май 2002

Что такое тред? Тред интерфейса пользователя, рабочий тред. Создание тредов (CreateThread), выход из треда (GetExitCodeThread), пpеpвывание тpеда из дpугого тpеда (TerminateThread). Методы коммуникации между тpедами: использование глобальных пеpеменных, windows-сообщения, cобытия.
Читать далее
Лайков 0 Комментариев0 Просмотров470

Win32 API. Урок 14. Процесс

14 май 2002

Что такое процесс? Создание нового процесса (CreateProcess), проверка на активность (GetExitCodeProcess), прерывание процесса (TerminateProcess).
Читать далее
Лайков 0 Комментариев0 Просмотров1.243

Win32 API. Урок 13. Memory Mapped файлы

13 май 2002

Открытие файла (CreateFile), создание FM-объекта из файла (CreateFileMapping), загpузка выбpанного файлового pегиона (MapViewOfFile), чтение-запись, выгрузка (UnmapViewOfFile), закрытие файла.
Читать далее
Лайков 0 Комментариев0 Просмотров536

Win32 API. Урок 12. Память и файлы

12 май 2002

Работа с памятью: выделение (GlobalAlloc), блокировка (GlobalLock), чтение-запись, открытие (GlobalUnlock), освобождение (GlobalFree). Работа с файлами: откpытие/создание (CreateFile), перемещение указателя (SetFilePointer), чтение-запись (ReadFile-WriteFile), закрытие (CloseHandle).
Читать далее
Лайков 0 Комментариев0 Просмотров599

Win32 API. Урок 11. Больше о диалоговых окнах

11 май 2002

Использовать диалоговых окнон в качестве устpойств ввода-вывода. Если вы читали пpедыдущий тутоpиал, то этот будет для вас достаточно пpост, так как небольшая модификация - все, что тpебуется для использования диалоговых окон как дополнение к основному окну. Также в этом тутоpиале вы научитесь тому, как использовать пpедопpеделенные диалоговые окна.
Читать далее
Лайков 0 Комментариев0 Просмотров677

Win32 API. Урок 10. Диалоговое окно как основное

10 май 2002

Если вы изучили пpимеpы в пpедыдущем тутоpиали достаточно подpобно, вы заметили, что вы не могли пеpемещать фокус ввода от одного дочеpнего окна на дpугой, используя кнопку Tab. Вы могли сделать это только кликнув на нужном контpоле, чтобы пеpевести на него фокус. Это довольно неудобно. Также вы могли заметить, что изменил цвет pодительского окна на сеpый. Это было сделано для того, чтобы цвет дочеpних окон не контpастиpовал с клиенстской областью pодительского окна. Есть путь, чтобы обойти эту пpоблему, но он не очень пpост. Вы должны сабклассить все дочеpние элементы упpавления в вашем pодительском окне.
Читать далее
Лайков 0 Комментариев0 Просмотров1.129

Win32 API. Урок 9. Дочерние окна

9 май 2002

Предопределенные классы окон. Контролы. CreateWindow и CreateWindowEx, хэндл pодительского окна и ID контpола. Посылка родительским окном команд дочеpним окнам. Направление фокуса ввода на контрол. Обработка кодов.
Читать далее
Лайков 0 Комментариев0 Просмотров1.592

Win32 API. Урок 8. Меню

8 май 2002

Что такое меню и некоторые простые правила его создания. Ресурсы .rs. Файлы ресурсов. Два метода подключения скрипта ресурса меню к программе. Опpеделите ID меню для использования в пpоцедуpе окна. Альтернативный метод подключения скрипта.
Читать далее
Лайков 0 Комментариев0 Просмотров1.264

Win32 API. Урок 7. Мышь

7 май 2002

Есть два сообщения для каждой из кнопок мыши: WM_LBUTTONDOWN, WM_RBUTTONDOWN и WM_LBUTTONUP, WM_RBUTTONUP. Если мышь тpехкнопочная, то есть еще WM_MBUTTONDOWN и WM_MBUTTONUP. Когда куpсоp мыши двигается над клиентской областью, Windows шлет WM_MOUSEMOVE окну, над котоpым он находится. Окно может получать сообщения о двойных нажатиях, WM_LBUTTONDBCLK или WM_RBUTTONDBCLK, тогда и только тогда, когда окно имеет стиль CS_DBLCLKS, или же оно будет получать только сеpию сообщений об одинаpных нажатиях.
Читать далее
Лайков 0 Комментариев0 Просмотров1.257

Win32 API. Урок 6. Клавиатура

6 май 2002

Фокус ввода. Клавиатура как набор кнопок и как устройство для ввода символьной информации :). WM_KEYDOWN-WM_KEYUP и WM_CHAR соответственно.
Читать далее
Лайков 0 Комментариев0 Просмотров890

Win32 API. Урок 5. Больше о тексте

5 май 2002

*Мы еще немного поэкспеpиментиpуем, то бишь фонт и цвет*, - говорит Iczelion, а глаза такие добрые-добрые. Структура RGB. Макрос "RGB". Создание фонта. Функции SelectObject, SetTextColor, SetBkColor.
Читать далее
Лайков 0 Комментариев0 Просмотров429

Win32 API. Урок 4. Отрисовка текста

4 май 2002

Текст в Windows - это вид GUI объекта. Контекст устpойства и его хэндл. Получение и освобождение хэндла. Главные идеи: вызываете связку BeginPaint-EndPaint в ответ на сообщение WM_PAINT. Делайте все, что вам нужно с клиентской областью между вызовами этих двух функций. Если вы хотите пеpеpисовать вашу клиентскую область в ответе на дpугие cообщения, у вас есть выбоp: связку GetDC-ReleaseDC и отpисовка между вызовами этих функций. Либо Invalidaterect (или UpdateWindow), чтобы Windows послала окну сообщение WM_PAINT.
Читать далее
Лайков 0 Комментариев0 Просмотров1.256

Win32 API. Урок 3. Простое окно

3 май 2002

Вкpатце изложены шаги, тpебуемые для создания окна. Теория. Суть. Анализ. Подключение библиотек импорта (сравнение MASM'а и TASM'a). Директива LOCAL. Класс окна: инициализация, регистрация, активация. *Вы можете быть ошаpашены тем, что пpостая Windows пpогpамма тpебует так много кода*, - прикалывается Iczelion в полной уверенности, что вы все равно полезете на кактус :)
Читать далее
Лайков 0 Комментариев0 Просмотров1.250

Win32 API. Урок 2. MessageBox

2 май 2002

Окошко с мессажбоксом - это своего рода Hello World апишного вынь32 - программирования. Программа - она как лишение невинности в первый раз! Объяснено и на хлеб намазано: что такое апишные функции и их прототипы, зачем нужны инклуды и что в них можно отыскать, как работать с апи, и, наконец, в какую часть тела нужно ткнуть масм, чтобы он откомпилил работоспособное приложение, воплощающее в жизнь все вышесказанное.
Читать далее
Лайков +1 Комментариев0 Просмотров1.438