Войти или зарегистрироваться
WASM
Главная
Публикации
>
archive
>
Публикации автора: archive
Преобразование кода
24 окт 2011
Для чего обычно используется преобразование кода? Для сокрытия важных частей алгоритма, для затруднения взлома и сигнатурного анализа. Глупо было бы думать, что этим трюком пользуются только легальные корпорации и фирмы. Разработчики вредоносного программного обеспечения прочно забронировали себе места в топе подобных достижений. Только используются они для сокрытия и затруднения анализа вирусов.
Читать далее
+1
0
10.952
Статическое детектирование файлов: Часть 1 - Структура и данные
16 окт 2011
Можно долго умничать как о возможности создания недетектируемого вируса, так и о детекте абсолютно всех файлов, но известно точно: существуют эффективные (и не очень) методы обнаружения малвари, и не менее эффективные (а то и больше) техники антидетекта. Вот об этом мы и поговорим.
Читать далее
0
0
10.809
Avira – heuristic disasm
15 авг 2011
Эта статья будет посвящена самому неадекватному антивирусу – авире. Мне всегда было интересно, как же она умудряется отличать вирус от невируса, какие критерии она использует. В этой статье я покажу, как нужно ее реверсить. Некоторые моменты будут озвучены просто как факт, я не буду рассказывать, как я к ним пришел – я просто этого не помню. Также хочу заранее сказать, что я не реверсер, поэтому многие вещи, возможно, я делал не совсем оптимально.
Читать далее
0
0
2.271
Введение в крэкинг с нуля, используя OllyDbg - Глава 53
22 окт 2010
Разбор скрипта Ularteck'а.
Читать далее
+1
1
5.624
Введение в крэкинг с нуля, используя OllyDbg - Глава 52
25 июл 2010
Распаковка ASProtect.2.3.04.26.a. Часть 2.
Читать далее
+1
1
4.471
Введение в крэкинг с нуля, используя OllyDbg - Глава 51
25 июл 2010
Распаковка ASProtect.2.3.04.26.a. Часть 1.
Читать далее
+1
1
5.503
Обработка user-mode исключений в Windows
12 июн 2010
Статья посвящена обработке user-mode исключений в Windows.
Читать далее
+1
1
6.309
Введение в крэкинг с нуля, используя OllyDbg - Глава 50
30 апр 2010
Распаковка ReCrypt 0.80.
Читать далее
+1
1
5.107
Введение в крэкинг с нуля, используя OllyDbg - Глава 49
29 апр 2010
Распаковка PeSpin 1.3.04.f. Часть 2.
Читать далее
+1
1
3.825
Введение в крэкинг с нуля, используя OllyDbg - Глава 48
26 апр 2010
Распаковка PeSpin 1.3.04.f. Часть 1.
Читать далее
+1
1
3.906
Введение в крэкинг с нуля, используя OllyDbg - Глава 47
26 апр 2010
Продолжение раззбора крэкми «Patrick».
Читать далее
+1
1
4.814
Введение в крэкинг с нуля, используя OllyDbg - Глава 46
13 сен 2009
В этой главе продолжаем изучать методы, которые мы пытаемся применить, когда всё начинает идти не так, как мы ожидали. В этой главе для этих целей нам послужить прекрасный защищённый крэкми Fatmike’а, который называется PATRICK.exe.
Читать далее
+1
1
4.216
Исследование функции SetTimer
12 авг 2009
На днях, во время реверса одной программы, задалась вопросом, как вывести список таймеров, установленных win32 - функцией SetTimer (а если быть конкретнее, то мне нужны были адреса процедур - lpTimerFunc). Конечно, с практической точки зрения это малополезно, а с теоретической - очень даже.
Читать далее
0
0
1.676
Дополнение к 45-ой главе «Введения в крэкинг, используя OllyDbg»
11 авг 2009
В этой статье показан другой способ противостоять упаковщику из вышеуказанной главы единственно с помощью щелчков по кнопкам мыши без необходимости делать что-то ещё.
Читать далее
+1
1
3.472
Введение в крэкинг с нуля, используя OllyDbg - Глава 45
8 авг 2009
В этой главе мы рассмотрим распакуй-меня, сделанном с помощью упаковщика, который сложно победить в OllyDbg, так как в нём есть одна часть, которая не работает в Олли и выдаёт ошибку. Но мы всё равно будем использовать OllyDbg, несмотря ни на что. Мы могли бы использовать другой отладчик, но ведь это же «Введение в крэкинг с помощью OllyDbg», хе-хе.
Читать далее
+1
1
3.919
Введение в крэкинг с нуля, используя OllyDbg - Глава 44
26 июн 2009
Ок, продолжаем как обычно. Мы уже нашли украденные байты, и у нас теперь есть скрипты для того, чтобы легко попасть в OEP и чтобы починить IAT, так что осталось сделать дамп.
Читать далее
+1
1
3.424
Введение в крэкинг с нуля, используя OllyDbg - Глава 43
13 июн 2009
В предыдущей части мы сосредоточились на починке украденных байт, а сейчас нашей задачей является IAT.
Читать далее
+1
1
3.548
Исследование подсистемы GUI: горячие клавиши в Windows
31 май 2009
Исследование механизма регистрации горячих клавиш в Windows.
Читать далее
0
0
1.644
Сетевой программный интерфейс Windows Vista/2008: внутреннее устройство, использование и взлом
21 май 2009
В этот раз речь пойдет о внутреннем устройстве интерфейса прикладного уровня сетевой подсистемы Windows Vista – NPI. Также будут представлены примеры его использования в самой системе – будут описаны сокеты ядра WSK и прикладной интерфейс TCP/IP стека. Также будет показана практическая реализация некоторых нестандартных методик, уже использующихся поставщиками персональных фаерволов.
Читать далее
0
0
2.052
Работа с протоколом Socks5 на MASM
21 май 2009
К моему удивлению, на эту тему я не нашел какого либо завершенного материала (даже на wasm'овском форуме !). Это и послужило поводом для написательства данной статьи. На первый взгляд, все кажется сложным, но на самом деле все просто.
Читать далее
+1
0
2.019
Введение в крэкинг с нуля, используя OllyDbg - Глава 42
15 май 2009
Теперь мы перейдём к более сложным упаковщикам и увидим, что используемые методы могут быть очень разными в зависимости от случая, поэтому у нас должен быть большой запас различных трюков. В этот раз нас будет занимать ACPROTECT 1.09, распакуй-меня со всякого рода защитами.
Читать далее
+1
1
3.856
Введение в крэкинг с нуля, используя OllyDbg - Глава 41
6 апр 2009
После того, как мы продолжили разбираться с таблицой IAT pelock’а, а также антидамповыми приёмами, в этой части будет рассмотрено две темы: одна, которая была пропущена ранее, и другая, которая очень поможет в работе с tpelock’ом или другой похожей программой, которая снимает или обнаруживает установленные HBP.
Читать далее
+1
1
4.562
Введение в крэкинг с нуля, используя OllyDbg - Глава 40
25 мар 2009
После того, как мы продолжили разбираться с таблицой IAT pelock’а, а также антидамповыми приёмами, в этой части будет рассмотрено две темы: одна, которая была пропущена ранее, и другая, которая очень поможет в работе с tpelock’ом или другой похожей программой, которая снимает или обнаруживает установленные HBP.
Читать далее
+2
1
4.287
Введение в крэкинг с нуля, используя OllyDbg - Глава 39
2 фев 2009
Глава посвящена понятию "украденных байт" и методам их восстановления.
Читать далее
+1
1
3.689
Введение в крэкинг с нуля, используя OllyDbg - Глава 38
11 янв 2009
Распаковка протектора yod'ы Protector 1.3.
Читать далее
+1
1
3.951
Программирование графических LCD модулей на основе KS0108/KS0107 контроллера
3 янв 2009
В предыдущей статье мы разобрали программирование знакосинтезирующих ЖКИ модулей, но не всегда бывает достаточно их возможностей. К примеру нам нужно вывести загрузку CPU в динамике, то есть как график, ну или статистику использования файла подкачки, конечно ничто не мешает определить 8 символов псевдографики, в знакосинтезирующем дисплее (от пустого до полностью заполненного), и выводить их как гистограмму в две строки, ну или нам нужно вывести простую анимацию, тут уже знакосинтезирующие ЖКИ бессильны.
Читать далее
0
0
4.478
Введение в крэкинг с нуля, используя OllyDbg - Глава 37
14 дек 2008
Методы починки переадресовочных элементов IAT: ручной метод, использование плагинов IMP REC'а, связка JMP-CALL (волшебный переход).
Читать далее
+1
1
4.758
Подключение и программирование LCD на основе HD44780U
14 дек 2008
Многие хотят выделить корпус своего ПК из общей массы либо повысить удобство пользования им. В данной статье я расскажу о подключении ЖК модуля к компьютеру и соответственно о его программировании. Как правило существует несколько видов таких дисплеев – сегментные, знакосинтезирующие, графические. Мы рассмотрим знакосинтезирующие модули на HD44780U совместимом контроллере.
Читать далее
0
0
3.250
Правда о KeUserModeCallback()
6 дек 2008
Это даже не статья, а маленькая заметочка. Заметочка на тему избитой всеми функции KeUserModeCallback(). Избитой потому, что многие о ней слышали, многие знают для чего она используется и как примерно работает, но вот рабочего кода, полноценно ее использующего, почти ни кто так и не выдал. Тому есть несколько причин, но обо всем по порядку…
Читать далее
0
0
2.684
Планировщик, потоки и процессы
6 дек 2008
В этот раз мы рассмотрим, как операционная система Windows XP распоряжается потоками и процессами и осуществляет их планирование. Коснемся контекстов, их переключения, снятия и установки.
Читать далее
0
0
3.220
KeCapturePersistentThreadState() и crash dump'ы
24 ноя 2008
Заметка о занятной недокументированной функции, экспортируемую ядром, на которую нет ссылок внутри ядра, но которая делает весьма занятную вещь. А именно, записывает в переданный кусок памяти полноценный minidump на данный момент времени.
Читать далее
0
0
1.911
Оконные хуки: взгляд изнутри
24 ноя 2008
В последнее время на форумах все чаще стали проскальзывать вопросы о том, как получить список оконных хуков, установленных на события мыши или клавиатуры. Уметь их перечислять и идентифицировать было бы довольно полезно, учитывая обилие различных видов spyware в наши дни. И хотя кейлогеры aka клавиатурные шпионы, работающие в режиме пользователя с помощью этих самых хуков, потихоньку уступают свое место драйверам-фильтрам, тема эта все еще продолжает оставаться актуальной.
Читать далее
0
0
2.134
Введение в крэкинг с нуля, используя OllyDbg - Глава 36
12 ноя 2008
На примере telock 0.98 рассматриваются переадресовочные элементы IAT.
Читать далее
+1
1
4.263
Введение в крэкинг с нуля, используя OllyDbg - Глава 35
10 ноя 2008
Разбор нового приёма на примере упаковщика ASPack.
Читать далее
+1
1
4.485
Введение в крэкинг с нуля, используя OllyDbg - Глава 34
8 окт 2008
Дамп файла и восстановление IAT с помощью PE TOOLS и IMP REC.
Читать далее
+2
1
4.487
Искусство редактирования интерфейса программ на VB
2 окт 2008
Описание формата, в котором хранятся формы в VB и пример работы с ними.
Читать далее
0
0
2.078
Введение в крэкинг с нуля, используя OllyDbg - Глава 33
22 сен 2008
Что такое IT и IAT.
Читать далее
+1
1
5.075
Взгляд на ООП из низкого уровня
29 авг 2008
Большинству низкоуровневых программистов, как правило, объектно ориентированное программирование кажется сложным. В этой статье объясняются некоторые моменты ООП. Приводятся примеры их устройства с помощью языков C и Assembler.
Читать далее
0
0
2.131
Введение в крэкинг с нуля, используя OllyDbg - Глава 32
18 авг 2008
Различные методы поиска OEP.
Читать далее
+1
1
4.755
Введение в крэкинг с нуля, используя OllyDbg - Глава 31
26 июл 2008
Начало новой большой и интересной темы: распаковка программ. ОБъясняются основные концепции на примере крэкми CrueHead'а.
Читать далее
+1
1
3.944
Введение в крэкинг с нуля, используя OllyDbg - Глава 30
9 июл 2008
Последняя статье о P-CODE: разбор крэкми и нескольких техник.
Читать далее
+2
1
3.958
Введение в крэкинг с нуля, используя OllyDbg - Глава 29
14 июн 2008
Обсуждение P-CODE в Visual Basic и разбор крэкми, его использующего.
Читать далее
+1
1
4.004
Description of DMP Format
8 июн 2008
This article describes in details file format of Windows' crash dumps.
Читать далее
+1
0
4.128
Ассемблер в Linux для программистов C
7 июн 2008
Эта книга ориентирована на программистов, которые уже знают C на достаточном уровне. Почему так? Вряд ли зная только пару несколько языков вроде Perl или Python кто-то захочет изучать ассемблер. Используя ассемблер и C вместе, применяя каждый язык для определённых целей, можно добиться очень хороших результатов. К тому же, программисты C уже имеют некоторые знания об архитектуре, способе организации памяти и других вещах, которые поначалу сложно понять. Поэтому изучать ассемблер после C несомненно легче, чем после других языков высокого уровня.
Читать далее
+1
2
6.135
Введение в MSIL - Часть 8: Конструкция for each
23 май 2008
Конструкция for each приобрела популярность благодаря Visual Basic, была едва признана С++ и стала бессмертной из-за ECMA-334 (некоторые люди называют это просто C#).
Читать далее
0
0
1.940
Введение в крэкинг с нуля, используя OllyDbg - Глава 28
22 май 2008
Продолжение разбора крэкми, написанных на VB.
Читать далее
+1
1
3.803
Введение в крэкинг с нуля, используя OllyDbg - Глава 27
17 апр 2008
Продолжение разбора исследования программ, написанных на Visual Basic.
Читать далее
+1
1
3.683
OLE Variant 2 ANSI
11 апр 2008
Этот материал полезен для начинающих воинов дзена и может поведать о том как: * конвертировать целые числа и float`ы единым алгоритмом * узнать количество десятичных цифр в целом числе через логарифм * избавиться от условных переходов при помощи команд cmovXX, bt и модификации кода
Читать далее
0
0
2.143
Инжект: лезем через окно
10 апр 2008
Одним из самых соблазнительных мест для преступника, пытающегося пробраться в чужую квартиру, безусловно, является окно. Да и вообще, для русских людей характерно приходить к чему-то новому не «через дверь», а «через форточку», ибо так нам завещал сам царь Петр. Вот и мы, подражая великому правителю, попытаемся проникнуть в адресное пространство чужого процесса через… окно.
Читать далее
0
0
1.801
Модификация исполняемых PE-файлов
10 апр 2008
Модилификация PE-файла в картинках.
Читать далее
0
0
3.772
Введение в крэкинг с нуля, используя OllyDbg - Глава 26
10 апр 2008
Глава посвящена исследованию программ, написанных на Visual Basic, с помощью OllyDbg.
Читать далее
+1
1
3.983
Введение в крэкинг с нуля, используя OllyDbg - Глава 25
3 мар 2008
В этой главе мы рассмотрим обработчики исключений, которые обычно являются камнем преткновения для новичков, но на самом деле это не слишком сложная тема, если немного в неё углубиться.
Читать далее
+1
1
3.787
Введение в крэкинг с нуля, используя OllyDbg - Глава 24
29 фев 2008
Разбор крэкми «antisocial», приложенного к предыдущей главе.
Читать далее
+2
3
4.111
Введение в крэкинг с нуля, используя OllyDbg - Глава 23
27 фев 2008
Последняя глава, посвящённая антиотладке: флаги ProcessHeap и NTGlobalFlag.
Читать далее
+2
2
3.897
Введение в MSIL - Часть 7: Приведение и преобразование типов
22 фев 2008
Приведение и преобразование типов часто вызывает различные беспокойства среди программистов: например, по поводу скорости выполнения, безопасности или просто не совсем хорошее понимание последствий данных операций. В этой главе цикла я расскажу о них. Для примеров я буду использовать в основном C++, так как он имеет богатый набор языков средств, относящихся к приведению типов. Конечно, мы также будем рассматривать инструкции CLI, которые генерируются в итоге.
Читать далее
0
0
1.703
Безопасное извлечение USB-устройств
21 фев 2008
Цель данной статьи - описание метода безопасного извлечения USB-устройств. В данном случаи под USB-устройствами будут, подразумевается в основном устройства хранения информации (Flash, HDD), но все описанные ниже действия применимы и устройствам других классов.
Читать далее
0
0
1.845
Введение в крэкинг с нуля, используя OllyDbg - Глава 22
6 фев 2008
UnhandledExceptionFilter & ZwQueryInformationProcess и защита от обнаружения посредством этих функций.
Читать далее
+3
1
3.740
Введение в крэкинг с нуля, используя OllyDbg - Глава 21
4 фев 2008
Продолжение изучения различных антиотладочных методов: FindWindow, Proccess32First и Process32Next.
Читать далее
+2
5
5.531
Введение в крэкинг с нуля, используя OllyDbg - Глава 20
27 янв 2008
Суть метода обнаружения OllyDbg по имение процесса и способы защиты.
Читать далее
+2
3
5.414
Введение в крэкинг с нуля, используя OllyDbg - Глава 19
27 янв 2008
Как работает обнаружение OllyDbg с помощью функции IsDebuggerPresent и как этого избежать.
Читать далее
+2
5
5.017
Введение в крэкинг с нуля, используя OllyDbg - Глава 18
27 янв 2008
Описывается решение ещё двух крэкми.
Читать далее
+2
2
4.466
Введение в крэкинг с нуля, используя OllyDbg - Глава 17
25 янв 2008
Разбор ещё нескольких крэкми: один с жёстко-заданным серийным номером и другой с переменным, причём с динамической проверкой правильности номера при вводе каждого его символа.
Читать далее
+2
5
4.633
Введение в крэкинг с нуля, используя OllyDbg - Глава 16
21 янв 2008
Разбор крэкми с переменным серийным номером, высчитывающимся на основе имени пользователя.
Читать далее
+2
4
4.823
Управление памятью в ядре Windows XP
17 янв 2008
Статья рассчитана на тех, кто уже работал с памятью в режиме ядра и отличает MmProbeAndLockPages от MmMapLockedPagesSpecifyCache, а так же знаком с основами устройства управления памятью у процессора - каталоги страниц (PDE), таблицы страниц (PTE), исключение ошибки страницы (#PF).
Читать далее
0
0
2.767
Injected Evil: обзор нескольких методик обхода файерволов
17 янв 2008
В этой статье я хочу описать техники, который позволят обойти большинство современных проактивных защит и фаерволов. Эта тема очень популярна и достаточно изъезжена, но что-то новое не появлялось уже достаточно большое количество времени. Помимо сугубо практического материала я представлю Вам необходимый теоретический минимум для того, чтобы въехать в тему самостоятельно, почувствовать вкус, который чувствует исследователь и взломщик.
Читать далее
0
0
1.582
Введение в крэкинг с нуля, используя OllyDbg - Глава 15
5 дек 2007
Окончание разбора крэкми с жёстко заданными серийными номерами.
Читать далее
+2
3
5.678
Введение в крэкинг с нуля, используя OllyDbg - Глава 14
14 ноя 2007
Продолжение рассказа о том, как искать жёстко заданные серийные номера.
Читать далее
+2
3
5.534
Правда о NtLdtSetEntries
11 ноя 2007
Речь пойдёт об обломе эмуляторов и отладчиков, которые не учитывают то, что в защищенном режиме есть сегментные регистры, и они, к тому же, играют большую роль.
Читать далее
+1
0
1.454
Введение в крэкинг с нуля, используя OllyDbg - Глава 13
9 ноя 2007
В этой начато рассмотрение поиска жёстко-заданных серийных номеров.
Читать далее
+3
3
5.494
Простой обход фаервола KIS 7
25 окт 2007
Сегодня поговорим о простом, но, тем не менее, эффективном методе обхода фаервола Kaspersky Internet Security 7.0 – сетевого экрана, компонента одной из самых популярных и известных защит для персонального пользователя на сегодняшний день.
Читать далее
0
0
997
Страничная адресация: PAE
16 окт 2007
В статье рассматривается режим страничной адресации PAE.
Читать далее
0
0
2.173
Описание формата DMP
10 окт 2007
Статья рассказывает о формате крэш-дампов Windows и как написать их простой анализатор.
Читать далее
0
0
1.863
Введение в MSIL - Часть 6: Стандартные языковые конструкции
8 окт 2007
Здесь рассматривается реализация конструкций if и for средствами MSIL.
Читать далее
0
0
2.009
Введение в крэкинг с нуля, используя OllyDbg - Глава 12
5 окт 2007
Данная глава посвящена практическому использованию сообщений Windows.
Читать далее
+3
1
6.472
Введение в крэкинг с нуля, используя OllyDbg - Глава 11
5 окт 2007
В этой главе рассматриваются процессорные точки останова (hardware breakpoints) и условные точки останова.
Читать далее
+2
1
4.720
Введение в крэкинг с нуля, используя OllyDbg - Глава 10
22 июл 2007
Эту главу мы посвятим изучению различных видов точек останова. Они позволяют приостановить выполнение кода программы в нужном месте. И снова роль подопытной жертвы достаётся бессменному крэкми CrueHead'а.
Читать далее
+3
1
6.341
Добавление функциональности в готовые программы
8 июл 2007
Нашей целью будет добавление функциональности в готовую (скомпилированную) программу. Фактически, данной техникой можно добавить функциональность в любую программу, добавить тоже можно все, что вы придумаете. В этом описании не ставилась цель создать какой-либо полезный программный продукт, целью было показать возможности технологии добавления кода в скомпилированную программу. Наша цель - добавить новую функцию в стандартный Блокнот. Добавочной функцией мной была выбрана возможность вычисления выражений. Чтобы было интереснее, возможность вычисления была позаимствована из другой программы.
Читать далее
0
0
2.972
Исследование «промежуточного» кода на примере GP-кода языка NATURAL - Часть 3: Секция кода
3 июл 2007
В этой части статьи под нашим прицелом окажется секция кода. На двух простейших примерах попробуем разобраться с организацией этой «таинственной» секции.
Читать далее
0
0
996
Введение в крэкинг с нуля, используя OllyDbg - Глава 9
20 июн 2007
Как и было обещано, теперь мы займёмся непосредственно крэкингом. Начнём с базовых понятий, не спеша, шаг за шагом пополняя наш крэкерский арсенал знаний. Теоретические пробелы мы постараемся заполнить по ходу дела.
Читать далее
+3
1
7.858
Введение в крэкинг с нуля, используя OllyDbg - Глава 8
25 апр 2007
В этой главе мы рассмотрим ещё несколько базовых инструкций, которые остались без внимания в предыдущих главах. Как только мы их изучим, сможем, наконец, перейти непосредственно к крэкингу!
Читать далее
+4
1
5.484
Прерывания в защищенном режиме процессора IA-32
18 мар 2007
Обработка прерываний в защищенном режиме процессора. Перевод в защищенный режим и обратно. Написание простого загрузчика.
Читать далее
0
0
4.465
Введение в крэкинг с нуля, используя OllyDbg - Глава 7
18 мар 2007
В этой главе рассматриваются инструкции CALL и RET.
Читать далее
+3
3
6.596
Введение в крэкинг с нуля, используя OllyDbg - Глава 6
18 мар 2007
В этой главе рассматриваются сравнения и условные переходы.
Читать далее
+3
2
6.982
COM повсюду. Или как использовать регулярные выражения при программировании на ассемблере
17 фев 2007
Навеяло недавней статьёй о COM с этого сайта и его использовании в ассемблере. Всплыла у меня в голове старая задумка: разобрать интерфейс VBScript Regular Expressions 5.5 и использовать все его потрясающие возможности при программировании на ассемблере.
Читать далее
0
0
1.922
Введение в крэкинг с нуля, используя OllyDbg - Глава 5
31 янв 2007
В этой главе рассматриваются математические и логические инструкции процессора.
Читать далее
+4
3
6.310
Введение в крэкинг с нуля, используя OllyDbg - Глава 4
27 янв 2007
В этой главе рассматривается, что такое инструкции процессора, а также собственно инструкции, относящиеся к работе со стеком и перемещению данных.
Читать далее
+3
2
8.476
3 кита COM. Кит второй: dll
3 янв 2007
Второй важнейшей основой, без которой невозможна инфраструктура COM, является использование DLL. Причем не просто использование, а очень активное использование; и использование не только самих DLL, но и тех принципов, которые применяются в технологии динамического связывания.
Читать далее
0
0
1.777
Новогоднее поздравление с 2007 годом
26 дек 2006
Новогодняя речь-поздравление :).
Читать далее
0
0
1.107
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
1.762
3 кита COM. Кит первый: реестр
2 дек 2006
Здесь не будут описываться модели компонентного программирования, принципы инкапсуляции, полиморфизма, наследования и т.п. - разве что они будут упомянуты мимоходом. Вместо этого будет предложен подход с точки зрения низкоуровневого программирования, не отягощенного теоретическими абстракциями - своего рода "вид снизу" на архитектуру COM. Возможно, больше всего эти статьи подойдут тем, кто не раз начинал и бросал изучение COM, не справившись и изобилием разнородной информации, но все же не оставил желания разобраться в существе и механизмах этой технологии, а также тем, кто работает с COM на высоком уровне, но хотел бы заглянуть "за кулисы".
Читать далее
0
0
2.565
Простой способ противодействия сплайсингу API
24 ноя 2006
Для перехвата вызова какой-нибудь API функции обычно используется метод, называемый сплайсингом. Суть метода состоит в замене первых 5 байт функции инструкцией JMP передающей управление коду-перехватчику. Данная техника широко используется в персональных фаерволах для того, чтобы предотвратить внедрение троянскими программами своего кода в адресное пространство других процессов, которым разрешен доступ в сеть. Тем не менее, существуют различные техники, позволяющие троянописателям прорываться сквозь огненные стены.
Читать далее
0
0
1.367
Исследование «промежуточного» кода на примере GP-кода языка NATURAL - Часть 2: Операнды (окончание)
13 ноя 2006
В этой части статьи на предметном столике наших исследований окажутся такие представители славной плеяды операндов как параметры, глобальные переменные и проч. Не обойдем своим вниманием и подход к описанию массивов операндов в GP-коде NATURAL.
Читать далее
0
0
1.076
Запуск файла из памяти
22 окт 2006
Существует довольно много способов запуска файлов на исполнение. Чаще всего используют CreateProcess, WinExec и прочие апи. Но что делать, если ЕХЕ-файл находится не в виде файла, а в памяти нашего процесса?.. Можно конечно сохранить файл на диск, после чего запустить. Но это недостаточно извращенный метод. В этой статье я попытаюсь в общих чертах рассказать, как стартовать прямо из памяти.
Читать далее
0
0
2.024
TLS изнутри
19 окт 2006
Сегодня я расскажу вам об одном крутом механизме, который называется TLS – Thread Local Storage – что по-русски – локальная память потока. Сия вещь широко применяется обычными гуишными программерами в многопоточных приложениях. Вы скажите: А зачем мне оно?? Отвечу – обычно сия вещь нужна для того, чтобы связать определенные данные с конкретным потоком. Например, дядя Рихтер приводит пример – с каждым потоком в TLS связывается дата и время, когда он был создан. В момент уничтожения потока можно посчитать время в течении, которого поток существовал.
Читать далее
0
0
3.570
Введение в крэкинг с нуля, используя OllyDbg - Глава 3
6 окт 2006
В этой главе рассматривается, что такое регистры и флаги, и как менять их значение в OllyDbg.
Читать далее
+3
4
9.131
Реверсинг протокола Network Assistant 3.x
5 окт 2006
В статье рассматривается реверсинг протокола чата Network Assistant 3.x. Это первая моя статья, поэтому можно считать, что она написана новичком для новичков, тем более что разработчики никакой защиты на программу не навешивали, код достаточно прост и ясен, а единственная проблема - его объём.
Читать далее
0
0
1.213
Работа с LFB в DOS
5 окт 2006
В статье рассказывается об использовании LFB (Linear Frame Buffer) в Big Real Mode.
Читать далее
0
0
2.123
Новая векторная обработка исключений в Windows XP
3 окт 2006
Статья рассказывает о VEH, её отличиях от SEH, возможностях и способах применения.
Читать далее
0
0
1.785
Введение в MSIL - Часть 5: Обработка исключений
25 сен 2006
В этой части "Введения в MSIL" я расскажу о конструкциях, которые CLI предоставляет для обработки исключений.
Читать далее
0
0
1.419
Введение в крэкинг с нуля, используя OllyDbg - Глава 2
25 сен 2006
После того, как мы рассмотрели строение, основные элементы и принципы OllyDbg, необходимо изучить системы счисления и что такое стек, чтобы иметь о них хоть какое-то представление.
Читать далее
+2
3
9.001
Введение в MSIL - Часть 4: Определение членов типа
22 сен 2006
В 3-ей части данного введения я рассказал о синтаксисе определения типов. Используя директиву .class, вы можете задать ссылочные типы и типы значений. Правильно выбирая атрибуты типа, вы можете получить полный контроль над его определением.
Читать далее
0
0
1.608
Unsafe Java II - Мутагенез земноводных
12 сен 2006
Вторая часть цикла Unsafe Java. Обсуждаются в частности техники перенаправления функций и модифицирования байткода после загрузки класса.
Читать далее
0
0
1.830
GBA ASM - День 24: Компилирование вместе с C
10 сен 2006
Сегодня мы используем как ASM, так и C++-функции в отдельных файлах, скомпилировав оба.
Читать далее
0
0
1.238
GBA ASM - День 23: Использование AS
10 сен 2006
В этой главе мы рассмотрим GNU Assembler.
Читать далее
0
0
1.230
GBA ASM - День 22: Сохранение и 0xE000000
10 сен 2006
Ок... Я понял, что нужно затронуть ещё один важный вопрос. Сегодня мы собираемся рассмотреть, как сохранить что-то в картридж.
Читать далее
0
0
1.240
GBA ASM - День 21: LDRH и STRH
10 сен 2006
Сегодня мы рассмотрим две инструкции, о которых в силу некоторых причин я совершенно забыл. Фактически, из-за этого я писал довольно неэффективный код. Эти инструкции ldrh и strh.
Читать далее
0
0
1.369
GBA ASM - День 20: Использование деления и квадратного корня
10 сен 2006
Деление и вычисление квадратного корня с помощью функций BIOS'а GBA.
Читать далее
0
0
1.217
GBA ASM - День 19: Инструкция SWI
10 сен 2006
Вы можете спросить, почему я не сказал о SWI в прошлый раз. Я сделал это для того, чтобы говорить об одной теме за раз. SWI расшифровывается как "SoftWare Interrupt" (программное прерывание) и используется для вызова функций BIOS.
Читать далее
0
0
1.203
GBA ASM - День 18: О BIOS'е
10 сен 2006
Эта аббревиатура расшифровывается как Basic Input Output System. Не знаю, что они называют BIOS'ом GBA, на экране, по крайней мере, оно ничего не отображает. BIOS GBA - это больше подсобная библиотека с несколькими полезными функциями, которые можно использовать.
Читать далее
0
0
945
GBA ASM - День 17: Обзор
10 сен 2006
Краткий обзор пройденных дней и того, что ожидает дальше.
Читать далее
0
0
953
GBA ASM - День 16: Маскировка и переключение битов
10 сен 2006
GBAGuy рассказывает о наложение битовых масок и переключении битов.
Читать далее
0
0
1.637
GBA ASM - День 15: Прокрутка бэкграунда
10 сен 2006
Ок, теперь перейдём к прокрутке бэкграунда. Вы можете удивиться, почему я сразу не поместил её в День 14. Причиной это является то, что наполовину забыл об этом, наполовину поленился (родственная душа - прим. пер.). Так что вот так.
Читать далее
0
0
839
Декомпилируем p-code в уме
8 сен 2006
Думаю, что все мы знакомы с программами на пикоде. Даже если реверсер в жизни не видел VB и его компилятор, то все равно хотя бы раз он сталкивался с пикодом. В отличии от стандартного машинного кода, исполняемого напрямую процессором, p-code это набор мнемоник VM, которые исполняются движком msvbvmXX.dll. Olly тут не особый помощник (хотя для кого как), IDA тем более. Тут нужен либо декомпилятор, либо мозги. Надеюсь, что второе есть точно у всех, кто читает эти строки. Именно поэтому листинги из декомпилятора я буду приводить в статье лишь для наглядности, основной же упор будет на декомпилирование, используя в работе только HIEW.
Читать далее
0
0
9.618
Введение в крэкинг с нуля, используя OllyDbg - Глава 1
1 сен 2006
Целью данного «Введения в крэкинг с нуля, используя OllyDbg», является дать тем, кто только начал осваивать искусство крэкнинга, базовые знания и, вместе с тем, сделать это так, чтобы эти знания позволили в дальнейшем читать и понимать более продвинутые туториалы.
Читать далее
+6
4
36.738
GBA ASM - День 14: Фоновые эффекты
31 авг 2006
Сегодня мы рассмотрим следующие эффекты фона: мозаику, вращение и масштабирование. Правда, что касается вращения, я не буду рассказывать о SIN() и COS() - мы только обсудим, где и что именно нужно вставить в данных вращения/масштабирование, а остальное вам придётся додумать самим.
Читать далее
0
0
893
Дзенский реверсинг: исследование программ в полевых условиях
29 авг 2006
Как часто бывают ситуации, когда под рукой кроме HEX редактора/дизассемблера hiew ничего нет, а требуется срочно разблокировать какие-либо опции в программе или отвязать от железа? Причем обычно требуется срочно, на работе, когда горе-программист поставит защиту-привязку к компу, а нужно срочно перенести АРМ (автоматизированное рабочее место, не путать с ARM) с одного компьютера на другой. Конечно, можно пригласить автора АРМ'а и попросить его, но обычно на это банально нет времени и желания. В итоге приходится довольствоваться тем, что есть по рукой - обычно это только HIEW :)
Читать далее
0
0
1.374
GBA ASM - День 13: Эффекты со спрайтами
10 авг 2006
В этом туториале рассматриваются различные эффекты со спрайтами, доступными на GBA.
Читать далее
0
0
891
Введение в MSIL - Часть 3: Определение типов
6 авг 2006
В этой части я объясню, как задаются типы.
Читать далее
0
0
1.573
GBA ASM - День 12: Инструкция BL
6 авг 2006
Сегодня мы рассмотрим подпрограммы (или функции), используя инструкцию BL. Странно, что я никогда не рассказывал о ней, ведь она так проста...
Читать далее
0
0
999
Обход Outpost Firewall 3.x и 4.0 в Kernel mode
2 авг 2006
Я приведу описание обхода самого распространенного и используемого брандмауэра - Outpost Firewall. Он имеет достаточно гибкие настройки, защиту от внедрения кода (Inject), контроль компонентов, поэтому его обход в ring-3 представляет некоторые сложности: Inject все-таки возможен, но требует написания базонезависимого кода для работы с сетью, и прочий геморрой ;) Я предлагаю переместиться на уровень ниже, в ring-0, где возможно все :)
Читать далее
0
1
2.638
Исследование «промежуточного» кода на примере GP-кода языка NATURAL - Часть 2: Операнды
27 июл 2006
Как известно, операндами называют то, что участвует в операциях. Так в операции сложения операндами будут слагаемые, а в операции умножения - сомножители. Применительно к GP-коду Natural, термин "операнд" объединяет такие элементы программного кода как константы, локальные переменные, глобальные переменные, объекты и т.д.
Читать далее
0
0
951
Введение в MSIL - Часть 2: Использование локальных переменных
22 июл 2006
В этой части я расскажу об использовании локальных переменных. Без них программы были бы не слишком интересны. Чтобы объяснить, как использовать переменные, давайте напишем простую программу для сложения чисел.
Читать далее
0
0
1.915
GBA ASM - День 11: Переменные и рабочая память
22 июл 2006
В этом дне рассказывается как использовать рабочую память и переменные.
Читать далее
0
0
833
Введение в MSIL - Часть 1: Hello World
19 июл 2006
Первая часть из серии статей, рассказывающей о MSIL (Microsoft Intermediate Language) на вводном уровне.
Читать далее
0
0
10.667
GBA ASM - День 10: Прерывания и таймеры
18 июл 2006
Сегодня мы должны изучить прерывания и таймеры. Я не уверен, что у прерываний есть иное полезное применение кроме процедуры HBlank или VBlank, поэтому именно это и будет продемнстрировано в коде. Таймеры, по крайней мере насколько могу судить я, имеют несколько применений, включая.. гм.. тайминг :). Сходу я могу назвать одну вещь, которая требует применение DMA, таймеров и прерываний одновременно - это вывод звука.
Читать далее
0
0
1.340
GBA ASM - День 9: Простой бэкграунд
16 июл 2006
В этом туториале автор рассказывает о том, как создать простой бэкграунд для вашей GBA-программы.
Читать далее
0
0
1.054
GBA ASM - День 8: Загрузка данных с помощью DMA
7 июл 2006
DMA (Direct Memory Access) - это относительно быстрый способ загрузки данных в память. Этот подход имеет значительные преимущества по сравнению с тем, который мы использовали ранее.
Читать далее
0
0
1.150
Советы и рекомендации по программированию процессоров 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
1.336
Создание заплаток на ассемблере FASM
21 июн 2006
Рассматривать мы будем создание заплаток для бинарных файлов и исполняемых файлов формата PE. Способ подходит как для изменения нескольких байт, так и для создания подпрограмм, реализующих дополнительную функциональность.
Читать далее
0
0
1.515
Исследование «промежуточного» кода на примере GP-кода языка NATURAL
21 май 2006
В этой статье я бы хотел поделиться своими результатами в исследовании «промежуточного» кода.
Читать далее
0
0
1.142
Unsafe Java I - Небезопасная жаба
20 май 2006
Статья является первой частью цикла, посвященного низкоуровневым техникам программирования на Яве. В ней рассматриваются некоторые структуры виртуальной машины и возможности динамического манипулирования ими.
Читать далее
0
0
8.431
Отправка по SMTP с авторизацией
30 апр 2006
Практически каждый, кто сталкивается с работой в инете на низком уровне при создании какой-либо почтовой программы, оповещалки, либо троя или кейлогера, напарывается на такой неприятный облом, как авторизация. Ведь многие SMTP-серверы не дают пользователю нормально отправить письмо, а требуют какие-то логин и пароль. В этой статье я попытаюсь раскрыть эту проблему, простыми словами написать то, что написано в более "расплывчатом" виде в rfc, который почему-то всем лень читать. И, конечно, данная статья будет ориентирована на "низкоуровневых" программистов. Я буду писать под фасм, но думаю, что для Вас не составит особого труда переделать примеры под более удобный для Вас компилятор.
Читать далее
+1
0
2.087
Инжект как метод обхода фаерволлов, жив или мертв?
28 апр 2006
Наверника многие из вас помнят те времена, когда персональные фаерволлы только появились, и настал черный день для троянописателей. Этот день стал концом для большинства, но не для всех. Вскоре было найдено простое и изьящное решение, суть которого состоит в том, чтобы работать из разрешенного фаерволлом процесса. Решение было простым и не требовало много кода, и заключалось оно в записи и исполнении своего кода в чужой процесс (обычно в процесс InternetExplorer). Считается что этот метод сейчас умер. Но так ли это?
Читать далее
0
0
1.303
Извлечение текстурированных 3D моделей из приложений Direct3D
17 мар 2006
Целью статьи является исследование принципов, позволяющих извлекать трехмерные текстурированные модели из приложений Direct3D.
Читать далее
0
0
1.828
Тайна золотого ключика или Особенности системы лицензионных ключей, используемой компанией Software AG
6 мар 2006
Основная цель этой статьи посмотреть, как реализована система лицензирования на примере довольно дорогих коммерческих продуктов от компании Software AG, а также показать на реальном примере, что иногда вовсе не обязательно проводить все ночи напролет, закопавшись в отладчике или дизассемблере, чтобы корректно «поправить» лицензионный ключ (цели «правки» могут быть любыми), что иногда достаточно просто пошире открыть глаза…
Читать далее
0
0
1.181
Использование отладочных регистров процессора Intel X86 в прикладной программе Windows NT
19 фев 2006
Наверное, сейчас ни для кого не секрет, какой огромный выигрыш даёт использование отладочных регистров процессора для исследования механизма защиты программ. Яркий тому пример отладчик SoftIce, который использует эти регистры для установки аппаратных точек останова в программе (команды типа ‘BPM’). Но как использовать их в прикладной программе, где прямое обращение к ним вызывает общую ошибку защиты? Неужели нет способов, кроме, как написания собственных драйверов ядра, которое само по себе является достаточно трудоёмкой задачей, отпугивающей от их применения? Оказывается, есть, и достаточно простой. Об этом и пойдёт речь в этой статье.
Читать далее
0
0
1.713
Обход Tiny Firewall
16 фев 2006
Tiny Firewall (дальше tf) представляет собой компактную и надёжную (я так думал) защиту. Но на практике всё оказывается не так хорошо, как мы думаем. Давайте посмотрим, как tf обеспечивает защиту (моя версия 6.5.126).
Читать далее
0
0
1.234
Kernel-Mode & User-Mode Сommunication, или KeUserModeCallback Must Die!
16 фев 2006
Как мне уже удалось убедиться, проблема, когда нужно достаточно быстро вызвать User Mode функцию из драйвера, который, как известно работает в более привилегированном Kernel Mode, возникает довольно часто. Например, может возникнуть необходимость давать указания драйверу по управлению внешним устройством на основании текущего состояния устройства. При этом драйверу может требоваться директива из приложения пользователя всякий раз когда он обрабатывает прерывание своего устройства. Разумеется, большинство таких задач можно решить «традиционными» методами, например, в самом грубом случае, передавая в драйвер матрицу 2 на N(где N – количество значений, пробегаемое аргументом), которая будет полностью задавать функцию, которую нужно вызвать из кода пользователя. Однако встречаютя ситуации, когда таким «прямым» способом ограничиться не получается…
Читать далее
0
0
1.115
3 метода работы с занятыми файлами
22 дек 2005
У многих из вас, несомненно, когда-либо возникала необходимость читать/писать файлы занятые другим процессом.
Читать далее
+1
1
2.245
Themida - обновлённый XProtector
15 ноя 2005
Прошло уже больше года с момента написания статьи про XProtector версии 1.07, с тех пор многое поменялось и многое из того, что было описано уже устарело. Вот собственно поэтому и выходит новая статья по этому протектору. Стоит сказать сразу, что стать скорее описание того, как исследовать протектор а не руководство по распаковке.
Читать далее
0
0
1.910
Взгляд на сеть из другой галактики
15 ноя 2005
Данная статья познакомит вас с интересным миром, летающим в сетевом кабеле, наподобие витых пар, телефонной лапши, оптоволокна и т.д. и т.п. Нет, я не буду расписывать, для чего нужны эти сетевые кабели. Не буду писать вообще про них ни строчки. Но с миром, обитающим в них – познакомлю.
Читать далее
+1
0
1.495
Руководство Beej по сетевому программированию, используя интернет-сокеты
2 ноя 2005
Большой туториал по сетевому программированию, используя стандарные функции.
Читать далее
0
0
1.986
Практика. Синтез вируса.
28 сен 2005
Опишу для вас создание самого простого вируса, ничего серьезного и злобного - все в пределах нормы. Если вам в начале будет трудно понятен материал этой статьи, и вы не знаете многих терминов – не отчаивайтесь, найдите о них исчерпывающую информацию в Интернете и вам станет понятно, что эти термины – база и без них далее изучать этот материал просто бессмысленно. Но все же, я постараюсь кратко и четко дать им определения.
Читать далее
0
0
1.637
Обнаружение скрытых процессов
14 сен 2005
Многие пользователи привыкли к тому, что в Windows NT диспетчер задач показывает все процессы, и многие считают, что скрыться от него вообще невозможно. На самом деле, скрыть процесс черезвычайно просто.
Читать далее
0
0
3.791
Запуск процесса из режима ядра
14 сен 2005
Думаю, многие из Вас задавались подобным вопросом. Возможен ли запуск пользовательского приложения из драйвера режима ядра?
Читать далее
0
0
1.964
От зеленого к красному: Глава 3: Программирование в Shell-код стиле. Важные техники системного программирования: SEH, VEH и API Hooking. Отключение Windows File Protection.
21 авг 2005
Этот раздел является своеобразным обобщением первых двух глав. Прочтя его, Вы сможете уже без особых трудностей писать простые Win32-вирусы. Код в shell-код стиле или как он еще называется – базово-независимый код требует определенных условий при его написании. Основное условие - чтобы код не зависел от адреса загрузки его в адресное пространство процесса-жертвы и от структур данных загрузчика.
Читать далее
0
0
41.409
Win32™ SEH изнутри (ч.3)
11 авг 2005
Перед тем как погрузиться в код, осуществляющий раскрутку (unwinding), давайте кратко обсудим, что это собственно такое.
Читать далее
0
0
2.427
Win32™ SEH изнутри (ч.2)
11 авг 2005
Пока я редко упоминал слова _try и _except, так как всё, что я описывал до сих пор, реализуется на уровне ОС.
Читать далее
0
0
2.302
Win32™ SEH изнутри (ч.1)
11 авг 2005
В своей основе, структурная обработка исключений – это сервис, предоставляемый системой. Вся документация по SEH, которую вы, вероятно, найдете, описывает одну лишь компиляторно-зависимую оболочку, созданную RTL вокруг реализации SEH операционной системы. Я здесь рассмотрю самые фундаментальные концепции SEH.
Читать далее
0
0
4.194
А у вас сколько мониторов? (DirectX)
4 авг 2005
Эта статья предполагает, что вы прочитали предыдущую статью и знаете общую логику работы с мониторами в системе Windows. Исследования для этой статьи проводились в рамках DirectX 8.1.
Читать далее
0
0
1.355
Современные технологии дампинга и защиты от него
4 авг 2005
В этой статье я хотел бы рассмотреть современные методы противодействия дампингу и методы их обхода, что несомненно пригодится тому, кто хочет научиться распаковывать что-то сложнее ASPack'а.
Читать далее
0
0
1.967
Сканер виртуальной памяти «внутри» процесса
1 июл 2005
Целью статьи является рассмотрение принципов создания сканера виртуальной памяти, находящегося «внутри» исследуемого процесса.
Читать далее
0
0
1.032
CODE-RIP: искусство выдирания чужого кода - Часть I. Теория
30 июн 2005
Описываются основные принципы и методы выдирания чужого кода для последующего использования при написании своих программ.
Читать далее
0
0
40.259
Теоретические основы крэкинга: Глава 13. Заключение
27 июн 2005
В завершение этой работы мне хотелось бы рассказать о технологиях, которые вошли в арсенал крэкеров сравнительно недавно, и даже о таких , которые еще только ожидают своей реализации.
Читать далее
0
0
1.003
Теоретические основы крэкинга: Глава 12. Патчить или не патчить?
27 июн 2005
Собственно, вопрос, вынесенный в заглавие этой главы, существует разве что в умах ревнителей идейной чистоты крэкинга, с недоверием относящихся к самой идее модификации исполняемого кода. Для всех остальных ответ очевиден – патчить надо и патчить надо много, поскольку модификация исполняемого кода – самый прямой, простой и быстрый путь заставить код делать то, чего Вы от него хотите.
Читать далее
0
0
1.945
Создание сканера виртуальной памяти процессов
27 июн 2005
Предмет повествования состоит в изучении принципов сканирования виртуальной памяти процессов (этим занимаются такие программы как ArtMoney и др.), создании и реализации алгоритма целочисленного "универсального обманщика игр".
Читать далее
0
0
1.367
От зеленого к красному: Глава 2: Формат исполняемого файла ОС Windows. PE32 и PE64. Способы заражения исполняемых файлов.
27 июн 2005
В этой главе мы исследуем формат исполняемых файлов в операционной системе Windows. Все факты, которые будут касаться этого изложения подходят для ОС Windows XP c установленным SP2. Но большинство фактов распространяются на всю платформу Win32. Я буду рассматривать все поля PE-формата полностью. Я привожу здесь описания используемых структур, для того чтобы Вы могли использовать этот документ и как справочник.
Читать далее
0
0
6.429
Руководство по исследованию программ, написанных на Visual Basic 6.0
7 июн 2005
Начинающие исследователи программ почему то считают, что программы, написанные на VB невозможно сломать. Если программа скомпилирована в pcode - я частично с ними соглашусь, но даже для этого вида компиляции уже написано множество отладчиков, способных понимать псевдокодовые инструкции. Что же касается Native Code, то тут все ломается также, как и любая другая программа, написанная например на C++ или Delphi. Но есть ряд особенностей.
Читать далее
0
0
2.822
Перехват API функций в Windows NT (часть 3). Нулевое кольцо.
16 май 2005
Как известно, в процессорах серии X86 и совместимых с ними присутствует аппаратная поддержка многозадачности и защиты. Код может исполняться на одном из четырех уровней (колец) защиты. Наиболее привилегированным является нулевое кольцо, наименее привилегированным - третье. В нулевом кольце можно все: доступны привилегированные команды, порты ввода-вывода, и вся память.
Читать далее
0
1
4.729
Перехват API функций в Windows NT (часть 2). Методы внедрения кода.
16 май 2005
В этой статье мы рассмотрим более эффективные способы перехвата, а в особенности приёмы написания внедряемого кода. Также в конце статьи я рассмотрю альтернативные методы внедрения кода в чужой процесс.
Читать далее
0
0
10.362
Перехват API функций в Windows NT (часть 1). Основы перехвата.
16 май 2005
В настоящее время широчайшую распостраненность поличили операционные системы семейства Windows NT/20000/XP. Они широко используются не только как домашние системы, но и в качестве серверов. Эта линейка ОС отличается неплохой защищенностью от вредоносных программ, а так-же для нее существует большое количество дополнительных систем безопасности (различные антивирусы, фаерволлы). Установив антивирус и фаерволл многие пользователи думают, что они стопроцентно защищены, и даже большинство программистов считают, что достаточно почаще проверять свой компьютер на подозрительные вещи (автозагрузка, процессы и.т.д.) и никокая вредоносная программа к ним не сможет проникнуть. В большинстве случаев это действительно так, 99% троянов до сих пор загружаются через HKLM/Run, и для скрытности имеют названия вроде WinLoader32.exe. Глядя на это мне просто смешно становиться. Это дело нужно срочно исправлять, поэтому я написал этот цикл из трех статей, в которых описываются методы перехвата API функций в системах линейки Windows NT на всех возможных уровнях.
Читать далее
0
0
2.608
А у вас сколько мониторов?
6 май 2005
В одном проекте мне понадобилась поддержка более одного монитора. В доступном информационном пространстве я особенно ничего не нашёл.
Читать далее
0
1
2.075
От зеленого к красному: Глава 1: Память. База kernel32.dll. Адреса API-функций. Дельта-смещение
22 апр 2005
В этой статье рассказывается об основах, таких как база kernel32.dll и дельта-смещении.
Читать далее
+1
2
46.699
Продвинутые техники написания эксплойтов переполнения буфера
13 апр 2005
В наши дни существует довольно много кодов эксплойтов переполнения буферов. Раньше же такие эксплойты только запускали шелл (т.е. /bin/sh). Однако, теперь некоторые эксплойты содержат очень интересные фичи. К примеру, они могут проламываться через фильтр, открывать сокет, врываться в 'chroot' и т д. В этой статье мы попытаемся разобраться в таких продвинутых фичах эксплойтов переполнения буфера на примере платформы intel x86 Linux.
Читать далее
0
0
1.413
Теоретические основы крэкинга: Глава 11. Трассировка во сне и наяву.
13 апр 2005
Трассировка – одна из основ, на которых держится крэкинг. О трассировке обычно говорят вскользь как о чем-то общеизвестном и само собой разумеющемся, но при этом имеющем нечеткие, плохо формализуемые правила. Читая предыдущие главы, Вы неоднократно встречали фразы «трассируем процедуру…», «трассируйте код до тех пор, пока…» и т.п., и при этом вряд ли задумывались о том, что нужно делать и как вообще трассируют код. Так что же такое отладка – наука это или искусство? Поставив себе целью разобраться в методах трассировки, мы прежде всего должны определиться, что такое трассировка и для чего она нужна. И лишь после того, как будут определены цели трассировки, возможно будет говорить о «технической» реализации методов, посредством которых эти цели могут быть достигнуты.
Читать далее
0
0
1.361
Обработка исключений Win32 для программистов на ассемблере
4 апр 2005
Мы собираемся исследовать, как можно сделать приложение более устойчивым, позволив ему, самому обрабатывать свои исключения, вместо того, чтобы перекладывать эту задачу на систему. Исключение - это нарушение, совершенное программой, которое в обычных случаях приводит к появлению предупреждения о том, что эта программа выполнила недопустимую операцию и будет закрыта...
Читать далее
0
0
4.544
FASM OpenGL tutorial
26 мар 2005
Как говорил товарищ Берлага, если приподнять завесу, то становится весьма очевидным что стандарт OpenGL разрабатывается фирмой Silicon Graphics (теперь SGI) с лета 1992 года. Этот программный интерфейс был во многом основан на библиотеке IRIS GL, поддерживаемой с 1982 года. Для развития нового интерфейса был организован консорциум The OpenGL Architecture Review Board (ARB). На данный момент OpenGL является стандартной библиотекой для всех 32 разрядных операционных систем (Unix, Mac, Windows). Ну и хватит на этом. В конце концов это вам не лезгинка, а твист... в смысле не "Большая Советская Энциклопедия".
Читать далее
+1
1
6.461
Написание плагинов для API шпиона kerberos
18 мар 2005
В данной статье я хочу показать, как пишутся плагины для API-шпиона kerberos 1.01.
Читать далее
0
0
1.094
Теоретические основы крэкинга: Глава 10. Слишком хорошо – тоже не хорошо.
17 мар 2005
Как Вы уже успели убедиться, обращение с брейкпойнтами – занятие далеко не такое простое, как может показаться с первого взгляда. В предыдущей главе мы разбирались в том, почему точки останова иногда не делают того, что мы от них ожидаем, значительная же часть этой главы посвящена полностью противоположной проблеме: что делать, если точки останова срабатывают слишком часто. После всего написанного в предыдущей главе такая ситуация может показаться Вам невероятной, но, представьте себе, такое тоже бывает.
Читать далее
0
0
1.177
Написание эксплойтов переполнения буфера - туториал для новичков
11 мар 2005
Переполнение в буфферах стало одной из наиогромнейших проблем безопасности в сети Интернет и в современном компьютерном мире в целом. Это объясняется тем, что подобные ошибки могут легко быть допущены при самом программировании и будучи незаметными для юзера, который не понимает или не совсем разбирается в исходном коде программы, они являются очень подходящей целью для написания эксплойта. В этой статье мы попытаемся показать новичкам - Си программерам средней руки каким образом эти ошибки могут быть применены.
Читать далее
+1
0
3.285
Инфектор PE-файлов
10 мар 2005
Добрый вечер дамы и господа! Если вы читаете этот документ, то вы наверное прочитали знакомые слова в названии статьи или вы новичок и хотите узнать больше о компьютерной вирусологии. А может Вы просто щелкнули на ссылку в броузере из-за любопытства. Ну ладно, не будет превращать эту статью в низкосортное литературное произведение, и перейдем ближе к делу. В этой статье мы напишем инфектор-PE файлов. Эта статья описывает: во-первых, как заражать исполняемые файлы(PE – Portable Executable) в операционной системе Windows, во-вторых, процесс создания Windows-приложений на ассемблере, в-третьих, некоторые системные механизмы ОС семейства Windows.
Читать далее
0
0
1.874
Процессор изнутри. Часть 4: AMD64
9 мар 2005
Процессор Athlon-64 является первым массовым 64-разрядным процессором для настольных систем. За счет этого он немного выбивается из ряда всех рассматриваемых нами процессоров. Но поскольку он предоставляет средства мониторинга производительности, было бы неуважением по отношению к AMD обойти его вниманием.
Читать далее
0
0
1.565
Процессор изнутри. Часть 3: AMD
15 фев 2005
В данной части мануала наконец-то дошла очередь и до AMD. Описание ведется по стандартной схеме – интерфейс, кэш, ядро, мониторинг производительности. Данная статья относится именно к Athlon и частично к Athlon XP. Частично, потому что блок-схемы практически совпадают, но у XP больше событий, чем в «просто Athlon». Дополнительные события будут рассмотрены в следующей части.
Читать далее
0
0
2.065
Процессор изнутри. Часть 2: INTEL NetBurst
10 фев 2005
Шина Pentium 4 называется AGTL+ и использует практически тот же набор сигналов, что и обычная GTL+ применяемая в процессорах P6. Вместе с тем, используется принципиально новый механизм синхронизации позволяющий добиться частоты передачи данных гораздо больше чем в P6.
Читать далее
0
0
1.592
Как написать AddIn для WinAsm Studio
5 фев 2005
Каждому в глубине души хочеться иметь "свой" редактор. Однако добавить в IDE новую возможность значительно проще, чем разработать ее целиком. Основным препятствием для этого (кроме лени) является необходимость изучения работы IDE и интерфейса для AddIn-ов. Сами же разработчики IDE заинтересованы в такой помощи по понятным причинам, и стремятся упростить это узкое место. Данная статья призвана пролить некоторый свет на этот вопрос пользователям WinAsm Studio и базируется на файлах WinAsm.chm, WAAddIn.inc, анализе кода других AddIn-ов, в том числе примеров, а также на небольшом собственном опыте. Естественно, она не является ни полным переводом, ни исчерпывающим пособием.
Читать далее
0
0
1.625
Процессор изнутри. Часть 1: INTEL P6 FAMILY
3 фев 2005
В данной части мануала подробно рассмотрим процессоры семейства P6. Следует сказать, что все, что мы тут будем обсуждать, относится не только к процессорам, упомянутым в названии, но и ко всем Celeron образованных от тех процессоров путем «урезания», так как микроархитектура у них у всех одна и та же.
Читать далее
0
0
1.842
Процессор изнутри. Часть 0: Теория
23 янв 2005
Как известно, важнейшей составляющей любого компьютера является процессор, именно он выполняет все вычисления, все остальные устройства нужны либо для того, чтобы обеспечивать нормальную работу процессора, либо для обеспечения взаимодействия с человеком. В данном мануале я хочу обобщить свой опыт изучения процессоров. В следующих частях мануала у Вас появится возможность посмотреть «изнутри» на Ваш собственный процессор, используя специальные программы.
Читать далее
0
0
4.304
Драйверы режима ядра: Часть 16 : Драйвер-фильтр (не PnP)
12 янв 2005
Практическая реализация драйвера-фильтра... даже двух. К сожалению, имеются некоторые ограничения, в связи с тем, что это не PnP-драйверы.
Читать далее
0
0
2.707
Полиморфизм. Новые техники
11 янв 2005
Полиморфизм всегда пользовался огромной популярностью у программистов. Но шло время и полиморфизм стал не столь популярен. Многие стали считать, что это вчерашний день. Я с ними соглашусь пожалуй...
Читать далее
0
0
1.285
Теоретические основы крэкинга: Глава 9. Если бряк оказался вдруг…
4 янв 2005
Наверное, Вы уже попытались что-нибудь взломать. Может быть даже, Вам это удалось – за счет знаний и способностей к анализу, благодаря интуиции, или же в силу Вашего трудолюбия и настойчивости. Возможно также, что Вам просто очень повезло с первой в жизни программой, и защита оказалась слабее, чем в большинстве других программ. Однако тех, кто не смог с первой попытки одержать победу над мегабайтами кода, гораздо больше.
Читать далее
0
0
1.115
Встраивание Perl в IDA Pro 4.70 (Second Edition)
28 дек 2004
В данном труде описывается технология встраивания Perl в IDA Pro строго версии 4.70 как в качестве скриптового движка для работы в дизассемблере, так и в IDA debugger.
Читать далее
0
0
1.045
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
2.015
Основные методы заражения PE EXE
16 ноя 2004
Существует множество методов заражения (то есть записи кода вируса в код программы без потери работоспособности последнего) файлов формата Portable Executeable. Есть простые методы, которые с лёгкостью отлавливаются антивирусами, есть очень навороченные, о которых я вам когда-нибудь может быть расскажу... Вполне может случиться так, что вы изобретёте свой собственный оригинальный способ и успеет пройти дня этак три прежде чем сотрудники Kaspersky Lab смогут его проанализировать и пополнить свои avc'шки парой-тройкой новых контрольных сумм...
Читать далее
0
0
2.024
Драйверы режима ядра: Часть 15 : Жизненный цикл IRP
12 ноя 2004
Фильтрация пакетов запроса в/в - относительно сложная тема. Поэтому, прежде чем перейти к практической реализации драйвера-фильтра, необходимо четко представлять себе жизненный цикл IRP.
Читать далее
0
0
4.076
Слежение за вызовом функций Native API
12 ноя 2004
Ну что ж, пришло время рассказать об одной очень полезной, я бы даже сказал, в некоторых случаях, чрезвычайно необходимой возможности, любезно предоставляемой нам внутренними механизмами Windows.
Читать далее
0
0
1.679
Теоретические основы крэкинга: Глава 8. И вновь продолжается бой…
1 ноя 2004
Ну вот, все, что мы могли сделать простыми средствами, мы сделали. И теперь пришло время приступить к отладке. Да-да, эта глава будет практически полностью посвящена искусству дебагить, bpx’ить, трассировать - в общем, одному из аспектов той рутинной деятельности, которая ожидает каждого крэкера на его светлом пути к торжеству высокого искусства над коммерческими интересами.
Читать далее
0
0
1.097
Алгоритм шифрования ГОСТ 28147-89. Метод простой замены.
17 окт 2004
Данный документ является моей попыткой описать метод простой замены алгоритма шифрования ГОСТ 29.147-89 наиболее простым языком, но, тем не менее, технически-грамотным языком. О том, на сколько это у меня получилось, читатель скажет свое мнение, после того как прочтет пункты по шестой включительно.
Читать далее
0
0
10.765
Direct I/O
17 окт 2004
Из вышеприведенной цитаты, думаю понятно, что объектом исследования является приложение, позволяющее другим программам обращаться напрямую к оборудованию. С этим не возникало проблем, когда программы работали под управлением операционных систем Windows, предшественников Windows NT, но времена идут, архитектура меняется, а переделывать старые программы, зачастую просто нет возможности. Принцип, по которому работает драйвер Direct I/O (и аналогичные программы) не нов, и был опубликован в журнале Dr.Dobb's за май 1996 года, автором статьи (русский перевод которой можно найти на void.ru) является Дейл Робертс.
Читать далее
0
0
1.336
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
1.336
Теоретические основы крэкинга: Глава 7. Искусство разбивать окна.
10 сен 2004
И вот, пройдя долгий и трудный путь исследователя ценных данных, упрятанных в недрах программ, мы, наконец, подошли к вратам «чистого крэкинга».
Читать далее
0
0
1.187
CGI-программирование на ассемблере?!? – Легко!
8 сен 2004
В этой статье я хочу рассказать о CGI интерфейсе вообще, его реализации для windows и использовании при написании CGI-программ языка ассемблер в частности. В рамки этой статьи не входит полное описание CGI, так-как в Интернете материала по этому вопросу просто море и пересказывать все это здесь я просто не вижу смысла.
Читать далее
0
0
1.322
ATA для дZенствующих. Часть 2: PCI DMA
31 авг 2004
После долгого перерыва, связанного с отсутствием у меня компа, возвращаемся к теме программирования современных винчестеров на полностью аппаратном уровне. В данной части мы рассмотрим использование режима DMA. Следует сразу приготовиться к тому, что мануал будет большого размера, потому как описать DMA, так чтобы это было понятно, в 2 страницы не получится. Кто не прочитал первую часть, советую сделать это сейчас, потому как здесь предполагается, что формат регистров 1F0-1F7 и функции битов BSY, DRDY, DRQ и других вы уже знаете.
Читать далее
0
0
2.969
Как стать невидимым в Windows NT
26 авг 2004
Эта статья описывает техники скрытия объектов, файлов, сервисов, процессов и т.д. в ОС Windows NT. Эти методы основаны на перехвате функций Windows API, что описано в моей статье "Hooking Windows API".
Читать далее
0
0
1.178
Interview with Privalov the author of FASM
12 авг 2004
Interview with the author of well known compiler FASM.
Читать далее
0
0
1.398
Интервью с Privalov'ым, создателем FASM
12 авг 2004
Интервью с автором известного и пользующего заслуженной популярностью компилятора FASM.
Читать далее
0
0
1.217
Socket vs Socket часть 2, или скажем “нет” протоколу TCP
9 авг 2004
В первой части, посвященной основам использования сокетов MS Windows в ассемблерных программах, мы говорили о том, что такое сокеты, как они создаются и какие параметры при этом эадаются. Тогда же вскользь было сказано про не ориентированный на соединение протокол UDP, который не гарантирует доставку пакетов, а также очередность их поступления к пункту назначения. В учебном примере тогда использовался наш любимый протокол TCP. И все было у нас хорошо, но в конце остался ряд нерешенных вопросов, в частности, как организовать взаимный обмен между несколькими компьютерами в сети, как передать что-либо сразу многим компьютерам и т.д.
Читать далее
0
0
1.856
Драйверы режима ядра: Часть 14: Базовая техника. Синхронизация: Использование объекта
3 авг 2004
Используя объект "событие" драйвер может уведомлять своего клиента режима пользователя об интересующих его изменениях, происходящих в ядре. В этот раз мы также познакомимся с некоторыми методами поиска неэкспортируемых ядром объектов.
Читать далее
+1
0
1.614
Почти все, что вы хотели знать о Flash BIOS: Часть 1
29 июл 2004
В данной статье я рассмотрю следующие вопросы: 1) что такое флэш, принципы работы и строения флэш, как программно работать с флэш; 2) вопрос «можно ли сделать запись в флэш для защиты программ?»
Читать далее
0
0
7.111
Кое-что об устойчивости и защищенности Windows CE на ARM-платформе
21 июл 2004
Надеюсь, не найдется человека, который никогда не слышал о таких нелепых дырах в защите Win 9x, как незащищенные системные структуры и последствия к которым приводит такая халатность (создание своего callgate-а в таблице дескрипторов, или запись в незащищенные таблицы страниц). В данной статье будет проведено небольшое исследование, посвященное аналогичным проблемам WinCE на ARM v5 - платформе.
Читать далее
0
0
1.595
Подрубаем эмулятор PocketPC к eVC и ActiveSync
10 июл 2004
Далее речь пойдет о том, как не имея на руках физического девайса можно благополучно отлаживать/запускать свою/чужую прогу, используя eVC и эмулятор из PPC SDK 2003. Я долго парился (насколько мне известно - не я один) с этой задачей и, наконец, совершенно случайно все заработало. Очень помогла статья CJCraft's Blog – фактически в ней все правильно изложено, однако опущены некоторые ключевые моменты, которые и удалось вычислить bruteforce-ом.
Читать далее
0
0
1.132
Программирование на ассемблере под PocketPC
7 июл 2004
Для начала разберемся с основными понятиями и определениями: PocketPC и Windows CE – это (с недавних пор) одна и та же операционная система реального времени (real-time OS); предназначена она для т.н. встраиваемых (embedded) систем (КПК, банкоматы, бортовые компьютеры в автомобилях и т.п.).
Читать далее
0
0
959
Програмерский спецназ
2 июл 2004
Уступая пожеланиям трудящихся :), я решил посмотреть, можно ли извлечь какой-нибудь практический смысл из использования Alt-кодов. Это пересеклось с другой давно меня занимавшей темой. Представьте необитаемый остров, пещеру, а в ней много "железа", но почти нет софта.
Читать далее
0
0
1.376
Защита, использующая хасп-ключ. Часть 3: USB
20 июн 2004
Данная статья является расширением к моим статьям ("Защита, использующая хасп-ключ" и "Защита, использующая хасп-ключ. Часть 2"), посвященным анализу защиты этой программы.
Читать далее
0
0
1.525
Теоретические основы крэкинга: Глава 6. Куда попадают данные.
13 июн 2004
На протяжении уже двух глав я рассказывал о техниках поиска данных всевозможных типов. Подобно муравьям, мы трудились, учась собирать по крупицам полезную информацию, которая могла бы помочь понять структуру и смысл этих данных. И теперь вы знаете, как «просеивать» мегабайты листингов, извлекая из них константы и указатели, как вести поиск переменных в адресном пространстве работающей программы. Все это время мы рассматривали «живые», находящиеся внутри работающей программы данные отдельно от «мертвых», тихо лежащих на жестком диске и никак себя не проявляющих. И вот пришло время осуществить синтез, увидеть диалектическую взаимосвязь между этими двумя формами существования данных, и, главное, понять, какую практическую пользу из этой взаимосвязи можно извлечь.
Читать далее
0
0
1.247
FTP-протокол + WinSocks на примере простого FTP-клиента (зеркала)
13 июн 2004
В этой статье я не ставлю себе целью пересказать все RFC касающиеся протокола FTP, коих не мало, в них вы сможете найти информацию гораздо полнее, попытаюсь лишь в общих чертах познакомить Вас с протоколом FTP и основными приемами работы с ним со стороны клиента.
Читать далее
0
0
929
Определение конфигурации на аппаратном уровне
13 июн 2004
В данной статье мы рассмотрим вопросы нахождения и определения параметров различных устройств.
Читать далее
0
0
2.986
Ошибки переполнения буфера извне и изнутри как обобщенный опыт реальных атак (окончание)
9 июн 2004
Рассматривая различные механизмы переполнения и обсуждая их возможные последствия, ранее мы не касались таких "организационных" вопросов, как, например, порядок размещения переполняющихся буферов, затираемых переменных и служебных структур данных в оперативной памяти. Теперь пришло время восполнить этот пробел.
Читать далее
0
0
1.881
Ошибки переполнения буфера извне и изнутри как обобщенный опыт реальных атак
7 июн 2004
Если вам нужен путеводитель по стране переполняющихся буферов, снабженный исчерпывающим руководством по выживанию – эта статья для вас!
Читать далее
0
0
1.624
Циклический инкремент пароля
27 май 2004
В данной статье мы рассмотрим один аспект перебора паролей, на котором обычно не заостряют внимание при написании программ-брутфорсеров (программ для подбора паролей), а именно - непосредственно сам инкремент пароля, т.е. формирование следующего пароля для его анализа.
Читать далее
0
0
1.926
Жизненный цикл червей
27 май 2004
Червями принято называть сетевые вирусы, проникающие в зараженные машины вполне естественным путем, без каких-либо действий со стороны пользователя. Они ближе всех остальных вирусов подобрались к модели своих биологических прототипов и потому чрезвычайно разрушительны и опасны. Их не берут никакие превентивные меры защиты, антивирусные сканеры и вакцины до сих пор остаются крайне неэффективными средствами борьбы. Нашествие червей нельзя предвидеть и практически невозможно остановить. Но все-таки черви уязвимы.
Читать далее
0
0
1.713
Защита программ с помощью сетей Петри
18 май 2004
Что такое сеть Петри? Сеть Петри – это двудольный ориентированный мультиграф. Ну вот, я уже вижу, как большинство читателей в ужасе пытаются закрыть страницу. Но не стоит так пугаться - прочитайте спокойно до конца и, по крайней мере, вы узнаете кое-что новое и интересное.
Читать далее
0
0
1.651
ATA для дZенствующих. Часть 1
18 май 2004
В этом мануале речь пойдет о программировании винтов и cd-rom-ов на полностью аппаратном уровне. В конце сего действа мы напишем на ассемблере пару процедур для работы с винчестером на уровне портов и даже рассмотрим код, который может работать с треем cd-rom.
Читать далее
0
0
3.985
Dll в машинных кодах
18 май 2004
В статье «Приложение Windows голыми руками» было показано, как с помощью debug «вручную» собрать простейшее Win32 exe-приложение с MessageBox’ом. На этот раз предлагается аналогичным образом создать простейшую dll; это тематическое продолжение прошлой статьи и в то же время необходимый фундамент для статей будущих - поскольку я собираюсь рассказывать в них о создании в машинных кодах компонентов COM, а для них обойтись без dll ну никак нельзя.
Читать далее
0
0
9.306
Защита, использующая хасп-ключ. Часть 2
11 май 2004
В данной статье будет подробно описано, как именно устроен код, общающийся с ключом и реализующий так называемые "функции" хасп-ключа и исследован метод эмуляции не отклика самого ключа (команды ввода-вывода), но эмуляции функций хасп-ключа.
Читать далее
0
0
1.923
Защита, использующая хасп-ключ. Часть 1
11 май 2004
Программа включает в себя следующие компоненты: рабочий модуль prog.exe, возможно частично зашифрованный, два VxD драйвера: haspbig.vxd, весом полмегабайта, статический (загружаемый системой при старте) и hasplit.vxd, небольшой и динамический (загружаемый программой prog.exe при запуске). В порт компьютера LPT воткнут hasp-ключ.
Читать далее
+1
0
1.294
Способы обхода отладчиков режима пользователя
8 май 2004
В этой статье я рассмотрю способы одурачивания отладчиков режима пользователя. Я попытаюсь разложить по полочкам все известные мне методы и предложить читателю несколько своих.
Читать далее
0
0
2.099
Приложение Windows «голыми руками»
4 май 2004
Впервые запустив вновь установленный Windows XP Pro и набрав в командной строке debug, я был весьма удивлен, увидев дефис в консольном окне - знакомое приглашение старого отладчика DOS. Эта любопытная вещица является именно тем инструментом, который нам нужен. Кроме него, нам потребуется немного знаний о формате исполняемых файлов PE и процессе их загрузки в память.
Читать далее
0
0
1.096
Драйверы режима ядра: Часть 13: Базовая техника. Синхронизация: Взаимоисключающий доступ
3 май 2004
Часто встречающейся задачей, которую решает синхронизация, является задача монопольного доступа к данным. Создадим несколько потоков, которые под контролем мьютекса будут работают с одним и тем же ресурсом.
Читать далее
0
0
1.417
Теоретические основы крэкинга: Глава 5. Структуры, массивы, ссылки.
25 апр 2004
Сразу отмечу, что эта глава посвящена не столько непосредственному взлому программ, сколько техникам "вытаскивания" структурированной информации, упрятанной в недрах исполняемых файлов.
Читать далее
0
0
1.509
Вирусное оружие
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&ArgV</a>, в которой раскрываются аспекты вирусного оружия.
Читать далее
0
0
1.404
Создание нестандартных элементов управления с использованием макросов FASM
11 апр 2004
С использованием директивы <strong>fix</strong> появилась возможность создать свои контролы (элементы управления) без использования библиотек dll и obj-файлов. На мой взгляд плюс в включении контролов в виде макросов в том, что есть возможность изменять их функциональность так, как нужно в каждом конкретном случае. Ещё большим плюсом на мой взгляд является то, что всегда известно как данный элемент будет себя вести т.к. известен его исходный код.
Читать далее
0
0
1.959
Драйверы режима ядра: Часть 12: Базовая техника. Синхронизация: Таймер и системный поток
5 апр 2004
В этой статье мы познакомимся с синхронизацией. Создадим поток и таймер. Поток по сигналу таймера будет что-то делать, а мы будем ждать завершения его работы.
Читать далее
+1
0
1.678
Исследование InstallShield 6+ – обзор методик
5 апр 2004
В этой статье мы хотим продемонстрировать различные подходы к исследованию программ, использующих технологию Install Shield (в дальнейшем – IS). IS используется при инсталляции практически любого серьезного программного продукта – дистрибутивы Adobe, Microsoft, Intel, Compuware и т.д., и т.п. Подход, предлагаемый в этой статье – декомпиляция сценария инсталляции – трудно назвать новым. В сети уже существуют утилиты и даны некоторые описания, однако, их сложно назвать современными. Все они безнадежно устарели. В представленной на ваше рассмотрение статье мы попробуем восполнить это упущение.
Читать далее
0
0
1.376
Обзор "Agent Aeka"
1 апр 2004
Бывают моменты, когда хочется отдохнуть от стандартных 26-ти и 52-х серийных картин, повествующих о любви, крепкой дружбе и прочих благообразных глупостях и посмотреть что-нибудь для души часика на два-три. Обычно эту роль берут на себя OVA или Movie. В данном обзоре я хочу рассказать о весьма необычной, смешной и чуть-чуть пародийной овашке "Agent Aika".
Читать далее
0
0
852
Разработка больших проектов на ассемблере
25 мар 2004
Исследуемые здесь принципы разработки больших проектов, пожалуй, должны работать для любого языка. В этом плане они «кросс-платформенны». Сразу оговорюсь, что я не глаголю аксиому. Это лишь моё мнение, мои размышления, мой опыт программирования на асме. Где-то – моя биография. Я приветствую иные мнения. И буду внимательно читать Ваши отзывы.
Читать далее
0
0
2.105
Теоретические основы крэкинга: Глава 4. Переменные и константы.
10 мар 2004
Одна из первых задач, с которыми сталкивается крэкер - поиск в тексте программы констант или обращений к переменным, отвечающих за реализацию ограничений в незарегистрированных и демонстрационных программах. Нередко также возникает необходимость извлечь из программы какие-либо данные, либо заменить их своими собственными. Поскольку в данной главе пойдет речь не только об изучении, но и об изменении программ, сразу же ознакомлю Вас с одним из важнейших, с моей точки зрения, принципов, которым нужно руководствоваться, если приходится прибегать к модификации данных или исполняемого кода.
Читать далее
0
0
1.627
Написание плагина — эмулирующего отладчика для дизассемблера IDA
8 мар 2004
Я понимаю, что отладчик для IDA, начиная с версии 4.5 существует, но во-первых не у всех она есть, во-вторых создать отладчик своими руками очень даже интересное дело, поможет поближе ознакомится с устройством IDA и её плагинов.
Читать далее
+1
0
1.542
Введение в использование скриптовых движков: Часть 2
24 фев 2004
Если вы помните, в предыдущей статье было рассказано об основах управления скриптовыми движками, в частности о том, как заставить выполняться простейший скрипт. В том примере было мало интересного - скрипт жил сам по себе и, отработав, просто возвращал управление основной программе. Сейчас настало время рассмотреть более полезные техники, а именно, как передать скрипту какие-нибудь параметры и наоборот - получить от него информацию (например, о результатах работы).
Читать далее
0
0
1.401
Антивирусные технологии: эмуляция программного кода
27 янв 2004
Эта статья не является продолжением пособия по написанию антивирусных программ, это всего лишь теоретическое описание технологии используемой в «хороших» антивирусных программах. Причем технологии далеко не примитивной, а очень и очень сложной для понимания и реализации…
Читать далее
0
0
11.575
Драйверы режима ядра: Часть 11 : Базовая техника: Каталоги и файлы
22 янв 2004
Обеспечение возможности работы с файлами является важнейшей задачей любой операционной системы. Некоторые аспекты работы с файлами рассмотрены в этой статье.
Читать далее
+1
0
1.442
Теоретические основы крэкинга: Глава 3. «Критические дни» программ.
13 янв 2004
После того, как мы успешно установили программу, неизменно наступает торжественный момент первого запуска программы (конечно, если инсталлятор не испортил нам удовольствие, запустив программу автоматически). Немало программ содержат ограничения на время пробного использования, и потому необходимо со всей ответственностью отнестись к первому (да и не только к первому, как мы увидим в дальнейшем) запуску программы.
Читать далее
+1
0
1.676
Теоретические основы крэкинга: Глава 2. Почти начинаем ломать.
13 янв 2004
Итак, допустим, что у нас есть программа и в ней содержится вредоносный код (далее - «защита»), который нужно обезвредить. Инсталляционный файл тихо лежат на нашем винчестере, ожидая того знаменательного момента, когда мы его запустим, чтобы извлечь на свет скрытую в его недрах программу. Мне вполне понятно Ваше желание немедленно установить эту программу и вступить в битву со злобным и коварным врагом, но охладите на несколько минут свой пыл, и послушайте мой рассказ о процессе инсталляции программ, и чем этот процесс может кончиться.
Читать далее
+1
0
1.769
Программирование на языке Assembler в FASM
6 янв 2004
В этом сочинении будут рассмотрены основные моменты отличающие FASM от других компиляторов, правила по которым пишутся макросы и форматы выходных файлов создаваемые FASM-ом. Так же в рамках данного сочинения мы создадим несколько контролов в виде макросов.
Читать далее
0
0
3.862
Введение в использование скриптовых движков: Часть 1
3 янв 2004
В этой статье я попытаюсь рассказать о том, как добавить поддержку скриптовых языков в программу, написанную на ассемблере. Возможно, это самый простой путь добавить поддержку макросов в свою программу и может быть кому-то это и пригодится ;).
Читать далее
0
0
1.510
Основы разработки антивирусного сканера
24 дек 2003
В этой статье речь пойдет о разработке примитивного антивирусного программного обеспечения, точнее сказать антивирусного сканера. Сканнерами называют программы, которые проверяют файлы на предмет зараженности их известными программе вирусами. Прочитав эту статью, я не гарантирую, того, что вы в тот же момент станете умнейшим вирусным аналитиком, эта область программирования достаточно необычна и тяжела для понимания. Сталкиваясь с ней (областью) «вплотную» в первый раз очень тяжело сразу «взять быка за рога». Но в этой статье я попытаюсь изложить основы, так что вполне возможно, то, что будет описано ниже вы, уже знали.
Читать далее
0
0
2.050
Драйверы режима ядра: Часть 10: Базовая техника: Реестр
23 дек 2003
В режиме пользователя обращение к реестру производится с помощью мнемонических обозначений его корневых разделов: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER и т.д. В режиме ядра обращаться к реестру следует более уважительно - по имени. Как его зовут? Читайте статью.
Читать далее
+1
0
1.235
Немного о эксплоитах…
21 дек 2003
Давайте представим, что мы имеем в наличии следующее: удалённая ситема win2k/XP/NT4, уязвимое серверное приложение с возможностью переполнения стека через strcpy() иль sprintf() и наше желание этой системой поуправлять от имени этого приложения.
Читать далее
0
0
1.181
Теоретические основы крэкинга: Глава -1. Орудия крэкера.
16 дек 2003
Инструменты – это материальная основа крэкинга, без инструментов в крэкинге – никуда, но сами по себе инструменты – не более чем набор байтов, и лишь человеческая мысль оживляет их, заставляя творить чудеса.
Читать далее
0
0
2.352
Теоретические основы крэкинга: Глава 0. Дзен-крэкинг. Теория.
13 дек 2003
Идея, лежащая в основе дзен-крэкинга (именно это название широко используется на сайте Fravia для обозначения той системы крэкинга, о которой я рассказываю), звучит так: «я не знаю, как это работает, но я знаю, как это сломать». Разумеется, речь не идет об абсолютном незнании того, как функционирует программа – знание команд ассемблера, способов передачи параметров в функции и процедуры, назначения системных вызовов ОС, особенностей кодогенерации определенных компиляторов и многого другого, несомненно, является обязательным.
Читать далее
0
0
2.448
Теоретические основы крэкинга: Введение
12 дек 2003
За пять лет более или менее активного занятия крэкингом (а именно столько времени прошло с того знаменательного момента, как я открыл счет взломанным программам) мне удалось выработать набор методов, позволяющих сравнительно быстро найти подход к большинству программ. Возьму на себя смелость утверждать, что именно эта система наиболее доступна для начинающих, поскольку она базируется не на раскрытии алгоритма работы защиты в целом, а на более простом процессе анализа сравнительно небольших участков кода и установлении взаимосвязи между ними.
Читать далее
0
0
2.054
Драйверы режима ядра: Часть 9: Базовая техника: Работа с памятью. Разделяемая память
27 ноя 2003
В этой статье рассмотрен ещё один метод совместного использования памяти драйвером и пользовательским процессом. Для драйверов этот метод намного более естественен.
Читать далее
+1
0
1.525
Драйверы режима ядра: Часть 8: Базовая техника: Работа с памятью. Совместно используемый раздел
13 ноя 2003
Совместно используемый объект “раздел” может служить средством обмена данными не только для пользовательских процессов, но и для драйверов. В этой статье именованный раздел используется для обмена данными между пользовательским процессом и драйвером.
Читать далее
+1
0
1.237
Об упаковщиках в последний раз. Часть вторая
6 ноя 2003
Итак, мы продолжаем. Подразумевается, что вы ознакомились с первой частью статьи и теперь владеете минимумом теории. Однако мы еще более повышаем требования. Теперь, для успешного и полного понимания <strong>SEH</strong> (Structured Exception Handling) и некоторых приемов, тут продемонстрированных, вам придется иметь базовое представление о <strong>С++</strong>. Мы не будем особо далеко лезть в дебри родовых классов, виртуальных функций и т.п., но самые основы <strong>OOП</strong>, такие как наследование, вам необходимо (по крайней мере, желательно!) знать.
Читать далее
+1
0
5.815
Написание Plugin модулей для IDA. Основы.
6 ноя 2003
На данный момент IDA является пожалуй самым мощным дизассемблером, обладающим огромным количеством возможностей. Но всё это сводилось бы на нет, если бы не ещё одна - возможность расширения стандартных функций посредством дополнительных модулей, в простонародии - плагинов. Рассмотрим теперь подробнее как же эти плагины писать.
Читать далее
+1
0
11.623
Способы фильтрации сетевого траффика в Windows 9x/2000/Net.2003 Server
1 ноя 2003
В данной статье даются основные сведения по способам фильтрации сетевого траффика в Windows 9x/2000/Net.2003 Server, даётся описание фильтрации IP-траффика в Windows 2000 на основе Windows 2000 Filter-Hook Driver способа.Также указываются особенности реализации других методов фильтрации.
Читать далее
0
0
1.471
Построение простого EPO мотора
1 ноя 2003
В данной статье мы рассмотрим моделирование простого EPO мотора. На данную тему уже было написано несколько статей, но они в большей степени теоретические. В этом тексте будет рассмотрено, как теоретическое моделирование, так и пример применения этой теории. В качестве примера будет разобран мой ЕPO мотор - SPOT.
Читать далее
0
0
881
Socket vs Socket, или использование сокетов MS Windows в ассемблерных программах
31 окт 2003
Теория применения сокетов совсем недавно была описана в статье “Сокеты M$ Windows”, которую вы можете легко найти в разделе “Статьи/Сеть”. Не будем повторяться, но вкратце скажем, что сокеты определяют логику для программирования сети аналогичную работе с файлами. В разделе “Исходники/Сеть и коммуникации” уже давно (со времен wasm.zite.ru) имеется рабочая небольшая программа “ledilog.zipconnect.asm”, в которой на основе использования сокетов реализован обмен текстовыми сообщениями между двумя компьютерами в сети. Таким образом, накопилась критическая масса, состоящая из некоторого минимума теории и кое- каких практических материалов. Все это и подтолкнуло автора к использованию в своем проекте (детали в данном случае не важны) связи по локальной сети между компьютерами на основе сокетов MS Windows. Однако все оказалось не так просто, как хотелось. Впрочем, как и всегда...
Читать далее
0
0
1.933
Драйверы режима ядра: Часть 7: Работа с памятью. Использование ассоциативных списков
27 окт 2003
Операция выделения памяти из системных пулов требует времени, т.к. диспетчер куч пытается подобрать свободный блок подходящего размера. Так называемые ассоциативные списки, при правильном использовании, могут сократить это время до минимума.
Читать далее
+1
0
1.571
Неявный самоконтроль как средство создания не ломаемых защит
17 окт 2003
Основная ошибка подавляющего большинства разработчиков защитных механизмов состоит в том, что они дают явно понять хакеру, что защита еще не взломана. Если защита сообщает "неверный ключевой файл (пароль)", то хакер ищет тот код, который ее выводит и анализирует условия, которые приводят к передаче управления на данную ветку программы.
Читать далее
0
0
1.143
Философия и архитектура NT против UNIX с точки зрения безопасности
15 окт 2003
<archive>unixvsnt</archive> <descr></descr>
Читать далее
0
0
1.343
Драйверы режима ядра: Часть 6: Базовая техника: Работа с памятью. Использование системных куч
2 окт 2003
С этой статьи мы начинаем разбирать некоторые базовые техники, без которых трудно представить себе создание мало-мальски полезного драйвера. Работу с памятью рассмотрим в первую очередь.
Читать далее
+2
0
1.805
IDE для больших проектов на ассемблере
1 окт 2003
Перейдем к более интересному, а именно большим проектам. Традиционно считается, что на ассемблере сейчас большие проекты не пишутся (или вообще ничего не пишется). А мне, например, нравится и у меня есть несколько проектов с количеством строк, большим 10 000 у каждого. Причем менять язык я не планирую, а число проектов - только увеличивать.
Читать далее
0
0
2.978
Поиск адресов API в win95-XP
26 сен 2003
На эту "избитую" тему написано уже много статей, но представлю на ваше обозрение еще одну. Кстати, в этой статье вы не найдете подробного описания полей PE заголовка и технологии поиска API, предполагается, что в этом вы уже разбираетесь. Так же не буду останавливаться на очевидных моментах, это уже тысячу раз перетиралось.
Читать далее
0
0
990
GBA ASM - День 7: Всё о макросах
23 сен 2003
Макросы - это алиасы для участков кода. Они делают вашу ассемблерную жизнь проще, так как вам не нужно запоминать куски кода (возможно, большие), которые вы часто употребляете.
Читать далее
0
0
941
Заклинание кода: Заин
22 сен 2003
В прошлых главах мы изучили практически все основы, необходимые для сотворения правильно работающих заклинаний, а в предыдущей главе была проведена небольшая демонстрация могущества, которое есть у каждого заклинателя кода. Однако мы еще не рассмотрели две важные темы, а именно - префиксы и использование 16-ти битных инструкций в 32-х битном коде.
Читать далее
0
0
1.426
IPC
17 сен 2003
Рано или поздно у любого человека, написавшего больше одной программы, появляется желание заставить эти программы как-то общаться между собой. Это желание со временем растет и крепнет, и в конце концов достигает таких огромных размеров, что его просто необходимо удовлетворить.
Читать далее
0
0
1.219
История одного байта
11 сен 2003
Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Hет, я не псих, хотя одному богу известно, сколь тонкой была граница отделявшая меня от этого состояния. Hо все по порядку.
Читать далее
0
1
6.798
SentinelLM!WlscGen_CRK_2
10 сен 2003
Дорогие коллеги, предлагаю вашему вниманию заключительную статью из цикла о SentinelLM. Вы уже знаете, что от полного счастья нас отделяет одна единственная функция SLM API. Итак, пришло время нанести смертельный удар по SLM SDK, т.е. пропатчить функцию RNBOsproQuery.
Читать далее
0
0
1.530
Ассемблер в *nix – удел извращенца..?
1 сен 2003
Да, асм в <strong>*nix</strong> таки существует. Просто многие в это почему-то отказываются верить. Данная статья скромно претендует развеять все мифы и загадки вокруг этого загадочного явления. Не ищите здесь подробного описания <strong>AT&T</strong> синтаксиса и системных вызовов – я просто попробую описать те трудности и невзгоды, которые обязательно придется преодолеть смельчаку, желающему полностью овладеть <strong>*nix</strong>-ом через асм (в смысле - научиться программировать на асме под <strong>*nix</strong>, прим. для CyberManiac-а :) ).
Читать далее
0
0
1.700
Ассемблер в Unix
1 сен 2003
Так исторически сложилось, что программирование на ассемблере под unix почти не востребовано, и занимаются им только кодеры-маньяки, дзен-буддисты и прочие настоящие ассемблерщики.
Читать далее
0
0
2.273
DVD firmware patching
26 авг 2003
Недавно в поисках чего бы мне такого еще крякнуть я, можно сказать совсем неожиданно, вспомнил про свой DVD-ROM. Точнее это не было большой неожиданностью, просто моя творческая натура потребовала от меня сразу после покупки DVD-ROM-a немного поиграться с установками региональной защиты. В результате, как всегда и получается, дисковод заблокировался на американском регионе (номер 1), в то время как мне требовалось просмотреть фильм из родной Россияно-Африканской :) 5-ой зоны. Таким образом, остро стал вопрос о том как исправить это положение. Я не буду расспространяться о том, как я отношуть ко всем этим "изобретениям" буржуев, призванных ограничить мои потребительские права.
Читать далее
0
0
1.880
Руководство по проектированию макросов в MASM32
25 авг 2003
В этом руководстве раскрывается тема создания, использования (а главное – проектирования) макросов и макрофункций в проектах на MASM32.
Читать далее
0
0
15.828
Создание приложений на ассемблере для Menuet OS
23 авг 2003
В данной статье я собираюсь объяснить, как писать приложения на 32-х битном ассемблере для маленькой и неприхотливой системы Menuet.
Читать далее
0
0
1.285
GBA ASM - День 6: Простые звуковые эффекты
21 авг 2003
У GBA есть шесть звуковых каналов. Сегодня мы изучим только первые 4 (1-4), которые используются внутренним GBC GBA. Другие два канала - это прямые звуковые каналы, которые могут проигрывать сконвертированные звуковые файлы - о них мы сегодня говорить не будем. ПРИМЕЧАНИЕ: термин "direct sound" в данном контексте является не более чем полуофициальным названием 5 и 6 звуковых каналов GBA и никак не связан с DirectSound, который является частью мультимедийной библиотеки для Windows от Microsoft.
Читать далее
0
0
859
Интервью с создателем пакета MASM32
21 авг 2003
Самым популярным пакетом для программирования на ассемблере в настоящее время является MASM32. Мы взяли интервью у hutch'а, его создателя, проживающего в настоящее время в Австралии.
Читать далее
0
0
993
GBA ASM - День 5: Помещение спрайта на экран
14 авг 2003
Этот день посвящён спрайтам, а если более точно тому, как вывести его на экран. Да, именно так - всё, что мы будем делать сегодня - это выведем на экран 16-ти цветный спрайт размером 32x32 на экран.
Читать далее
0
0
1.004
Об упаковщиках в последний раз: Часть первая - теоретическая
11 авг 2003
Решено было разбить эту статью на две-три части. Первая часть собственно теоретическая. Она дает абсолютно необходимый минимум теории, который позволит успешно распаковывать файлы. В статье также описывается формат XML, который затем переводится в CSS-HTML при помощи XSLT- процессора. Таким образом, наряду со знанием структуры PE-файла вы, по прочтении статьи, будете иметь самые базовые представления о XML/CSS/XSLT, Perl/Java и других страшных технологиях. Мы достаточно неплохо осознем, что тема уже достаточно замусолена, поэтому нудного пересказа PE- документации здесь не будет. Скорее, вам стоит воспринимать эту статью как некий коллектор, попытку обобщения и анализа всей доступной информации о пакерах, PE-файлах, антиотладке и т.п. А поскольку есть возможность перевода статей с испанского и французского языков (помимо стандартного английского), то должно получится что-то неплохое. процессами, обрабатывают исключения и т.п.
Читать далее
+1
0
2.728
GBA ASM - День 4: Обработка нажатий на клавиши
2 авг 2003
Ок, я допускаю, что настоящей клавиатуры в GBA нет! У GBA есть 10 клавиш: ВВЕРХ, ВНИЗ, ВЛЕВО, ВПРАВО, A, B, START, SELECT, L и R. Когда вы нажимаете клавишу, очищается соответствующий бит. Регистр клавиатуры находится по адресу 0x04000130.
Читать далее
0
0
1.221
DirectX 8.1 в MASM32: Урок 5. Использование текста
1 авг 2003
Часто, когда приложение уже запущено, необходимо вывести некоторую полезную информацию: подсказки пользователю, содержимое переменных, сообщения об ошибках и т.д. Легко и быстро это делается с помощью текста.
Читать далее
0
0
1.583
GBA ASM - День 3: Больше ассемблера и помещение картинки на экран
30 июл 2003
Во-первых, инструкции ADD и SUB расшифровываются как сложение (addition) и вычитание (substraction). Они обе могут иметь суффикс установки флагов, что особенно полезно, когда надо узнать, был ли результат операции равен нулю (0).
Читать далее
0
0
1.095
SentinelLM!WlscGen_Crk_1
27 июл 2003
Это первая часть последней главы из цикла о SentinelLM, но уже после её прочтения вы должны быть в состоянии "зарегистрировать" и/или отучить от заглушки в порту (aka донгл) некоторые простенькие программы, продавшие душу Rainbow Tech.
Читать далее
0
0
1.169
Перенос и переполнение - что они представляют собой на самом деле?
27 июл 2003
Данная статья ни в коем случае не претендует на полноту описания, и представляет собой лишь краткое дополнение к тем солидным учебным пособиям и справочникам, которые должны быть под рукой у каждого программиста. Просто мне не удалось найти ни в одном из подобных изданий тех элементарных сведений, которые будут изложены ниже. Видимо, авторам этот вопрос кажется настолько тривиальным и очевидным, что они не заостряют на нем внимания, полагая, что двух - трех строк достаточно для полного понимания. Однако это далеко не так - вопрос выходит далеко за те рамки, в которые его пытаются загнать авторы. А дело вот в чем.
Читать далее
0
0
19.026
Нестандартный загрузчик
21 июл 2003
Данная статья предназначена для тех, кто хочет подробнее узнать о процессе начальной загрузки компьютера и поэкспериментировать с ним. Никакого специального программного обеспечения не потребуется: все описываемые действия проделываются с использованием отладчика debug, входящего в состав Windows 95/98. Проделав описанные в статье действия на своем компьютере, вы сможете создать вспомогательную программу wb.com и установить в реестре ее ассоциацию с расширением файлов .bot, что позволит одним щелчком мыши переносить созданные с помощью debug файлы на дискету, сделав ее загружаемой.
Читать далее
0
0
1.718
MASM.OpenGL.1.First.Blood
21 июл 2003
В предыдущей части мы занимались теорией, а сегодня пришло время практики. Давайте разбираться.
Читать далее
0
0
1.369
GBA ASM - День 2: Немного информации об ассемблере ARM
14 июл 2003
ARM - это компания, которая делает процессор GBA. Процессоры ARM являются RISC-процессорами (в отличии от процессоров INTEL). RISC расшифровывается как Reduced Instruction Set Computers (CISC - Complex ...). Хотя в этих процессорах не так много инструкций (что хорошо), инструкции ARM (а может и других RISC-процессоров, я не знаю) имеют много различных назначений и комбинаций, что делает RISC-процессорами таким могущественными, каким они являются.
Читать далее
0
0
2.676
GBA ASM - День 1: Постигаем ассемблер
13 июл 2003
Вы можете спросить, будем ли мы использовать тот же ассемблер, который идёт вместе с GCC. Короткий ответ: НЕТ. Развёрнутый ответ: мы будем использовать ассемблер Goldroad, который можно найти на его сайте. Я использую версию 1.6F. Вам следует скачать самую последнюю версию ассемблера и распаковать её куда-нибудь, так чтобы в пути не было пробелов. Если в пути нет пробелов - это всегда существенно облегчает жизнь.
Читать далее
0
0
1.784
MASM.OpenGL.0.Introduction
8 июл 2003
Много тысяч лет тому назад наш прапрапрадедушка собрал травы и минералы и сделал из них краски. Рисовал он пальцами или использовал некое подобие кисти неизвестно. Но то, что создал этот первобытный Мастер до сих пор поражает воображение.
Читать далее
0
0
1.467
SentinelLM!SDK_Keygen
4 июл 2003
В предыдущей главе мы славно потрудились и получили VId нашей жертвы. Наша следующая цель -- подсунуть этот VId инсталлеру Sentinel SDK (вы уже скачали 80-тонный архивчик?) и получить генератор лицензионных цепочек ИМЕННО для нашей жертвы.
Читать далее
0
0
1.127
Стеганография - искусство пряток
3 июл 2003
Нет! Стеганография - это не наука, изучающая стегозавров, это наука скрывания сообщений, но не путем их превращения в нечто нераспозноваемое, как это происходит в криптографии, а путём того, чтобы они оставались незамеченными.
Читать далее
0
0
1.926
SentinelLM!Vendor_Id
1 июл 2003
Vendor Id (далее просто VId) -- уникальное 16-битное значение в диапазоне 0x0000 -- 0xFFFF, присваиваемое каждому из клиентов Sentinel. Таким образом, Borland (aka Inprise) имеет свой VId; у Tanner Research тоже имеется по крайней мере один идентификатор.
Читать далее
0
0
1.117
SentinelLM!Вступление
1 июл 2003
Данная статья представляет собой первый выпуск элементарного пособия -- а-ля SentinelLM for Dummies -- которое должно помочь начинающему хакеру перейти в разряд хакеров подготовленных! Sentinel License Manager (далее просто SLM) является продвинутой системой защиты коммерческих приложений от взлома (пардон, имеется ввиду реверсинг в чисто познавательных целях).
Читать далее
0
0
1.137
Процессор INTEL в защищенном режиме #13
26 июн 2003
Вновь приветствую тебя, уважаемый читатель! И пусть никого не отпугнет номер выпуска (кстати, сегодня еще к тому же и пятница тринадцатое); сегодня мы продолжим интереснейшую тему – а именно тему защиты в защищенном режиме (простите за каламбур), которую предоставляет любой современный процессор из семейства Intel (вид x86). Несмотря на номер выпуска, ничего общего с мистикой данная тема не имеет, все до безобразия просто и прозаично. В качестве развлечения в сегодняшнем выпуске объявляется начало конкурса на отыскание ошибки... в самОм официальном мануале от Intel-а! (см. в конце)
Читать далее
0
0
1.549
Фрагмент из второго издания книги "Техника и философия хакерских атак 2.000"
11 июн 2003
<archive>daoreg</archive> <descr></descr>
Читать далее
0
0
1.371
Фрагмент из первого издания книги "Техника и философия сетевых атак"
11 июн 2003
Мир давно привык к тому, что популярные технологии вовсе не обязательно бывают хорошими. Именно так произошло и в области защиты условно-бесплатного программного обеспечения.
Читать далее
0
0
1.145
Процессор INTEL в защищённом режиме #12
21 май 2003
В это трудно поверить, но весь механизм защиты процессора Intel обеспечивается 3-мя флагами (+ еще 2 дополнительных при использовании страничной адресации) и 5-тью полями. Казалось бы, какую защиту могут обеспечить эти несчастные 8 (+2 до кучи) ребят? На самом же деле все довольно продумано и все чего надо они обеспечивают.
Читать далее
0
0
1.393
Процессор INTEL в защищённом режиме #11
19 май 2003
Данный выпуск я бы назвал самым идейным и важным из всего цикла, т.к. он повествует о самой сердцевине защищенного режима и любой современной ОС - о самом механизме защиты.
Читать далее
0
0
1.558
DirectX 8.1 в MASM32: Урок 4
19 май 2003
Основы трехмерной графики. Как это все работает. Я расскажу вам как устроен механизм визуализации в DirectX, и вы научитесь использовать в своей работе простые полигоны.
Читать далее
0
0
2.137
Процессор Intel в защищенном режиме #10
14 май 2003
На создание данного выпуска побудила огромная неразбериха, творящаяся в литературе по описанию архитектуры различных ОС. Многие авторы, которые пишут свои книги со слов разработчиков ОС (Хелен Кастер) или сами являющиеся оными (Мэт Питрек) очень часто недоговаривают и перевирают некоторые наиважнейшие понятия (в некоторых случаях это делается специально, ввиду засекреченности того или иного аспекта), но путать три совершенно различных понятия адресного пространства - просто недопустимо. Авторы практически 90% книг копируют друг у друга различные определения, получается нечто вроде "испорченного телефона", а страдаем в конечном итоге мы.
Читать далее
0
0
1.799
Процессор Intel в защищенном режиме #9
12 май 2003
После длительного затишья мы продолжаем изучать защищенный режим. В предыдущем выпуске был рассмотрен пример переключения процессора в защищенный режим БЕЗ использования страничной адресации. В данном выпуске будет рассмотрен код перевода проца в защищенный режим С использованием страничной адресации.
Читать далее
0
0
1.570
Подробные замечания по книге "Атака из Интернет"
15 апр 2003
Многие считают, что область интересов нашей группы распространяется исключительно на кодинг. Это неправильное утверждение. То, что наш основной сайт посвящен кодингу отнюдь не означает, что нам чужды сетевые технологии. К вопросу о том, откуда и каким образом был взят нижеследующий документ: пол года назад мы заключили с КК двустороннее соглашение, освобождающее стороны от ответственности за взлом систем/сайтов участников. Счет был открыт КК 01.09.02 - дефейс wasm.ru. 01.04.03 мы сравняли счет, в доказательство чего приводим нижеследующий документ (подробности см. MS Security Bulletin MS03-008). Также считаем своим долгом заявить, что в результате успешно проведенной атаки было выяснено, что КК не врет, когда утверждает, что использует лицензионную версию IDA. А вот IRIS у него ворованный - за скачиванием оного с варезного сайта мы его "тепленьким" и взяли... Тепленький документик с тепленького винта тепленького Криса Касперски.
Читать далее
0
0
1.338
Защита программы Ulead COOL 3D v3.5 (trial)
13 апр 2003
Ниже я собираюсь исследовать защиту этой проги, которая позволяет пользователю использовать ее функциональность только в течении календарного месяца (30 дней) или купить возможность ее использования неограниченно во времени.
Читать далее
0
0
1.117
Примеры реальных взломов: UniLink v1.03 от Юрия Харона
8 апр 2003
Баста! Надоело! Все эти уродские защиты… (см. описания четырех предыдущих взломов) только портят настроение и еще, – чего доброго – вызывают у читателей смутное сомнение: а не специально ли автор подобрал такие простые программы? Может быть, он – автор – вообще не умеет ничего серьезного ломать?! Уметь-то он (вы уж поверьте) умеет, но публично описывать взлом "серьезных" программ – боязно, а в "несерьезных" хороших защит мне как-то и не попадалось.
Читать далее
0
0
1.895
Примеры реальных взломов: Record Now
7 апр 2003
Из всех программ NEC'овый писец опознала лишь одна: Record NOW, которая, к счастью не имела никаких функциональных ограничений, исключая, правда 30-днейвый триальный период. Причем, программа оказалась такой уютной и удобной, что расставаться с ней мне не захотелось, но и расставаться со своими деньгами мне не хотелось тоже.
Читать далее
0
0
988
Метаморфизм (часть II, техническая)
6 апр 2003
Первая часть была моим первым вкладом как мембера iKX. Это хорошо, и у меня уже есть некоторые наработки, так что я могу научить Вас многим интересным вещам. Метаморфизм – это техника не для всех этих чайников, ламеров и прочих новичков и даже не для людей со средними навыками. Это действительно элитная техника (хотя я и не люблю это слово, за то, что оно дискриминирует людей и показывает всю их ламерность...).
Читать далее
0
0
1.270
Примеры реальных взломов: 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
1.678
Примеры реальных взломов: Intel Fortran 4.5
3 апр 2003
Ситуация с этим компилятором вкратце такова. В процессе работы над третьим томом "Образа мышления IDA" я исследовал большое количество компиляторов на предмет особенностей их кодогенерации и вытекающих отсюда трудностей восстановления исходного кода. Не избежал этой участи и "Intel Fortran Compiler", обнаруженный на диске "Научись сам программировать на FORTRAN".
Читать далее
0
0
1.197
Примеры реальных взломов: Вступление
2 апр 2003
В настоящей книге все атаки рассматривались исключительно на примерах, специально написанных для демонстрации того или иного алгоритма программ 'CrackMe'. При этом многие из них были слишком искусственными и далекими от реальных защитных механизмов. Это было удобно для изложения материала, но не отражало реальных существующих защит. Поэтому я решил включить в приложения некоторые примеры реальных взломов. Все эти программы широко распространены и отражают средний уровень защиты условно-бесплатных программ. Заметим, что он существенно ниже, чем многие из предложенных в книге реализаций.
Читать далее
0
0
1.298
Примеры реальных взломов: компилятор Intel С++ 5.0.1
2 апр 2003
Прежде, чем приступать к обсуждению аспектов стойкости защиты компилятора Intel C++ 5.0.1, считаю своим долгом заявить, что я глубоко восхищен этим великолепным программным продуктом и ломать его на мой взгляд по меньшей мере кощунственно. Впрочем, сегодня только ленивый не найдет в Сети кряк (один только Google по запросу "Intel C++ crack" выдает свыше 12 тысячи ссылок!), так что никакого вреда от данной публикации не будет.
Читать далее
0
0
1.395
DirectX 8.1 в MASM32: Урок 3
26 мар 2003
Как определить все доступные полноэкранные режимы и при этом сделать так, чтобы пользователь смог выбирать в каком режиме работать приложению ? В этом нам поможет диалоговое окно.
Читать далее
0
0
1.479
Метаморфизм (часть I)
9 мар 2003
Хорошо, начнем с основ. Для тех, кто еще не знает что такое метаморфизм, скажу, что суть этой техники заключается в ПОЛНОМ изменении тела вируса без изменения его функциональности. Проще говоря, это то же самое, что и полиморфизм декриптора, но примененный ко всему телу вируса.
Читать далее
0
0
2.155
DirectX 8.1 в MASM32: Урок 2
7 мар 2003
Привет ! Сегодня мы научимся запускать приложение в полноэкранном режиме.
Читать далее
0
0
987
DirectX 8.1 в MASM32: Урок 1
1 мар 2003
Все что у нас сейчас имеется это приложение, при запуске выводящее на экран окошко размером 320х240, и нам надо заставить работать в этом окне Direct3D. Как это сделать? Нет ничего проще!
Читать далее
0
0
1.187
DirectX 8.1 в MASM32: Урок 0
26 фев 2003
Сидел я как-то в инете и наткнулся на сайт www.vvsu.ru/dkscs, а там, на цикл статей Дениса “Mr.Snow” Кожухова ( в данный момент сайт переехал на Xdev.ru ). Статьи были посвящены программированию Direct3D 8.1 на языке C++. Посмотрел я на них и подумал, а что если забацать тоже самое, но на MASM.
Читать далее
0
0
1.154
Программирование игр на ассемблере (Часть 3)
22 фев 2003
По вашим многочисленным просьбам продолжаю перевод этой серии туториалов. И начнем с того, что же такое DirectInput и для чего он нужен? DirectInput был создан с целью решить проблемы со скоростью ввода. То есть это компонент, который получает данные ввода от пользователя с различных устройств (клавиатура, мышь, джойстик и т.д.) в обход операционной системы.
Читать далее
0
0
1.283
Обзор некоторых защит на основе FLEXlm SDK
30 янв 2003
Данная статья написана как довесок к моей основной статье о профилировщиках. Здесь рассказывается, как устранить некоторые проблемы инсталляции и работы программ , использующих для своего функционирования набор API-функций, предоставляемых пакетом FlexLm. Так уж получилось, что подавляющее большинство профилировщиков, средств покрытия кода (т.е. средств, показывающих, сколько веток if и других циклов выполняется при нормальном течении хода проги, это очень полезно, т.к. показывает, насколько ваша прога "готова" к нестандартным изменениям ситуации, как тщательно вы подготовились к неприятностям, т.к. если ветки, которые получают управление редко, небрежно написаны, то в результате можно получить ой-ой-ой!) и выявления утечек памяти используют именно FlexLm. Среди них – Intel Compiler/Vtune environment, все продукты семейства DevPartner от Numega, и все опробованные мной продукты от Rational.
Читать далее
0
0
3.411
Драйверы режима ядра: Часть 5: Полнофункциональный драйвер
21 янв 2003
Пришло, наконец, время взглянуть на то, к чему мы так долго стремились. Практически вся основная теория уже позади. Поэтому, сразу приступаем к разбору исходного текста драйвера, программу управления которым мы писали в прошлой статье.
Читать далее
+1
0
2.189
Новые инструкции Pentium 4: группа SSE2
19 янв 2003
Краткое описание инструкций SSE2, появившихся в Pentium IV.
Читать далее
0
0
1.903
Драйверы режима ядра: Часть 4: Подсистема ввода-вывода
12 янв 2003
Код драйвера, по сути, является набором функций, позволяющих решать задачи недоступные коду режима пользователя. Для вызова функций драйвера система предоставляет посредника в лице диспетчера ввода-вывода.
Читать далее
+1
0
2.337
Использование микрокода в процессорах Интел
7 янв 2003
В статье рассказывается о том, что такое микрокод (который используется в интеловских процессорах).
Читать далее
0
0
10.992
Создание продвинутых полиморфных движков
5 янв 2003
Эта статья была написана для тех, кто сделал свой полиморфный движок и хочет улучшить свои знания и свою технику, делая еще более лучшие полиморфные движки. Я должен предупредить, что техники, о которых пойдет разговор, требуют очень много времени (ошибка при кодинге, независимо от того, маленькая она или большая, может привести к возникновению огромных ошибок, которые будет очень трудно отследить или которые вылезут в последний момент).
Читать далее
0
0
1.502
Макросы и директивы компилятора FASM
2 янв 2003
Перевод части мануала к FASM'у, касающего макросов и директив этого прекрасного ассемблера.
Читать далее
0
0
3.667
Заклинание кода: Хей
20 дек 2002
Интеловские гномы оставили нам настоящее сокровище - Книгу Двойных Слов, но, к сожалению, забыли перевести ее со своего языка. В данной главе рассказывается, как читать эту книгу и расшифровывать содержащиеся в ней письмена.
Читать далее
0
0
1.292
Заклинание кода: Вав
20 дек 2002
Программа, которая сама себя модифицирует! Возможно ли такое чудо? Заклинание кода поможет воплотить в реальность невероятное.
Читать далее
0
0
1.048
Драйверы режима ядра: Часть 3: Простейшие драйверы
18 дек 2002
Вот мы и добрались до исходного текста простейших драйверов. Полнофункциональные нас ждут впереди.
Читать далее
+1
0
2.742
Заклинание кода: Далет
5 дек 2002
На кончиках наших пальцев - власть над битами и байтами кода, даруемая нам полями ModR/M и SIB. Они дают ответ на вопрос, как заколдовать все виды адресации в x86-процессорах.
Читать далее
0
0
1.244
Заклинание кода: Гимель
4 дек 2002
Адепты магии в поисках более мощных заклинаний. Перемещение двойных слов из одного регистра в другой и сложение последних друг с другом: да падут наши враги ниц и познают наше могущество на своей шкуре!
Читать далее
0
0
1.058
Заклинание кода: Бет
3 дек 2002
Могущественное заклинание NOP и изменение EAX на 1.
Читать далее
0
0
1.136
Заклинание кода: Алеф
2 дек 2002
Заклинание кода - искусство програмирования в машинных кодах. Сила древних - каждому, кто не боится ее взять.
Читать далее
0
0
1.377
Драйверы режима ядра: Часть 2: Службы
29 ноя 2002
Службы (Services)- это процессы пользовательского режима, для запуска и функционирования которых, регистрация интерактивного пользователя в системе не требуется. И поэтому, подавляющее большинство служб не имеют пользовательского интерфейса. Это единственная категория пользовательских приложений, которые могут работать в таком режиме.
Читать далее
+1
0
3.143
Сам себе компилятор (или руководство по мазохизму для дзенствующих)
21 ноя 2002
Понятно, что для написания программ компилятор не нужен и даже вреден. Однако как это сделать? Как написать программу без компилятора? "Использовать интерпретатор", - скажет ехидный посетитель. Нет. Неверный ответ.
Читать далее
+1
0
10.254
Записки Дzenствующего
21 ноя 2002
Настоящая статья призвана расставить некоторые точки над Ё. Автор предполагает, что вы уже неплохо разобрались в основах Win32, и теперь хочет внести некоторые коррективы в то, что вы уже усвоили.
Читать далее
0
0
1.270
Сплайн. Аппроксимация данных
21 ноя 2002
В данном документе речь пойдет об интерпретации экспериментальных данных.
Читать далее
0
0
1.734
FPU посвящается (часть 2): Fortran и Асмъ
21 ноя 2002
Ну, вот мы снова перед могуществом FPU. Ещё немного, и мы заглянем в его суть. Программирование FPU – это действительно отдельная тема, и отдельный удивительный подход, который имеет применение только здесь. Во всём пространстве кодов x86, пространство кодов FPU позволяет утверждать, что из всех вариантов, есть только один – оптимальный, и этот вариант достаточно предсказуем, и формализуем. FORTRAN не только первый из ЯВУ, но и наиболее простой классический. Это та причина, по которой современные инженеры продолжают лелеять язык. Им невдомёк от сложных конструкций C++ и ненужной «красоты» кода. Им нужна простота.
Читать далее
0
0
1.083
Фильтр для Photoshop
21 ноя 2002
Довольно часто слышу мнение, что ассемблер мертвый язык, что он никому не нужен, за исключением особых ситуаций и т.д. и т.п. Хочу надеяться, что эта статья будет неплохим гвоздем в гроб этих мненийеще одним гвоздем в крышку гроба этих мнений, т.к. в этом рассмотренном ниже случае его применение более чем оправдано. Как говорил Остап Бендер: «Слухи о моей смерти явно преувеличены». Тоже самое может сказать и за ассемблер, который периодически закапывают не уставая все кому не лень со времени его появления. И все-таки он жив. Жив и активно развивается. Убедитесь сами!
Читать далее
0
0
1.795
Драйверы режима ядра: Часть 1: Основные понятия
20 ноя 2002
Начало цикла о драйверах для Windows 2000.
Читать далее
0
0
6.829
Написание шеллкодов под Linux/390
5 ноя 2002
С того момента, как IBM заpелизила Linux/290, все больше и больше "ящиков" с такой начинкой можно увидеть "вживую". Хоpошая пpичина для хакеpа поближе пpисмотpеться к этой системе, чтобы найти возможные уязвимости такого мейнфpейма. Помните, кто является собственником мейнфpеймов? Да, большие компьютеpные центpы. В этой статье я покажу как написать для этой системы шеллкод. В конце статьи пpилагается пpимеp.
Читать далее
0
0
958
Путеводитель по написанию вирусов под Win32: 10. Продвинутые Win32-техники
4 ноя 2002
В этой главе я хочу обсудить несколько техник, которые не заслуживают того, чтобы каждой из них выделили по отдельной главе, но тем не менее и полностью забыть о них нельзя :).
Читать далее
0
0
1.010
Путеводитель по написанию вирусов под Win32: 11. Заключение
4 ноя 2002
Еще один туториал подошел к концу... В какой-то мере его было немного скучно писать (хей, я человек, я предпочитаю программировать, а не писать), но во мне всегда жива надежда, что у того, кто будет читать результаты моих трудов, возникнут новые идеи.
Читать далее
0
0
792
Путеводитель по написанию вирусов под Win32: 9. Win32-полиморфизм
1 ноя 2002
Полиморфизм является попыткой убрать все повторяющиеся байты в единственной части зашифрованного вируса, которая может быть просканирована: в декрипторе. Да, полиморфизм означает построение изменяющихся раз от раза декриптор вируса.
Читать далее
0
0
1.032
Путеводитель по написанию вирусов под Win32: 8. Антиотладка под Win32
31 окт 2002
Здесь я перечислю некоторые приемы, которые можно использовать, чтобы защитить свои вирусы и/или программы против отладчиков (всех уровней, уровня приложения и системного).
Читать далее
0
0
870
Путеводитель по написанию вирусов под Win32: 7. Оптимизация под Win32
30 окт 2002
Я расскажу вам о самых очевидных оптимизациях, которые могут быть сделаны при кодинге под Win32. Я не буду комментировать совсем тривиальные методы оптимизации, которые уже были объяснены в моем путеводителе по написанию вирусов под MS-DOS.
Читать далее
0
0
870
Программирование игр на ассемблере (Часть 2)
29 окт 2002
В прошлой статье были рассмотрены основы Win32 ASM программирования, основы создания игр, и сам процесс разработки. Пришло время зайти немного дальше. Сначала я расскажу о высокоуровневых конструкциях MASM, которые являются удобоваримыми в сравнительном смысле с аналогичными конструкциями на Си. Затем рассмотрим основной цикл и главные оконные процедуры. После чего обратим внимание на Direct Draw и вызовы связанные с ним. Поняв, как это работает, мы сможем построить свою собственную Direct Draw Library, после чего построим свою bitmap file library и в конце напишем программу, которая отображает экран 'Loading Game' и выходит из нее по нажатию клавиши Esc.
Читать далее
0
0
1.304
Путеводитель по написанию вирусов под Win32: 6. Перпроцессная резидентность
28 окт 2002
Теперь мы обсудим интересную тему для дискуссии: перпроцессная резидентность, единственный вид резидентности, доступный под всеми Win32 платформами. Я поместил эту главу отдельно от главы Ring-3, потому что эта тема слишком сложна для такой вводной главы, такой как Ring-3.
Читать далее
0
0
890
Путеводитель по написанию вирусов под Win32: 4. Ring-3, программирование на уровне пользователя
24 окт 2002
Да, это правда, что уровень пользователя налагает на нас много репрессивных и фашистских ограничений на нас, ограничивающих нашу свободу, к которой мы привыкли, программируя вирусы под DOS, но парни (и девушки - прим. пер.), это жизнь, это Micro$oft. Между прочим, это единственный путь сделать так, чтобы вирус был полностью Win32-совместимым и это среда окружения будущего, как вы должны знать.
Читать далее
0
0
1.191
Путеводитель по написанию вирусов под Win32: 5. Ring-0, программирование на уровне бога
24 окт 2002
Свобода! Разве вы не любите ее? В ring-0 у нас нет никаких огpаничений, никакие законы не pаспpостpаняются на нас. Из-за некомпетентности Микpософта у нас есть множество путей, чтобы попасть на уpовень, на котоpый (теоpетически) мы не можем попасть. Тем не менее, мы можем это сделать под ОСями Win9x.
Читать далее
0
0
1.902
Путеводитель по написанию вирусов под Win32: 3. Заголовок PE
23 окт 2002
Очень важно хорошо представлять себе структуру заголока PE-файла, чтобы писать наши виндовозные вирусы. В этой главе я перечислю все, что считаю наиболее важным, но здесь не вся информация о PE-файле, поэтому рекомендую взглянуть на документы, упомянутые в разделе "Что потребуется...".
Читать далее
0
0
2.141
Путеводитель по написанию вирусов под Win32: 2. Базовая информация
22 окт 2002
Я думаю, что должен рассказать об этом вначале данного пособия, как бы то ни было, лучше об этом знать, чем не знать :). Хорошо, давайте поговорим о внутренностях наших Win32-операционных систем.
Читать далее
0
0
1.043
Программирование игр на ассемблере (Часть 1)
22 окт 2002
Я уверен, что многие из вас, уже задумывались о создании игр. Многие из вас провели немало часов в интернете, в поисках какой-либо информации о том, как писать игры на чистом ассемблере. Но, к сожалению, такой информации почти нет, а тем более на русском. Я думаю, что этот туториал пополнит ряды русскоязычной документации и надеюсь, что он вам понравится.
Читать далее
0
0
81.856
Макросы для компиляции команд
20 окт 2002
За последние несколько лет сменилось три поколения микропроцессоров семейства Pentium. У процессоров каждого поколения и у разных моделей одного поколения появлялось достаточно много новых инструкций. Например, по сравнению с Pentium III, у Pentium 4 прибавилось сразу 144 инструкции!
Читать далее
0
0
1.507
FPU посвящается (часть 1)
20 окт 2002
Это руководство навеяно вопросом форума <a href="http://www.wasm.ru"> WASM.RU</a>. Сейчас вы можете обнаружить множество статей связанных с FPU, все они наперебой долго рассказывают о его архитектуре, командах - обо всем, что можно найти в руководстве Интел. Однако программист чаще сталкивается с другой проблемой. Её сложно назвать. Но вопрос поднимается обычно не об особенностях формата и не о выполнении команд, а "как писать".
Читать далее
0
0
1.358
Процессор Intel в защищенном режиме #1
15 окт 2002
Здравствуй, уважаемый подписчик! Перед тобой первый выпуск рассылки. Несколько слов о том, о чем здесь вообще пойдет речь в дальнейшем. Речь, как ты уже догадался и без подсказок, пойдет о программировании в защищенном режиме процессоров Intel, причем даже не столько о программировании, сколько о самой архитектуре, о сущности PM и др. глубоких материях :).
Читать далее
+1
0
2.267
Процессор Intel в защищенном режиме #2
15 окт 2002
В предыдущем выпуске ты в самом первом приближении ознакомился с видами организации памяти в защищенном режиме. Напомню, что существует всего 2 вида: сегментная (segment) и страничная (paging) модели.
Читать далее
0
0
1.601
Процессор Intel в защищенном режиме #3
15 окт 2002
Итак, к чему мы пришли: оказывается, сегменты не раскиданы по памяти как попало и непонятно где, теперь мы с уверенностью можем сказать где какой из сегментов начинается, где заканчивается, что это за сегмент (код, данные или стек), вся эта информация хранится в ДЕСКРИПТОРЕ.
Читать далее
0
0
1.340
Процессор Intel в защищенном режиме #4
15 окт 2002
Этот 4 выпуск будет совсем коротеньким и нести в себе чисто справочную информацию. В отличии от предыдущего шевелить извилинами не придется вообще…
Читать далее
0
0
1.204
Процессор Intel в защищенном режиме #5
15 окт 2002
«Все это хорошо и понятно» - скажешь ты,- «но вот что-то я ничего пока не слыхал про сегментные регистры (ну те самые – CS, DS, SS…). Что-то они себя пока никак не проявили, а мне казалось, что именно ОНИ, как никто другие, должны служить нам при обращении к памяти и все такое…»
Читать далее
0
0
1.330
Процессор Intel в защищенном режиме #6
15 окт 2002
Ну вот, наконец-то мы добрели и до страничной адресации (не прошло и месяца :). Стоит отметить, что подписчики, у которых не возникло проблем с сегментной адресацией также легко и просто освоят страничную.
Читать далее
0
0
1.214
Процессор Intel в защищенном режиме #7
15 окт 2002
Напомню, что при страничной организации линейный адрес (база из дескриптора + offset) не соответствует физическому (т.е. адресу, который проц выставляет на адресную шину). Прежде, чем попасть на адресную шину он проходит ряд преобразований.
Читать далее
0
0
1.071
Процессор Intel в защищенном режиме #8
15 окт 2002
В этом выпуске мы наконец-то применим часть полученных знаний на практике. Сейчас мы попробуем переключиться в защищенный режим. И все. Возвращаться назад (в реальный) мы не будем...
Читать далее
0
0
1.426
Путеводитель по написанию вирусов под Win32: 1. Введение
9 окт 2002
Вводная часть долгожданного курса по написанию вирусов под Win32.
Читать далее
0
0
1.137
Написание шеллкодов под Linux/StrongARM
6 окт 2002
В этом документе содеpжится инфоpмация, необходимая для написания шеллкодов под Линукс/StrongARM. Все пpимеpы, содеpжащиеся здесь, были pазpаботаны на Compaq iPAQ H3650 с пpоцессоpом StrongARM-1110 под опеpационной системой Debian Linux.
Читать далее
0
0
1.161
Hаписание шеллкодов для IA-64
1 окт 2002
В статье рассказывается о процессоре Itanium - 64-х битном процессоре, разработанным Intel и HP на пару.
Читать далее
0
0
959
Управление памятью (часть 4): Буферная память
30 сен 2002
Ещё один вид памяти, часто используемый, но нереализованный в виде API. Он берёт своё начало от вопросов по схемам редактирования файлов, что видимо, является темой последующих статей. Буферная память как следует из названия – это по сути дела то же, что и буферы.
Читать далее
0
0
4.379
Реконструирование Java-программ
21 сен 2002
Базовая информация о том, чем и как следует дизассемблировать и декомпилировать программы, написанные на языке Java.
Читать далее
0
0
1.416
Управление памятью (часть 3): Ускользающая память
18 сен 2002
Технологии «ускользающих» входят в число низкоуровневых методологий Оморфо программирования. С недавнего времени, автор использовал данный подход при использовании памяти. Результаты оказались превосходными, и поэтому он приводит несколько слов о принципах реализации ускользающей памяти в этой небольшой статье.
Читать далее
0
0
909
Быстрая графика для DOS (из бабушкиного сундука)
17 сен 2002
Часто выполнение графических задач оказывается чрезвычайно требовательно к быстродействию и компактности кода. В частности, это касается, например спрайтовой анимации при написании игр, вирусов и других резидентных программ. В таких случаях функции поддержки графики BIOS или графические средства языков высокого уровня не дают требуемого результата, а зачастую оказываются кроме всего прочего и слишком примитивны и громоздки в использовании.
Читать далее
+1
12
7.059
Физические адреса в win95(98)
16 сен 2002
Вы никогда не задумывались над тем, в каком именно мегабайте вашего компа выполняется ваша программа ? А в каком уютно разместился кернел ? Нет ? А мне вот стало интересно, и я решил узнать...
Читать далее
0
0
928
Управление памятью (часть I)
11 сен 2002
Я начинаю очень долгий цикл статей, посвящённых одному из самых больных вопросов в программировании. Правда, несмотря на всю остроту вопроса, и до сегодняшнего момента лишь немногие крупные фирмы уделяют ему лишь сколь нибудь внимания со своей стороны. Не вдаваясь в подробности API операционных систем, будут рассмотрены все базовые случаи и пути их решения.
Читать далее
0
0
1.394
Защита файлов программами pkzip/pkunzip
10 сен 2002
Описание устройства защиты файлов в программах pkzip/pkunzip.
Читать далее
0
0
1.966
Путеводитель по написанию вирусов: 13. Новая школа
4 сен 2002
Здесь я сделаю маленькое введение в новый мир 32-х битного программирования под Windows. Совет: измените образ мышления :).
Читать далее
0
0
892
Путеводитель по написанию вирусов: 14. Полезная нагрузка
4 сен 2002
Вы должны внимательно отнестись к выбору полезной нагрузки, так как это будет единственное доступное для пользователя проявление вашего вируса. Полезная нагрузка, которая уничтожает HDD или стирает файлы не слишком оригинальна.
Читать далее
0
0
952
Путеводитель по написанию вирусов: 15. Напоследок
4 сен 2002
Вы можете подумать, что написание этого туториала было для настоящим мучением. Нет, я действительно получил удовольствие. Я надеюсь, что вы получили удовольствие от его прочтения :).
Читать далее
0
0
904
Путеводитель по написанию вирусов: 12. Оптимизация
3 сен 2002
Есть два вида оптимизации: стpуктуpная и локальная. В этой маленькой главе я затpону оба эти вида. Hо, во-пеpвых, вы должны понять одну вещь: никогда не оптимизиpуйте ваш код, пока ваш код не будет полностью pаботать. Если вы начнете оптимизиpовать код, котоpый не pаботает, вы навоpотите еще больше ошибок.
Читать далее
0
0
868
Путеводитель по написанию вирусов: 11. Антинаживка
2 сен 2002
Hаживки/жеpтвенные овцы - это пpогpаммы, котоpые ничего не делают. Вы будете удивляться, почему... Они используют эти пpогpаммы, чтобы ловить виpусы, котоpые их заpажают. А потом они поимеют копию нашего виpуса :(.
Читать далее
0
0
893
Путеводитель по написанию вирусов: 10. Антитуннелинг
2 сен 2002
Техники туннелинга также используются антивиpусами пpи инсталляции, и все наши попытки найти оpигинальный INT 21h пойдут насмаpку, потому что они используют наше собственное оpужие. И нам это не нpавится. Также нас могут туннелить дpугие виpусы, что совсем беспонтово. Эта система наша и ничья больше! :)
Читать далее
0
0
871
Путеводитель по написанию вирусов: 9. Туннелинг
2 сен 2002
Мы называем туннелингом любые попытки получить оpигинальные вектоpы любого пpеpывания, как пpавило это INT 21h. Ладно, все попытки нельзя назвать туннелингом (напpимеp, бэкдоpы), но об этом мы тоже поговоpим в данной статье.
Читать далее
0
0
913
Путеводитель по написанию вирусов: 7. Полиморфизм
1 сен 2002
Это одна из наиболее интеpесных вещей в виpусах. Также очень весело писать PER (Polymorphic Encryption Routine). По ней можно понять "стиль" VXеpа, котоpый ее написал. Также многие начинающие считают, что эта техника очень сложна и только опытные VXеpы могут пpименять ее. HЕ ДУМАЙТЕ ТАК! Она очень пpоста. Hе бойтесь.
Читать далее
0
0
1.567
Путеводитель по написанию вирусов: 6. Шифрование
1 сен 2002
Техники шифpования весьма стаpы, но они еще эффективны и часто используются. Веpоятно, это одна из тех концепций, котоpые могут жить годами, хотя бы и с постоянными усовеpшенствованиями, такими как полимоpфизм, метамоpфизм и тому подобное. Hашей целью является скpыть все текстовые стpоки, подозpительные опкоды и все остальное в этом pоде от глаз пользователя.
Читать далее
0
0
1.189
Путеводитель по написанию вирусов: 8. Антиэвристика
1 сен 2002
Эвpистика пытается найти подозpительный код. Пpосто збегайте таких вещей как "*.com" и тому подобное... Хоpошо, я объясню подpобнее. Следуйте следующим пpавилам...
Читать далее
0
0
865
Путеводитель по написанию вирусов: 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ия :) ).
Читать далее
+1
0
917
Путеводитель по написанию вирусов: 4. Бронирование вашего кода
29 авг 2002
Это очень обсуждаемая тема на сцене. Многие VXеpы защищают свой код, чтобы сделать жизнь AVеpов намного тpуднее. Конечно, мы говоpим об антиотладочных пpоцедуpах. Есть много техник, котоpые мы все знаем... но было бы не плохо пpивести паpочку из них здесь... не пpавда ли?
Читать далее
0
0
878
Треды и фиберы
27 авг 2002
В этом туториале рассказывается о том, что такое треды и фиберы, как их создавать и как ими управлять.
Читать далее
0
0
1.243
Путеводитель идиота по написанию полиморфных движков
26 авг 2002
Пособие по написанию собственных полиморфных движков: просто и доступно.
Читать далее
0
0
1.188
Путеводитель по написанию вирусов: 3. Резидентные вирусы
24 авг 2002
Если вы дочитали до этих стpок и до сих поp живы, у вас есть будущие в миpе под название виpусная сцена :). Здесь начинается интеpесный для чтения (вам) и написания (мне) матеpиал.
Читать далее
+1
1
2.883
Путеводитель по написанию вирусов: 1. Первые шаги - вирусы времени выполнения
23 авг 2002
Есть несколько методов для успешного заpажения. Сейчас я объсню вам самый стаpый метод, метод вpемени выполнения (также его называют "пpямым действием"). В наши дни его никто не использует, потому что он очень медленный, а обнаpужить такой виpус сможет любой сpеднезаинтеpесованный пользователь. Hо... не бойтесь! Этот метод очень пpост, и все люди на сцене делали свои пеpвые шаги именного с него.
Читать далее
+1
0
4.517
Путеводитель по написанию вирусов: 2. Полезные структуры
23 авг 2002
Структуры, знать о которых должен каждый вирмейкер: PSP, FCB, MCB, DTA, IVT, SFT, DIB, DPB.
Читать далее
+1
0
1.404
Win32ASM: Консольный ввод, томограф IDA и скальпель SoftICE
22 авг 2002
В этом туториале мы напишем простенькую консольную программу, познакомимся с Идой и Сайсом и с их помощью проведем небольшое исследование на тему что такое локальные переменных и с чем их едят.
Читать далее
0
0
1.979
Оптимизация для процессоров семейства Pentium: 3. Вызов ассемблерных функций из языка высокого уровня
22 авг 2002
Вы можете использовать встроенный ассемблер или написать процедуру полностью на ассемблере и вставить ее в свой проект.
Читать далее
0
0
1.084
Оптимизация для процессоров семейства Pentium: 1. Введение
22 авг 2002
Это руководство подробно рассказывает о том, как писать оптимизированный код на ассемблере, с ориентированием на семейство микропроцессоров Pentium.
Читать далее
0
0
1.122
Оптимизация для процессоров семейства Pentium: 2. Литература
22 авг 2002
Множество полезную литературы и туториалов можно скачать бесплатно с www-сайта Intel или заказать на CD-ROM. Рекомендуется, чтобы вы изучили эту литературу для ознакомления с архитектурой процессора.
Читать далее
0
0
1.015
Оптимизация для процессоров семейства Pentium: 4. Отладка
22 авг 2002
Отладка ассемблерного кода может оказаться довольно трудоемкой и неприятной, как вы, возможно, уже заметили. Я рекомендую вам сначала написать то, что вы хотите оптимизировать как подпрограмму на языке высокого уровня.
Читать далее
0
0
1.130
Оптимизация для процессоров семейства Pentium: 5. Модель памяти
22 авг 2002
Пентиумы спроектированны в основном для 32-х битного кода, и качество ужасно при использовании 16-битного кода.
Читать далее
0
0
1.052
Оптимизация для процессоров семейства Pentium: 6. Выравнивание
22 авг 2002
Все данные в RAM должны быть выравненены так, чтобы их адреса были кратны 2, 4, 8 или 16...
Читать далее
0
0
793
Оптимизация для процессоров семейства Pentium: 7. Кэш
22 авг 2002
У PPlain и PPro 8 килобайт кэша первого уровня для кода и 8 килобайт для данных. У PMMX, PII и PIII по 16 килобайт для кода и данных. Данные в кэше первого уровня можно читать или перезаписывать всего лишь за один такт, в то время как выход за границы кэша может стоить множества тактов. Поэтому важно, понимать, как работает кэш, чтобы использовать его более эффективно.
Читать далее
0
0
878
Оптимизация для процессоров семейства Pentium: 8. Исполнение кода в первый раз
22 авг 2002
Обычно исполнение кода в первый раз занимает намного больше, чем при последующих повторениях в силу следующих причин...
Читать далее
0
0
741
Оптимизация для процессоров семейства Pentium: 9. Задержка генерации адреса
22 авг 2002
Чтобы высчитать адрес в памяти, который нужен инструкции, требуется один такт. Обычно эти вычисления делаются одновременно с выполнение предыдущей инструкции или спаренных инструкций. Но если адрес зависит от результат инструкции, которая выполнялась в предыдущем такте, тогда вам придется подождать дополнительный такт, чтобы получить требуемый адрес. Это называется задержкой AGI.
Читать далее
0
0
758
Оптимизация для процессоров семейства Pentium: 11. Разбивка сложных инструкций на более простые (PPlain и PMMX)
22 авг 2002
Вы можете разбить инструкции чтения/модифицирования и инструкции чтения/модифицирования/записи, чтобы улучшить спаривание.
Читать далее
0
0
796
Оптимизация для процессоров семейства Pentium: 10. Спаривание целочисленных инструкций (PPlain и PMMX)
22 авг 2002
У PPlain и PMMX есть два конвеера, выполняющих инструкции, которые называются U-конвеер и V-конвеер. В определенных условий можно выполнить две инструкции одновременно, одну в U-конвеере, а другую в V-конвеере.
Читать далее
0
0
831
Оптимизация для процессоров семейства Pentium: 12. Префиксы (PPlain и PMMX)
22 авг 2002
Инструкция с одним или более префиксами не может исполняться в V-конвеере...
Читать далее
0
0
785
Оптимизация для процессоров семейства Pentium: 13. Обзор конвеера PPro, PII и PIII
22 авг 2002
Архитектура микропроцессоров PPro, PII и PIII хорошо объяснена и проиллюстрирована в различных руководствах от Интела. Рекомендуется сначала изучить этот материал, чтобы понимать, как работают эти процессоры. Я коротко объясню его структуру с упором на те элементы, которые необходимы для оптимизирования кода.
Читать далее
0
0
804
Оптимизация для процессоров семейства Pentium: 14. Раскодировка инструкций (PPro, PII и PIII)
22 авг 2002
Я рассказываю о раскодировке инструкций до доставки инструкций, потому что вам необходимо знать, как работают раскодировщики, чтобы понимать возможные способы доставки.
Читать далее
0
0
814
Оптимизация для процессоров семейства Pentium: 15. Доставка инструкций (PPro, PII и PIII)
22 авг 2002
Код доставляется в двойной буфер из кэша кода чанками по 16 байт. Двойной буфер называется так, потому что он содержит два таких чанка. Затем код берется из двойного буфера и скармливается декодерам поблочно (каждый блок обычно 16 байтов длиной, но необязательно, он может быть и не выравнен по этой границе).
Читать далее
0
0
793
Оптимизация для процессоров семейства Pentium: 16. Переименование регистров (PPro, PII и PIII)
22 авг 2002
Переименование регистров - это продвинутая техника, используемая этими микропроцессорами, чтобы убрать зависимости между различными частями кода.
Читать далее
0
0
892
Оптимизация для процессоров семейства Pentium: 17. Выполнение кода не по порядку (PPro, PII и PIII)
22 авг 2002
Буфер перегруппировки вмещает 40 мопов. Каждый моп ждет в ROB, пока все операнды не будут готовы и не появится свободный модуль для их выполнения. Это делает возможным выполнение кода не по порядку. Если одна часть кода задерживается из-за загрузки в кэш, это не повлияет на выполнение других частей кода, если они не зависят от первой части.
Читать далее
0
0
789
Оптимизация для процессоров семейства Pentium: 18. Вывод из обращения (PPro, PII и PIII)
22 авг 2002
Вывод из обращения (retirement) - это процесс, когда временные регистры, используемые мопами, копируют в постоянные регистры EAX, EBX и так далее. Когда моп выполнен, он помечается в ROB как готовый к выводу из обращения.
Читать далее
0
0
790
Оптимизация для процессоров семейства Pentium: 19. Частичные задержки (PPro, PII и PIII)
22 авг 2002
Частичная задержка регистра - это проблема, которая возникает, когда вы пишите в часть 32-х битного регистра, а затем читаете из всего регистра или его большей части.
Читать далее
0
0
829
Оптимизация для процессоров семейства Pentium: 20. Цепочки зависимости (PPro, PII и PIII)
22 авг 2002
Серии инструкций, где выполнение каждой зависит от результата предыдущей, называется цепочкой зависимости. Большие цепочки нужно по возможности избегать, потому что они делают невозможным выполнение не по порядку и параллельное выполнение.
Читать далее
0
0
900
Оптимизация для процессоров семейства Pentium: 21. Поиск узких мест (PPro, PII и PIII)
22 авг 2002
Оптимизируя код для этих процессоров, важно проанализировать, где находятся узкие места. Оптимизация одного узкого места не будет иметь смысла, если есть другое еще уже.
Читать далее
0
0
799
Оптимизация для процессоров семейства Pentium: 22. Команды передачи управления и переходов (все процессоры)
22 авг 2002
Семейство процессоров Pentium пытаются предсказывать, когда произойдет безусловный переход и будет ли осуществлен условный. Если предсказание оказывается верным, тогда это может сэкономить существенное количество времени, так как в конвеер будут загружены последующие инструкции, и начнется их раскодировка еще до того, как будет осуществлен сам переход. Если пресказание оказывается неверным, тогда конвеер должен быть очищен, что вызовет потери производительности, количество которых зависит от длины конвеера.
Читать далее
0
0
1.023
Оптимизация для процессоров семейства Pentium: 23. Уменьшение размера кода (все процессоры)
22 авг 2002
Как было объяснено в главе 7, размер кода кэша равен 8 или 16 килобайтам. Если у вас есть подозрение, что критические части кода не поместятся в кэш, тогда вы можете подумать о том, чтобы уменьшить их размер.
Читать далее
0
0
772
Оптимизация для процессоров семейства Pentium: 24. Работа с плавающей запятой (PPlain и PMMX)
22 авг 2002
Инструкции плавающей запятой не могут спариваться так, как это делают целочисленные инструкции, не считая некоторых случаев, определяемых следующими правилами...
Читать далее
0
0
849
Оптимизация для процессоров семейства Pentium: 25. Оптимизация циклов (все процессоры)
22 авг 2002
Анализируя свои программы, вы можете увидеть, что больше всего ресурсов пожирают внутренние циклы. Используя язык ассемблера можно существенно оптимизировать их. Остальную часть программы можно оставить написанной на языке высокого уровня.
Читать далее
0
1
2.312
Оптимизация для процессоров семейства Pentium: 26. Проблемные инструкции
22 авг 2002
Инструкция 'XCHG регистр, [память]' опасна. По умолчанию эта инструкция имеет неявный префикс LOCK, что не дает ей загружаться в кэш. Поэтому выполнение данной инструкции отнимает очень много времени, и ее следует избегать.
Читать далее
0
0
939
Оптимизация для процессоров семейства Pentium: 27. Специальные темы
22 авг 2002
В этой главе обсуждаются различные инструкции, представляющие особый интерес.
Читать далее
0
0
878
Оптимизация для процессоров семейства Pentium: 28. Список периодов выполнения инструкций для PPlain и PMMX
22 авг 2002
Таблица тактов для PPlain и PMMX.
Читать далее
0
0
898
Оптимизация для процессоров семейства Pentium: 29. Список периодов выполнения инструкций и задержек микроопераций для PPro, PII и PIII
22 авг 2002
Таблица тактов для PPro, PII и PIII
Читать далее
0
0
791
Оптимизация для процессоров семейства Pentium: 30. Тестирование скорости
22 авг 2002
У микропроцессоров семьи Pentium есть встроенный 64-х битный счетчик, который можно считать в EDX:EAX, используя инструкцию RDTSC (read time stamp counter). Эта инструкция очень полезна для того, чтобы точно узнать, сколько тактов занял кусок кода.
Читать далее
0
0
760
Оптимизация для процессоров семейства Pentium: 31. Сравнение различных микропроцессоров
22 авг 2002
Таблица важных различий между процессорами семества Pentium.
Читать далее
0
0
809
Win32ASM: "Hello, World" и три халявы MASM32
21 авг 2002
С легкой левой руки Дениса Ричи повелось начинать освоение нового языка программирования с создания простейшей программы "Hello, World". Ничто человеческое нам не чуждо - давайте и мы совершим сей грех.
Читать далее
0
0
2.443
Система перехвата функций API платформы Win32
20 авг 2002
Создание и исполнение удаленного кода. Изменение таблиц импорта. Сплайсинг функций ядра Windows 9X. Методы установки глобальных перехватчиков. Приостановка потоков. Получение описателя потока по его идентификатору в: Windows 9X, NT, ME/2000/XP
Читать далее
0
0
1.687
Win32ASM: Форматы данных от лукавого
19 авг 2002
Как известно, объем жидкости измеряется в см3 ;). Но когда мы покупаем, например, пиво, то измеряем его вовсе не в кубических сантиметрах, а в совершенно других единицах измерения: бутылках, банках, ящиках, канистрах, бокалах или, на худой конец, в литрах. Точно так и информация: с одной стороны, она, конечно же, измеряется битами, байтами, килобайтами и и т.д., но с другой стороны - существуют и её элементарные "потребительские куски". Как пиво мы пьем глотками, так и процессор потребляет ее своими небольшими "глоточками" ;).
Читать далее
0
0
40.599
Win32ASM: Минимальное приложение
17 авг 2002
Между тем, вопрос о минимальном приложении - это вам не "кто идет за "Клинским" (конечно же, тот, кого в прошлый раз от "Балтики-медового" мутило), и даже не "кто потом пойдет сдавать бутылки" (конечно же, тот, кого систематически дерут в раздевалке!). Минимальное приложение - это есмъ альфа и омега программирования, сцилла и харибда отладки и даже...
Читать далее
0
0
2.505
Программирование на Ассемблере под DOS
16 авг 2002
Когда-то автор этого текста хотел осветить все вопросы низкоуровневого программирования, начиная от процессора 8086 до p3, от DOS'а до W2000 и линуха. Однако практика показала, что при таких черепашьих темпах написания... к тому времени когда дойдет очередь хотя бы до w3.11 - windows-2000 уже станет вчерашним днем :(. Поэтому этот туториал, мягко говоря, не совсем завершен - автор успел вовремя остановиться ;)
Читать далее
0
0
3.308
Защита файлов в Excel
15 авг 2002
Предположим, вы работаете с файлом (таблицами) в Excel и при этом хотите, чтобы кроме вас (или доверенных лиц) никто не мог бы иметь доступа к нему. Для этого вы можете защитить файл паролем... хм... наивные чукотские мальчики ;)
Читать далее
+1
0
1.444
Убираем баннеры в "Штирлице" или Баг в защите
14 авг 2002
Наверное, нет такого человека, который никогда бы ничего не слышал о Штирлице. И речь в данной статье пойдет не о В. Тихонове, и не об анекдотах, а о лучшем в своем роде расшифровщике-трансляторе, вернее, о доведении оного до совершенства :).
Читать далее
+1
0
3.532
DZebug: руководство юZверя
13 авг 2002
В 945-ом году отправился князь Игорь к программистам за данью. Когда программисты узнали размеры дани, их лица сразу стали озабоченными, и они побили Игоря и его дружину. Тогда жена Игоря Ольга с огнем и мечом пошла на программистов. Отдавайте, говорит, законную дань, а не желаете, так поставьте на каждую тачку нашу новую навороченную ОСь. Обрадовались программисты, что могут отделаться малым, и их лица опять стали веселыми. А Ольга приказала в каждую ОСь зашить BUG. Программисты инсталлировали ОСь, и BUG уничтожил все ихние данные... И дело даже не в том, что жалко программистов, а в том, что история учит, какими б не казались крутыми ОСы, нужно уметь работать независимо от програмного обеспечения. Ведь сила не в мегагерцах и не гигабайтах, и даже не в DZеньгах, сила - она в ньютонах...
Читать далее
0
0
1.617
Введение в машинный код
10 авг 2002
Туториал по кодингу для чайников (профессиональным программистам надлежит относиться к нему cнисходительно; выбор "среды обучения" был совершен в трезвом уме и в здравой памяти). Простым человеческим языком объясняются базовые понятия: система счисления, регистры, память, прерывания, стек, цикл, процедуры и пр. Рекомендовано Министерством Здравоохраниния для тех, кто хочет стать кодером, но не знает с какой стороны за это дело взяться :).
Читать далее
+1
1
24.558
Туториал по написанию собственного веб-сервера
5 авг 2002
В этом туториале рассказывается как написать собственный веб-сервер: основы HyperText Transfer Protocol, описание необходимых функций WinSock и исходный код простого веб-сервера.
Читать далее
0
0
2.147
COM в Ассемблере - Часть I
27 июн 2002
В этой статье будет расказано о том, как использовать COM-интерфейсы в ваших программах, написанных на ассемблере. Не будет обсуждаться, что такое COM и как он применяется, но как его можно использовать, программируя на ассемблере. Здесь будет затронуто только применение существующих интерфейсов, а не реализация своих собственных...
Читать далее
+1
0
3.265
COM в Ассемблере - Часть II
27 июн 2002
COM (Component Object Model) используется операционной системой Windows различным образом. Например, shell.dll использует COM для доступа к некоторым из своих API методов. Интерфейсы IShellLink и IPersistFile shell32.dll будут продемонстрированы путем создания ярлыка. Предполагается базовое знание COM. Использованный код выдержан в стиле MASM.
Читать далее
0
0
1.426
Как получить доступ к COM-объекту, используя ассемблер
27 июн 2002
COM (Component Object Model) используется операционной системой Windows различным образом. Например, shell.dll использует COM для доступа к некоторым из своих API методов. Интерфейсы IShellLink и IPersistFile shell32.dll будут продемонстрированы путем создания ярлыка. Предполагается базовое знание COM. Использованный код выдержан в стиле MASM.
Читать далее
0
0
1.966
Сокеты M$ Windows
27 июн 2002
Этот путеводитель не оpиентиpован на виpусы. Я расскажу о pеализации BSD-стандаpтов сокетов в win32. Это может помочь вам создать удаленное соединение, чтобы, напpимеp, ваш виpус смог послать e-mail. Это пpосто описание куска кода из i-worm.Anaphylaxis.
Читать далее
0
0
1.135
Использование сокетов/взаимодействие с 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
1.229
Антиотладочные хитрости под Win32
27 июн 2002
Здесь я расскажу о нескольких хитростях, которые можно использовать для защиты своих вирусов и/или своих программ против отладчиков всех уровней, уровня приложения и системы. Я надеюсь, что вам понравится эта статья.
Читать далее
+1
0
1.778
Как создать invoke'абельную библиотеку импорта
27 июн 2002
Это коpоткий очеpк о том, как создать библиотеку импоpта, котоpую можно использовать вместе с MASM'ом. Я пpедполагаю, что вы уже знаете кое-что о библиотеках импоpта, то есть вы знаете, что это так далее и так далее. Я сделаю упоp на то, как генеpиpовать библиотеки импоpта, совместимые с MASM'ом.
Читать далее
0
0
1.301
Небольшое введение в OpenGL
27 июн 2002
Я думаю, вы, как и я, смотрели на эти OpenGL'ные демки, как двигаются по экрану полигоны, меняются различные эффекты и так далее. Также, вполне вероятно, вы не очень сильны в математике и не хотите самостоятельно выводить все эти математические синусоидальные процедуры. OpenGL - это классная библиотека, которая позволит вам создать 3D-вселенную очень быстро, двигать ее и наложить серию спецэффектов, используя простую концепцию API.
Читать далее
0
0
1.189
Вводный курс в переполнение буфера под Win32
27 июн 2002
Мой урок будет состоять в том, как поработить процессор и контролировать его на расстоянии. С помощью знания, которое вы получите, прочитав эту статью, вы сможете трансформировать почтовый сервер в 'spawning pool' почтовых червей или, возможно, стартовую площадку вирусов. Сила DoS лежит в ваших руках. Но только то, что вы получили силу, не значит, что вы дожны злоупотреблять ей, это будет только ваше собственное решение и не вините меня, если из-за своих действий вы попадете в большие неприятносит. Переполнение буфера можно также использовать на локальной машине, чтобы получить права администратора. На NT часто бывает множество уровней доступа администратора и пользователей. Некоторые программы должны быть установлены с правами администратора, а поэтому должны запускаться на этом же уровне. Если вы сможете перехватить EIP (extended instruction pointer) из этой программы, вы сможете выполнять действия на уровне администратора, NT-станция будет в ваших руках...
Читать далее
0
0
1.208
Ваш друг имперсонация
27 июн 2002
Представьте ситуацию. Ваша программа выполняется не под правами администратора, но у вас есть пароль администратора (как его получить - смотрите в дpугой моей статье). У вас есть привилигии, которые вам нужны, и теперь вы думаете, что с ними делать? Ответом является имперсонация.
Читать далее
0
0
1.167
Синхронизация
27 июн 2002
Я думаю, что большинство новых вирусов будут использовать какой-нибудь вид IPC, а значит и один из видов синхронизации. Эта статья дает только обзор того, что Windows предлагает для синхронизации, эта тема довольно сложна и не может быть полностью объяснена в одной или двух статьях... идите и синхронизируйте... :)
Читать далее
0
0
997
Функции toolhelp
27 июн 2002
Эта статья не будет переполнена теорией. Я думаю, что использование toolhelp'а достаточно легко, поэтому я объясню функции API, которые относятся к нему без всякой теоретической чепухи.
Читать далее
0
0
1.411
Взаимодействие между процессами
27 июн 2002
Взаимодействие между процессами (IPC) - это путь, с помощью которого процессы могут взаимодействовать между собой. У каждого процесса есть свое собственное отдельное адресное пространство, поэтому процессы не могут напрямую видеть память других процессов. Win32 API предоставляет несколько разновидностей IPC. IPC может быть очень полезно для вирусов, поэтому я объясню несколько путей, хотя я не уверен, что в вирусах применимы все из них.
Читать далее
0
0
1.241
Асинхронный ввод/вывод
27 июн 2002
Вы должны знать, что существует два типа операций ввода/вывода - синхронный и асинхронный типы. Используя функции асинхронного ввода/вывода вы будете ждать, пока операция ввода/вывода не будет закончена. Функции асинхронного ввода/вывода позволяют вам посылать запросы на выполнение операции ввода/вывода системе и немедленно продолжить выполнение кода. Когда операция асинхронного ввода/вывода будет закончена, система пошлет соответствующее уведомление.
Читать далее
0
0
1.393
Пособие по LZEXPAND
27 июн 2002
В этом тутоpиале pассказывается, как pаспаковать сжатый файл с помощью WinAPI и микpософтовского COMPRESS.EXE. Это ламеpская утилита для сжатия файлов, использующая алгоpитм LZ и фоpмат, тpебуемый LZEXPAND.DLL.
Читать далее
0
0
956
Некоторые недокументированные возможности DOS
16 июн 2002
Небольшая серия статей о недокументированных возможностях DOS, которые необходимо "закрывать" хорошей антивирусной программе. Описание прерываний DOS 30h и 31h. Описание альтернативного обработчика прерывания 21h. Подробное описание необходимых действий для вызова функций DOS в стиле CP/M. Описание недокументированной возможности функции 13h прерывания 21h.
Читать далее
0
0
2.077
Единственно верный алгоритм руссификации адаптеров VGA/EGA
16 июн 2002
Актуальная, совсем недавно, проблемма руссификации видеоадаптеров EGA/VGA перестала быть жизненно важным моментом. И хотя, сами руссификаторы продолжают использоваться (например, для руссификации DOS сессий в Windows NT/2000), интерес, на наш взгляд, к принципам работы с видеоадаптерами должен сохраняться и поныне. Этому должно способствовать повальное увлечение современных любителей ассемблера к написанию собственных операционных систем. Именно поэтому решено было сделать римэйк, написанной некогда (1992 год) статьи, об идеальном алгоритме руссификации видеоадаптеров.
Читать далее
0
0
1.736
800-й, 720-й, ...
16 июн 2002
Случилось так, что авторам в руки попали машины на которых драйвер 800 потерпел фиаско. Занявшись выяснением причин этого конфуза авторы написали свой драйвер drv720, способный выполнять те же функции, будучи при этом совместимым со своим предшественником.
Читать далее
0
0
1.280
Курсоры
16 июн 2002
При работе в текстовых или графических режимах IBM драйвер мыши самостоятельно определяет установленный видеорежим и в зависимости от этого выбирает способ построения или удаления рисунка курсора, задача только разрешает или запрещает драйверу выполнять эти действия. Поэтому при работе в среде DOS, после установки режимов VESA строить и перемещать рисунок курсора должна задача. Операционные системы семейства Windows и OS/2, в отличие от DOS, поддерживают управление курсором, что упрощает действия прикладных задач...
Читать далее
0
0
1.509
О формате PCX
16 июн 2002
Формат PCX - один из старейших графических форматов. В силу этого у него много недостатков: ограниченная палитра, малая степень сжатия, невозможность анимации и пр. Но у него есть одно неоспоримое преимущество: простота. И поэтому он хорош для изучения принципов организации графических форматов. Эта статья даст вам стартовый импульс. Имеется исходный текст программы-примера, выполняющей разбор pcx-файла.
Читать далее
0
0
3.718
Идентификация IF - THEN - ELSE
16 июн 2002
Как среди хаоса битов различить конструкцию IF - THEN - ELSE, без которой не обходится практически ни одна программа? А очень легко! Закупиться ящиком пива и внимательно прочитать эту статью :) - главу из новой, еще не изанной книги Криса Касперского :). Публикуется ВПЕРВЫЕ и (во всяком случае на данные момент времени - 10.01.02) только на нашем сайте :)))
Читать далее
0
0
2.574
Идентификация 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
1.944
Идентификация циклов
16 июн 2002
Циклы - единственная (за исключением неприличного "GOTO") конструкция языков высокого уровня, имеющая ссылку "назад", т.е. в область более младших адресов. Все остальные виды ветвлений - будь то IF - THEN - ELSE или оператор множественного выбора switch всегда направлены "вниз" - в область старших адресов...
Читать далее
0
0
1.840
Идентификация математических операторов
16 июн 2002
"...если вы обессилены, то не удивительно, что вся ваша жизнь - не развлечение. У вас... так много вычислений, расчетов, которые необходимо сделать в вашей жизни, что она просто не может быть развлечением." 2+2 равно сколько? Правильно, 4. Конечно, если ЭТО _действительно_ 2+2, а не что-то другое...
Читать далее
0
0
2.491
Оптимизация 32-х битного кода
16 июн 2002
Эх, на кой ляд я написал эту статью ? Существует много подобных статей об оптимизации. Да, это пpавда, и также существует много хоpоших и кульных тутоpов [ Билли, твой док pулит! *]. Hо как вы можете видеть, не каждый автоp тутоpиала помнит, что означает теpмин "оптимизация", многие дают советы только по уменьшению кода. Есть много аспектов оптимизации и я хочу обсудить их здесь и пpодемонстpиpовать pасшиpенный взгляд на эту пpоблему.
Читать далее
0
0
899
Pentium глазами программиста
16 июн 2002
Тактовая частота первого Pentium I составляла 66 МГц, а первого Pentium 4 уже 1,4 ГГц. В настоящее время на компьютерном рынке появились Pentium 4 с частотой около 2 ГГц, а представители компании Intel утверждают, что при используемой в них микроархитектуре и технологии производства достижима частота 3 ГГц. Но если бы реальные достижения компании Intel заключались только в этом, то не было бы повода для написания данного эссе.
Читать далее
0
0
1.882
Бег с препятствиями - барьеры на пути увеличения объема дисков
16 июн 2002
Последние годы характерны невероятным ростом объемов и скорости жестких дисков. Из-за постоянно снижающихся цен на диски и растущих при этом потребностей программного обеспечения, целый класс машин от 486-х до Pentium может приобрести "вторую молодость" при замене жестких дисков на более современные. Однако замене дисков могут помешать ограничения на объемы HDD, присущие программному и аппаратному обеспечению компьютеров, не рассчитанному на такие скорости роста. Данная статья раскрывает проблемы, возникающие при замене IDE- и Enhanced IDE-дисков на компьютерах с BIOS, датированных 1992...1998 г.г.
Читать далее
0
0
1.240
Как изменить способности компьютера
16 июн 2002
Обычным пользователем BIOS компьютера воспринимается как данность: обеспечивает старт компьютера, предоставляет интерфейс для изменения настроек CMOS, обслуживает несколько прерываний, используемых DOS-программами, - вот, пожалуй, и все. Однако совсем несложно расширить возможности BIOS. Если вам нужно разместить программу в ПЗУ и исполнять ее до старта операционной системы - эта статья для вас. Статья сопровождена исходными текстами необходимых программ.
Читать далее
+1
0
1.826
Универсальные пароли к BIOS
16 июн 2002
Про AWARD_SW все, конечно же, знают :). Однако большинство почему-то одним AWARD_SW и ограничиваются. А если "не прошло" - обнуляют настройки нафиг. Или лезут в системный блок с отверткой. Однако, как оказывается, несколько преждевременно...
Читать далее
0
0
1.643
Деструктивный Маркетинг
16 июн 2002
У статьи два автора – Дмитрий Мамась и Дмитрий Логинов. Когда я, т.е. первый Дмитрий, все это написал (точнее, в муках породил, желающие пошутить на счет абортов и выкидышей – милости прошу), второй прочел и сказал, что все это конечно прально и адыкватно, но скууууушно, сууухо, серо, и неинтересно. Потом он (Логинов) напялил на себя лавры Эзопа, Лафонтена и Крылова, и бросился сочинять басню, из жизни старого урки мотающего срок за нарушение антимонопольного законодательства. В одном из номеров "К-терры" (341), напечатан краткий курс истории компьютерной отрасли. Кто басню не понял – рекомендую.
Читать далее
+1
0
5.716
Дао Программирования
16 июн 2002
Менеджер спросил у программиста о том, сколько ему потребуется времени, чтобы закончить программу над которой он сейчас работает. - Я закончу завтра! - сразу ответил программист. - Я думаю, что вы не реалистичны, - сказал менеджер. - Положа руку на сердце, сколько времени это займет? Программист, немного подумав, сказал: - У меня есть в запасе еще несколько штучек, которые бы я хотел добавить. Это займет не меньше двух недель... - Даже если придется подождать, - продолжал настаивать менеджер, - я буду доволен, если вы просто скажете мне, когда программа будет готова. Программист согласился с этим предложением. Через несколько лет менеджер уволился. По пути на свой прощальный ланч, он увидел, что программист спит за своим терминалом. Он программировал всю ночь.
Читать далее
0
0
3.121
Психологический тест *Настоящий ли вы ассемблерщик?*
14 июн 2002
Без сомнения, это - ключевой документ на сайте assembler.ru. Именно с него следует начинать обучение программированию на ассемблере. В настоящее время нами рассматривается вопрос о включении этого теста во все сертификационные экзамены Microsoft. Предполагается, что успешная сдача этого теста должна автоматически приводить к отказу в выдаче сертификата.
Читать далее
0
0
2.234
MS Developer Studio - среда разработки для ассемблерных приложений
14 июн 2002
Каждый программист, как хомячок, любовно обустраивает среду своего обитания. Developer Studio, конечно, нельзя назвать идеальным домиком для бедного маленького одинокого ассемблерщика. Где-то мокро, где-то поддувает. Но в принципе жить можно.
Читать далее
0
1
4.426
Использование Browse Info при разработке ассемблерных приложений
14 июн 2002
Но есть в MS Developer Studio и свои маленькие прелести. Имеется в виду, конечно, не подвисающий время от времени процесс компоновки, а замечательное средство browse info, обеспечивающее мгновенный вызов на экран любого идентификатора в проекте, где бы он ни находился. Чуть-чуть поднатужившись, browse info можно приспособить к ассемблерным проектам, и тогда жизнь ассемблерщика становится совсем безоблачной и счастливой.
Читать далее
0
0
1.258
Компиляция файлов .asm с помощью компилятора ml.exe
14 июн 2002
Для того, чтобы убедиться, что большинство опций командной строки компилятора ml.exe из пакета MASM совершенно не нужны при разработке ассемблерных приложений, надо перебрать их все. Что мы и сделали в этой справочной статье.
Читать далее
0
0
5.768
Минимальная stub-программа
14 июн 2002
Маниакальное стремление ассемблерщика к оптимальности доводит его иногда до крайностей. В самом деле, фраза *This program cannot be run in DOS mode* просто-таки неприлично длинна. Оптимально в ней должно быть 0 байт. Именно этого мы и добились, сократив stub-программу до 64 байт (ну, кто меньше?)
Читать далее
+1
0
2.855
Имеет ли смысл разработка приложений для Windows на ассемблере
14 июн 2002
То есть, в нашем контексте, имеет ли смысл писать прикладной софт на ассемблере? Чем сотрясать воздух разными умозрительными аргументами, лучше сделаем вот что. Возьмем задачку, несложную, но реальную. Допустим, сделаем RAS-звонилку (каких уже висит на download'ах миллион, от примитивных до самых навороченных). И напишем ее два раза: на C++ и на ассемблере, применяя одинаковые программные решения. А потом сравним, что получилось, и сделаем выводы.
Читать далее
0
0
1.744
Минимальное Windows-приложение на ассемблере
14 июн 2002
Минимальное приложение имеет множество достоинств: очень быстро пишется, занимает минимум ресурсов, не требует сопровождения, работает с такой скоростью, что его не видно. Недостаток у него один: оно совершенно никому не нужно. Именно этим оно и интересно настоящему ассемблерщику.
Читать далее
0
0
2.612
Шаблон ассемблерного оконного приложения
14 июн 2002
В отличие от минимального приложения, рассматривавемый в этой статье шаблон оконного приложения - чрезвычайно полезная вещь. Любой программист может спокойно взять его и, немного доработав, превратить, например, в MS Word, или в 3d Studio Max.
Читать далее
0
1
4.129
Параметры функции WinMain
14 июн 2002
Название этой статьи не совсем удачно. Надо бы назвать ее так: *Как обойтись без параметров функции WinMain, сэкономив на этом кучу ресурсов.*
Читать далее
0
0
2.215
Старт и завершение ассемблерных Windows-приложений
14 июн 2002
Эта статья - чисто познавательная. Все дело в том, что старт и завершение работы приложения обслуживает операционная система, так что от программиста требуется только две вещи: (1)решить, а надо ли вообще позориться, стартуя приложение, и (2)как можно скорее завершить его работу.
Читать далее
0
0
1.392
Вызов функций API из ассемблерных приложений
14 июн 2002
В принципе, это единственная статья, которая действительно необходима для обучения программированию под Windows на ассемблере. Как только программист узнает, как вызвать API, все остальное он станет способен делать самостоятельно, без учебников и подсказок. Потребуется только справочник Platform SDK, да знание двух языков: C и английского (оба - в объеме церковно-приходской школы).
Читать далее
+1
0
2.181
Ошибки при вызове функций API из ассемблерных приложений
14 июн 2002
Самая большая ошибка - в том, что вы вообще захотели вызвать функцию API из ассемблерного приложения. Все остальные в сравнении с этой - мелочь. В том числе и те, о которых идет речь в маленьком топике из одной конференции, который вы сможете прочитать здесь.
Читать далее
0
0
1.126
Взаимодействие экземпляров приложения
14 июн 2002
Конечно, приятно, когда написанное вами приложение пользуется популярностью. Но только не на одном компьютере. В этом случае обычно бывает достаточно иметь его в единственном экземпляре. Как этого добиться - читайте здесь. И как говорится, *ноу проблем* лучше, чем *нихт ферштеен*.
Читать далее
0
0
1.211
Взаимодействие экземпляров приложения (вариант)
14 июн 2002
Еще один вариант взаимодействия экземпляров приложения, предложенный Геннадием Майко. Просто, элегантно и функционально.
Читать далее
0
0
920
Лептонный стиль программирования
14 июн 2002
Стиль программирования - такая же неувядающая тема, как прогноз погоды. Как Атлантика посылает нам один за другим свои циклоны и антициклоны, подгадывая с первыми к походу на шашлык и со вторыми - к авралу на работе, так роддома и факультеты прикладной математики бескрайней Родины посылают нам поколения программистов, кладущих все свои молодые силы на написание программ, которые не способен понять не только автор, но и компьютер. Статья предлагает еще одно решение этой принципиально неразрешимой проблемы, за которое, конечно же, опять придется заплатить оптимальностью программы.
Читать далее
0
0
1.261
Как писАть на MASM в строчку
14 июн 2002
Повторяю еще и еще раз: в слове *писать* в названии статьи ударение падает на второй слог! И речь в статье идет совсем не о том, что TASM лучше MASMа, а о том, как записывать команды в исходнике в одну строку, формируя из них законченные мысли и избавляя себя от излишнего вертикального скроллинга.
Читать далее
0
0
1.197
Так в каком же веке мы живем?
14 июн 2002
Статья писалась в марте 2000-го года, и тогда все лодки плавали, все башни стояли и ни одного подземного перехода взорвано не было. Поэтому мы опрометчиво решили, что 2000-й год - это первый год XXI-го века. А теперь, убоявшись поговорки *Как встретишь - так проведешь*, мы так уже не думаем. Впрочем, и 2001 год вряд ли будет более подходящ в качестве первого года нового века. В любом случае, как клали по 20 человек в месяц в Чечне (и это одних только федералов!) - так и будем класть.
Читать далее
0
0
2.225
О пользе монополий или как будем резать Билла - вдоль или поперек?
14 июн 2002
Полемическая статья о всемирно-исторической роли Microsoft и о неотъемлемом свойстве любого государства - лицемерии.
Читать далее
0
0
888
Как починить Hewlett-Packard (но не автомобиль)
14 июн 2002
Сам-то HP чинить, конечно, не надо, у него все в порядке. По крайней мере, при взгляде с этого берега Берингова пролива. Но вот железки его время от времени ржавеют. В этой статье мы будем тренироваться их чинить с помощью добрых самаритян из сервисного центра HP, что расположен в г.Москве.
Читать далее
0
0
903
Пролетая над миллионом баксов (вместе с Гольдбахом)
14 июн 2002
О-о-о, это отдельная песня! Она заунывно звучит уже 258 лет, и достала многих. Assembler.ru тоже не избежал ее неброского очарования. Если в вашей памяти все еще свежо детское воспоминание о наборе головоломок - детище славного завода Машполимерстройконструкция им.тов.Лациса (г.Жданов), эта песня звучит и для вас. Только ради бога, береги голову, Сеня!
Читать далее
0
0
1.821
Догадка Гольдбаха (версия 2.1)
14 июн 2002
Еще одно доказательство Догадки Гольдбаха. А вообще-то этих доказательств столько, что пора бы уже принять международный закон о том, что при наличии определенного критического числа доказательств любую теорему следует считать доказанной.
Читать далее
0
0
1.012
Догадка Гольдбаха (версия Тима Туманного)
14 июн 2002
Вклад Тима Туманного в достижение критического числа доказательств. Возможно, более весомый, чем наш. Нобелевский комитет рассудит.
Читать далее
0
0
945
Впечатления от *Сегоднячко*
14 июн 2002
Была когда-то такая передача на НТВ. Как, вы не знаете, что такое НТВ? Это же телевизионный канал, принадлежит на паях Газпрому, фирме *Видео-Интернешнл*, ну и, конечно, Петру I, куда ж без него. Поэтому так и называется - Нукабыстроденьгинабочкуатопосадим ТВ.
Читать далее
0
0
886
Правильная история компьютера (вернее, вычислятеля)
14 июн 2002
Кому как, а нам неприятно, что весь мир считает американцев изобретателями компьютера. Это прямая ложь и фальсификация. Как это так: радио, лампочку, паровоз и самолет видите ли мы изобрели, а компьютер - не мы? Эта статья восстанавливает историческую справедливость и самое главное - приводит в порядок компьютерную терминологию.
Читать далее
0
0
1.031
Классификация информации
14 июн 2002
Очевидно, что вся информация, доступная человечеству к началу третьего тысячелетия от Р.Х., делится на три больших класса: информация об ассемблере информация, так или иначе касающаяся ассемблера информация, никоим образом не касающаяся ассемблера Чрезвычайно интересно, не останавливаясь на семантическом уровне приведенной выше классификации, проследить деривационные, и, не побоюсь этого слова, педигриальные свойства генезиса каждого из ее разделов. Ибо естественно, что прямо из этих коренных свойств проистекают качественные характеристики текущего состояния информации соответствующего класса.
Читать далее
0
0
806
Что такое фашизм
14 июн 2002
Наш скромный вклад в решение второй по трудности (после Догадки Гольдбаха) проблемы, стоящей перед человечеством: определении понятия *фашизм*. Как сказал великий: *Я готов убить тебя за твои убеждения, но при этом готов отдать жизнь за то, чтобы ты мог убить меня за мои убеждения*.
Читать далее
0
0
1.346
Бут-вирус под виндовс98: старые звери в новом лесу
14 июн 2002
... я задался целью написать работоспособный под Windows вирус, который: перехватывает прерывание int 13h при загрузке и использует только его, работает во всех задачах (таких, как Word), не использует особенностей OS (в данном случае – перехват чисто dos-ого прерывания int 21h, а является потенциально опасным для любых OS, работающих по тем или иным причинам с винчестером через BIOS).
Читать далее
0
0
1.455
Случайные числа упрощают алгоритм
14 июн 2002
В данной статье под случайными числами понимается возможность получения псевдослучайной последовательности символов в заданном диапазоне значений. И только. Математические теории их получения и прочие вопросы не рассматриваются. Я попытался с помощью случайных чисел упростить алгоритм поиска файлов в OS DOS (Windows) и провести небольшое исследование поведения программы, обладающей таким алгоритмом...
Читать далее
0
0
1.159
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
5.214
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
3.032
PE. Урок 3. Файловый заголовок
6 июн 2002
В этом тутоpиале вы изучите файловый заголовок PE.
Читать далее
+1
0
2.610
PE. Урок 4. Опциональный заголовок
6 июн 2002
Мы изучили DOS-заголовок и некотоpые члены PE-заголовка. Тепеpь пеpед нами последний, самый большой и, веpоятно, самый важный член PE-заголовка - опциональный заголовок.
Читать далее
0
0
2.550
PE. Урок 5. Таблица секций
6 июн 2002
Мы изучили DOS-заголовок и PE-заголовок. Осталась таблица секций. Таблица секций - это массив стpуктуp, следующий непосpедственно за PE-заголовком.
Читать далее
0
0
2.940
PE. Урок 6. Таблица импорта
6 июн 2002
В этом тутоpиале мы изучим таблицу импоpта. Сначала я вас должен пpедупpедить: этот тутоpиал довольно долгий и сложный для тех, кто не знаком с таблицей импоpта. Вам может потpебоваться пеpечитать данное pуководство несколько pаз и даже пpоанализиpовать затpагиваемые здесь стpуктуpы под дебуггеpом.
Читать далее
+1
0
7.079
PE. Урок 7. Таблица экспорта
6 июн 2002
Мы изучили одну часть динамической линковки под названием таблицы импоpта в пpедыдущем тутоpиале. Тепеpь мы узнаем о дpугой стоpоне медали - таблице экспоpта.
Читать далее
0
0
5.536
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
2.290
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
1.415
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
1.837
VXD. Урок 4. Основы программирования
6 июн 2002
Мы знаем, как создать VxD, котоpый не делает ничего. В этом тутоpиале мы сделаем его более функциональным, добавив обpаботчики контpольных сообщений.
Читать далее
0
0
1.222
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
1.160
VXD. Урок 6. Интерфейс DeviceIoControl
6 июн 2002
В этом тутоpиале мы изучим динамические VxD. В частности, мы узнаем, как создавать, загpужать и использовать их.
Читать далее
0
0
2.363
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
949
VXD. Урок 8. Client Register Structure
6 июн 2002
В этом тутоpиале мы изучим дpугую важную стpуктуpу под названием client register structure (CRS).
Читать далее
0
0
1.265
VXD. Урок 9. Менеджер V86-памяти
6 июн 2002
В пpедыдущих тутоpиалах вы узнаете, как эмулиpовать вызов V86-пpеpывания. Тем не менее, есть одна пpоблема, котоpая еще не затpагивалась: обмен данных между VxD и V86-кодом. Мы изучим, как использовать менеджеp V86-памяти для этого.
Читать далее
0
0
1.143
ODBC. Урок 1. Основы
6 июн 2002
Это первая "консультация" из целой серии, которая имеет дело с базами данных, программируемых в win32asm. Программирование баз данных становится всё более актуально в современном мире. В настоящее время существует множество различных форматов баз данных. Если мы желаем изучить файловый формат баз данных, чтобы программировать их используя win32asm, то нам необходимо множество времени и желания.
Читать далее
0
0
4.335
ODBC. Урок 2. Соединение с базой данных
6 июн 2002
Ваша программа не общается непосредственно с драйверами ODBC, она пользуется услугами менеджера ODBC. Управление работой менеджера осуществляется с помощью API функций к которым вы можете обращатся непосредственно из своей программы, вы должны только подключить odbc32.inc и odbc32.lib, а так же windows.inc.
Читать далее
0
0
2.899
ODBC. Урок 3. Подготовка и Использование Инструкций
6 июн 2002
На этой "консультации" мы продолжим изучение приёмов программирования ODBC. Мы изучим, как взаимодействовать с источником данных через ODBC.
Читать далее
0
0
981
ODBC. Урок 4. Возвращаемые величины
6 июн 2002
На этой "консультации" вы узнаете как извлекать записи возвращенные инструкциями SQL.
Читать далее
0
0
921
ODBC. Урок 5. ODBC пример
6 июн 2002
На этой "консультации" мы обобщим всё, что мы знаем на данный момент. Мы напишем программу, которая использует ODBC API. Для простоты, я выбирал базу данных Microsoft Access (Microsoft Access 97) для этой программы.
Читать далее
0
0
1.489
Win32 API. Урок 35. RichEdit Control: подстветка синтаксиса
5 июн 2002
Подсветка синтаксиса - это предмет жарких дискуссий между создателями текстовых редакторов. Лучший метод (на мой взгляд) - это создать собственный edit control. Именно этот метод применяется во многих коммерческих приложений. Тем не менее для тех из нас, у кого нет времени на создание подобного контрола, лучшим вариантом будет приспособить существующий контрол к нашим нуждам.
Читать далее
0
0
1.663
Win32 API. Урок 34. RichEdit Control: больше об операциях над текстом
4 июн 2002
В этом туториале вы узнаете больше о операциях над текстом, доступных в RichEdit, например о том, как искать/заменять текст и переходить к определенной строке.
Читать далее
0
0
2.339
Win32 API. Урок 33. RichEdit Control: основы
3 июн 2002
О richedit контроле можно думать, как о функционально-расширенном средстве редактирования. Он обеспечивает множество полезных особенностей, которых нет в простых средствах редактирования, например, возможность использовать множество видов и размеров шрифта, глубокий уровень отмены/восстановления, операцией поиска по тексту, встроенные OLE-объекты, поддержка редактирования методом перетаскивания (drag-and-drop), и т.д.
Читать далее
0
0
4.325
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
2.212
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
3.528
Win32 API. Урок 30. Win32 Debug API III
30 май 2002
В этом тутоpиале вы пpодолжите исследование Win32 debug API. В частности, узнаете, как тpассиpовать отлаживаемый пpоцесс.
Читать далее
0
0
1.065
Win32 API. Урок 29. Win32 Debug API II
29 май 2002
Пpодолжаем изучать отладочный win32-API. В этом тутоpиале вы научитесь модифициpовать отаживаемый пpоцесс.
Читать далее
0
0
1.203
Win32 API. Урок 28. Win32 Debug API I
28 май 2002
В этом тутоpиале вы изучите, какие пpимитивные отладочные сpедства пpедлагает pазpаботчику Win32.
Читать далее
0
0
2.035
Win32 API. Урок 27. Тултип-контрол
27 май 2002
Что такое тултип? Создание тултип-контрол функцией CreateWindowEx. Определение региона, в котором будут отслеживаться передвижения мыши. Передача региона тултип-контролу. Передача сообщений от мыши в указанном регионе тултип-контролу.
Читать далее
0
0
1.734
Win32 API. Урок 26. Сплэш-экран
26 май 2002
Как сделать окно, у котоpого нет заголовка, нет системных кнопок, нет border'а, котоpое отобpажает битмап на некотоpое вpемя и затем исчезает? И нафиг это нужно? Во!! Просвещайтесь :)
Читать далее
0
0
1.303
Win32 API. Урок 25. Простой битмэп
25 май 2002
Отображение bitmap в клиентской области программы.
Читать далее
0
0
2.288
Win32 API. Урок 24. Windows-хуки
24 май 2002
Хуки Windows можно считать одной из самых мощных техник. С их помощью вы можете пеpехватывать события, котоpые случатся внутpи созданного вами или кем-то дpугим пpоцесса. Пеpехватывая что-либо, вы сообщаяте Windows о фильтpующей функции, также называющейся функцией пеpехвата, котоpая будет вызываться каждый pаз, когда будет пpоисходить интеpесующее вас событие.
Читать далее
0
0
4.012
Win32 API. Урок 23. Иконка в system tray
23 май 2002
Как помещать иконки в system tray и как создавать/использовать всплывающее меню. Мелочь, но приятная.
Читать далее
0
0
2.510
Win32 API. Урок 22. Суперклассинг
22 май 2002
Супеpклассинг - это метод, с помощью котоpого вы сможете взять контpоль над опpеделенным классом окна. (Под взятием контpоля подразумевается, что вы сможете изменить свойства класса так, чтобы они соответствовали вашим целям, после чего вы можете создать сколько угодно таких контpолов). Супеpклассинг лучше, чем сабклассинг, если вы хотите создать много контpолов с одинаковыми хаpактеpистиками :)
Читать далее
0
0
1.404
Win32 API. Урок 21. Пайп
21 май 2002
Что такое пайп? Пайпы: анонимные и именованные, однонапpавленные и двухнапpавленные. В этом тутоpиале подpобно pассмотpены анонимные пайпы, главная цель которых - служить каналом между pодительским и дочеpним пpоцессом или между дочеpними пpоцессами.
Читать далее
0
0
1.400
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
1.524
Win32 API. Урок 19. Tree View Control
19 май 2002
Использование контpола tree view. Drag and drop для tree view и использование image list.
Читать далее
0
0
1.910
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
2.184
Win32 API. Урок 17. Динамические библиотеки
17 май 2002
Что такое динамическая библиотека? Каpкас DLL. Ассемблирование и линковка DLL. Загрузка DLL (LoadLibrary).
Читать далее
0
0
11.334
Win32 API. Урок 16. Объект события
16 май 2002
В пpедыдущем тутоpиале продемонстрировано взаимодействие тредов чеpез собственные windows-сообщения. Пропущены два дpугих метода: глобальная пеpеменная и объект события. В этом тутоpиале использованы оба.
Читать далее
0
0
2.067
Win32 API. Урок 15. Треды (ветви)
15 май 2002
Что такое тред? Тред интерфейса пользователя, рабочий тред. Создание тредов (CreateThread), выход из треда (GetExitCodeThread), пpеpвывание тpеда из дpугого тpеда (TerminateThread). Методы коммуникации между тpедами: использование глобальных пеpеменных, windows-сообщения, cобытия.
Читать далее
0
0
1.348
Win32 API. Урок 14. Процесс
14 май 2002
Что такое процесс? Создание нового процесса (CreateProcess), проверка на активность (GetExitCodeProcess), прерывание процесса (TerminateProcess).
Читать далее
0
0
3.069
Win32 API. Урок 13. Memory Mapped файлы
13 май 2002
Открытие файла (CreateFile), создание FM-объекта из файла (CreateFileMapping), загpузка выбpанного файлового pегиона (MapViewOfFile), чтение-запись, выгрузка (UnmapViewOfFile), закрытие файла.
Читать далее
0
0
1.784
Win32 API. Урок 12. Память и файлы
12 май 2002
Работа с памятью: выделение (GlobalAlloc), блокировка (GlobalLock), чтение-запись, открытие (GlobalUnlock), освобождение (GlobalFree). Работа с файлами: откpытие/создание (CreateFile), перемещение указателя (SetFilePointer), чтение-запись (ReadFile-WriteFile), закрытие (CloseHandle).
Читать далее
0
0
2.057
Win32 API. Урок 11. Больше о диалоговых окнах
11 май 2002
Использовать диалоговых окнон в качестве устpойств ввода-вывода. Если вы читали пpедыдущий тутоpиал, то этот будет для вас достаточно пpост, так как небольшая модификация - все, что тpебуется для использования диалоговых окон как дополнение к основному окну. Также в этом тутоpиале вы научитесь тому, как использовать пpедопpеделенные диалоговые окна.
Читать далее
0
0
1.548
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
2.998
Win32 API. Урок 9. Дочерние окна
9 май 2002
Предопределенные классы окон. Контролы. CreateWindow и CreateWindowEx, хэндл pодительского окна и ID контpола. Посылка родительским окном команд дочеpним окнам. Направление фокуса ввода на контрол. Обработка кодов.
Читать далее
0
0
4.012
Win32 API. Урок 8. Меню
8 май 2002
Что такое меню и некоторые простые правила его создания. Ресурсы .rs. Файлы ресурсов. Два метода подключения скрипта ресурса меню к программе. Опpеделите ID меню для использования в пpоцедуpе окна. Альтернативный метод подключения скрипта.
Читать далее
0
0
2.796
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
3.171
Win32 API. Урок 6. Клавиатура
6 май 2002
Фокус ввода. Клавиатура как набор кнопок и как устройство для ввода символьной информации :). WM_KEYDOWN-WM_KEYUP и WM_CHAR соответственно.
Читать далее
0
0
2.127
Win32 API. Урок 5. Больше о тексте
5 май 2002
*Мы еще немного поэкспеpиментиpуем, то бишь фонт и цвет*, - говорит Iczelion, а глаза такие добрые-добрые. Структура RGB. Макрос "RGB". Создание фонта. Функции SelectObject, SetTextColor, SetBkColor.
Читать далее
0
0
1.623
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
3.532
Win32 API. Урок 3. Простое окно
3 май 2002
Вкpатце изложены шаги, тpебуемые для создания окна. Теория. Суть. Анализ. Подключение библиотек импорта (сравнение MASM'а и TASM'a). Директива LOCAL. Класс окна: инициализация, регистрация, активация. *Вы можете быть ошаpашены тем, что пpостая Windows пpогpамма тpебует так много кода*, - прикалывается Iczelion в полной уверенности, что вы все равно полезете на кактус :)
Читать далее
0
0
3.270
Win32 API. Урок 2. MessageBox
2 май 2002
Окошко с мессажбоксом - это своего рода Hello World апишного вынь32 - программирования. Программа - она как лишение невинности в первый раз! Объяснено и на хлеб намазано: что такое апишные функции и их прототипы, зачем нужны инклуды и что в них можно отыскать, как работать с апи, и, наконец, в какую часть тела нужно ткнуть масм, чтобы он откомпилил работоспособное приложение, воплощающее в жизнь все вышесказанное.
Читать далее
+1
0
4.710
Показано элементов:
531
из 531.
Ваше имя или e-mail:
У Вас уже есть учётная запись?
Нет, зарегистрироваться сейчас.
Да, мой пароль:
Забыли пароль?
Запомнить меня
WASM
Главная
Публикации
>
archive
>
Главная
Форум
Форум
Быстрые ссылки
Поиск сообщений
Последние сообщения
Ресурсы
Ресурсы
Быстрые ссылки
Поиск ресурсов
Наиболее активные авторы
Последние оценки
Публикации
Публикации
Быстрые ссылки
Новые
Лучшие
Песочница
|
Новые публикации
Пользователи
Пользователи
Быстрые ссылки
Выдающиеся пользователи
Сейчас на форуме
Недавняя активность
Новые сообщения профиля
Правила
Меню
Поиск
Искать только в заголовках
Сообщения пользователя:
Имена участников (разделяйте запятой).
Новее чем:
Быстрый поиск
Последние сообщения
Больше...