| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 3.94.202.172
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 PHP Эксплоит Windows Server 2008 qip Virtual chroot kernel proc sysctl tune FreeBSD bridge Boot Disk Bluetooth GEO game directx Emulator Python Shell DDoS червь Conficker вирус троян Лаборатория Касперского пиратство apple iPhone ИТ-отрасль Щеголев Microsoft экономический кризис Twitter социальная сеть анонимность Лицензия Open Source ASP.NET MVC уязвимость MySQL база данных файлообмен закон франция пират Skype мобильный Deutsche Telekom Хакер киберпреступник Trend Micro кибератака Германия робот утечка данных персональные данные ноутбук интернет Китай цензура ядро Linux Торвальдс Windows Vista Acer Linux патент браузер Firefox Internet Explorer Opera Net Applications Safari Intel Linux Foundation Moblin Oracle патч банкомат кардер HSM IBM X-Force Cofee сша кибервойна Эстония Dell ИТ-специалист хакерские атаки Pirate Bay контроль кибербезопасность язык программирования The Pirate Bay Пиратская партия утечка информации приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 Баллмер взлом Пентагон ботнет Украина Facebook Cisco cloud Windows XP нетбук торрент музыка биометрический nokia ФБР IP-адрес CIPAV Comcast sms RSA java Google CAPTCHA Symantec спам конфиденциальная информация инсайдер Perimetrix антивирус тест Anti-Malware Windows 7 операционная система Windows провайдер авторское право RapidShare UNIX свиной грипп шантаж дети EFF BluWiki копирайт экстремизм Panda Security cloud computing McAfee Cybercrime Response Unit Bottle Domains HTTPS ICANN студент шпионское ПО Норвегия школьник New York Times XSS YouTube Warner Music кибершпионаж КНДР Ubuntu свободное ПО AMD ATI касперский Россия РФ сервер хостинг фальшивый антивирус Comodo CA Wi-Fi D-Link суд пароль блог фишинг Одноклассники медведев контрафакт мошенник штраф Sony GPS по Gumblar JAVASCRIPT хакеры вредоносное ПО Yahoo ФАС компьютер Софт MPAA кибероружие PandaLabs Red Hat Минкомсвязи сбой ASUSTeK Computer мошенничество Доктор Веб ВКонтакте Cyber-Arc исходный код PCI DSS МВД фильтр порнография BREIN свобода слова Казахстан GEMA Autodesk сисадмин Gmail кредитная карта кибермошенник LiveJournal шифрование криптография Deep Purple банк нанотехнологии Wikipedia zero-day ColdFusion выборы кража данных DNS BIND Android BASIC атака Black Hat Mac OS X Click Forensics Clampi домен фсб Прокуратура Уголовное дело icq Barrelfish киберпреступность Sophos AT&T ошибка Electa Gamma Knife OpenBSD DARPA военные Сайт Visual Studio 2010 .NET Framework 4 Chrome OS электронная почта турция конференция спамер FTC полиция российская ОС Koobface Великобритания БЕЛОРУССИЯ грузия BSA Bittorrent облачные вычисления Azure Европа Dr.Web Билл Гейтс спецслужбы Cryzip Живой Журнал Royal Bank of Scotland смартфон Canonical Pwn2Own F-Secure Symbian Hotmail фильм

Главная » Статьи

Всего материалов в каталоге: 441
Показано материалов: 1-50
Страницы: 1 2 3 ... 8 9 »

Взгляд на то, как эксплуатируются уязвимости систем и почему существуют эксплоиты.
Общие Статьи | Просмотров: 2845 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

Статья про реализацию модели безопасности от Дмитрия Садовникова, исследовательский центр Positive Research
Общие Статьи | Просмотров: 1971 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

Репутационные базы сейчас становятся основой информационной безопасности. Связано это с тем, что нет единственной надёжной технологии защиты от всех угроз, но защититься от нападений можно только комплексно, по совокупности признаков.
Общие Статьи | Просмотров: 2385 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

Данный документ освещает теоретические аспекты работающих во время выполнения шифровщиков и описывает эталонную реализацию Portable Executables (PE) [1]: файлового формата динамических библиотек (DLL), объектных файлов и обычных исполняемых файлов Windows.
Общие Статьи | Просмотров: 2335 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

Ключевой задачей данного документа является обсуждение бэкдоров на хостинговых Windows-серверах и обход файрволов.
Общие Статьи | Просмотров: 2778 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

Одна из основных задач любого антивируса (AV) заключается в отслеживании активности всех процессов. Вредоносные программы, в свою очередь, хотят избежать своего детектирования антивирусом.
Общие Статьи | Просмотров: 2022 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

Привет всем! В этом блоге мы поделимся техническим анализом и эксплуатацией критической уязвимости (CVE-2012-0217), которой подвержен гипервизор Xen.
Общие Статьи | Просмотров: 2044 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

Предыдущие две части были посвящены тому, как устроена система SIEM и зачем интегрировать ее со сканером уязвимостей. В них я рассказывала о корреляционных механизмах — неотъемлемой части функциональных способностей SIEM. Без корреляции событий SIEM превращается в простой «логгер», что попросту делает нерентабельным внедрение этого дорогостоящего решения. Постараюсь изложить материал как можно проще, чтобы поняли все, вне зависимости от квалификации. Поэтому не обращайте внимания на нарочно допущенные небольшие ляпы
Общие Статьи | Просмотров: 2492 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

ASLR — это Address Space Layout Randomization, рандомизация адресного пространства. Это механизм обеспечения безопасности, который включает в себя рандомизацию виртуальных адресов памяти различных структур данных, чувствительных к атакам. Расположение в памяти целевой структуры сложно предугадать, поэтому шансы атакующего на успех малы.
Общие Статьи | Просмотров: 1752 | Добавил: aka_kludge | Дата: 18.12.2012 | Комментарии (0)

Процедуру PIN/TAN банковской аутентификации можно и обойти — оказывается обмануть Ситибанк даже легче, чем ты думаешь.

Онлайн-банкинг является очень популярным в Европе. По данным Центрального кредитного комитета в 2011 году было проведено 93,6 миллиона транзакций через Интернет. Для защиты и аутентификации сделок в Европе принят на равне с СМС подтверждением, так называемый безопасный PIN/TAN метод.

Общие Статьи | Просмотров: 1983 | Добавил: aka_kludge | Дата: 06.12.2012 | Комментарии (0)

Безопасность виртуальных систем сейчас модный тренд, и мы не станем обходить его стороной. Ниже мы попробуем исследовать самое сердце инфраструктуры VMware — сервер с установленным vCenter. Пользоваться при этом мы будем только олдскульными методами, никак не связанными с виртуальными технологиями.
Общие Статьи | Просмотров: 1897 | Author: Алексей Синцов | Добавил: aka_kludge | Дата: 06.12.2012 | Комментарии (0)

Эра облачных вычислений постепенно вошла в нашу жизнь, принеся с собой множество плюсов для системных администраторов, которые теперь могут управлять целыми сетевыми фермами серверов, не вставая с удобного кресла. Однако там, где есть виртуальные машины, должна быть и виртуальная сеть, их связывающая. Небольшую виртуальную сеть создать просто, а вот когда речь заходит о десятках и сотнях виртуальных машин, без качественного виртуального коммутатора не обойтись.


Общие Статьи | Просмотров: 2380 | Добавил: aka_kludge | Дата: 06.12.2012 | Комментарии (0)

На сегодняшний день, несмотря на укрепление позиций своих конкурентов, PHP остается самым популярным языком для разработки веб-приложений. Вместе с тем старый добрый PHP продолжает пользоваться популярностью у взломщиков. Причем если раньше под их прицел попадали уязвимые PHP-скрипты, то сейчас все чаще — баги самого интерпретатора.
Общие Статьи | Просмотров: 2396 | Author: Raz0r | Добавил: aka_kludge | Дата: 06.12.2012 | Комментарии (0)

Мало кто из владельцев iPhone или iPad задумывается о том, что их любимый девайс постоянно держит связь с серверами Apple. Это необходимо, чтобы реализовать некоторые интересные фичи, например возможность удаленно удалить все данные с безвозвратно потерянного девайса. Но вот вопрос: так ли защищен этот механизм и не может ли заюзать его кто-то другой для доступа к твоему смартфону?
Общие Статьи | Просмотров: 2266 | Author: Алексей Трошичев | Добавил: aka_kludge | Дата: 06.12.2012 | Комментарии (0)

Pictured above is the front-end, first mixer and IF amplifier of an experimental GPS receiver. The leftmost SMA is connected to a commercial antenna with integral LNA and SAW filter. A synthesized first local oscillator drives the bottom SMA. Pin headers to the right are power input and IF output. The latter is connected to a Xilinx FPGA which not only performs DSP, but also hosts a fractional-N synthesizer. More on this later.

I was motivated to design this receiver after reading the work [1] of Matjaž Vidmar, S53MV, who developed a GPS receiver from scratch, using mainly discrete components, over 20 years ago. His use of DSP following a hard-limiting IF and 1-bit ADC interested me. The receiver described here works on the same principle. Its 1-bit ADC is the 6-pin IC near the pin headers, an LVDS-output comparator. Hidden under noise but not obliterated in the bi-level quantised mush that emerges are signals from every satellite in view.

 All GPS satellites transmit on the same frequency, 1575.42 MHz, using direct sequence spread spectrum (DSSS). The L1 carrier is spread over a 2 MHz bandwidth and its strength at the Earth's surface is -130 dBm. Thermal noise power in the same bandwidth is -111 dBm, so a GPS signal at the receiving antenna is ~ 20 dB below the noise floor. That any of the signals present, superimposed on one another and buried in noise, are recoverable after bi-level quantisation seems counter-intuitive! But the magic of DSSS makes it possible, of course.
Общие Статьи | Просмотров: 3092 | Добавил: aka_kludge | Дата: 10.08.2012 | Комментарии (0)

Совсем недавно в паблике появилась информация о новом интересном подходе к эксплуатации уязвимостей класса LFI с помощью бесполезной на первый взгляд функции phpinfo() и временных загрузочных файлов. Берем на вооружение этот полезный прием.
Общие Статьи | Просмотров: 3347 | Author: Рома Романыч | Добавил: LeadyTOR | Дата: 27.01.2012 | Комментарии (0)

Киберпреступники используют одни и те же технологии и тактики в течение многих лет, но компании по-прежнему не в состоянии защититься от них.

В сети, в печатных изданиях, на ТВ и по радио, репортаж за репортажем нам сообщает, что эта новая злонамеренная атака была "еще изощреннее чем все, что мы видели до этого". СМИ похоже хотят, чтобы мир поверил в то, что взломы дело рук неумолимых сверх-хакеров, с супер-передовыми инструментами, которых просто невозможно остановить.

Общие Статьи | Просмотров: 1235 | Добавил: LeadyTOR | Дата: 27.09.2011 | Комментарии (0)

В этой статье мы попытаемся разобраться, зачем нужна технология GPGPU (General-purpose graphics processing units, Графический процессор общего назначения) и все связанные с ней реализации от конкретных производителей. Узнаем, почему эта технология имеет очень узкую сферу применения, в которую подавляющее большинство софта не попадает в принципе, и конечно же, попытаемся извлечь из всего этого выгоду в виде существенных приростов производительности в таких задачах, как шифрование, подбор паролей, работа с мультимедиа и архивирование.
Общие Статьи | Просмотров: 2389 | Author: Евгений Зобнин | Добавил: LeadyTOR | Дата: 27.09.2011 | Комментарии (0)

В докладе компании McAfee о состоянии потенциальных угроз в первой четверти этого года указывалось наличие 6 млн выявленных уникальных образцов вредоносного программного обеспечения. В этом смысле 1 квартал 2011 года оказался самым результативным по числу выявленных вредоносных программ в сравнении с аналогичными периодами всех прошлых лет. В отчете McAfee было отмечено, что устройства Android все чаще превращаются в разносчиков вредоносных программных средств. По мнению специалистов Android в первом квартале этого года стал вторым по популярности среди злоумышленников мобильным объектом для вторжения после Symbian.
Общие Статьи | Просмотров: 1584 | Author: Динеш Шетти (Dinesh Shetty) | Добавил: aka_kludge | Дата: 27.09.2011 | Комментарии (0)

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

  • IDA
  • Наборы системных файлов для разных билдов Windows
  • Отладочные символы
  • msdn

Приступим непосредственно к исследованию. Сначала приведу прототип функции SetTimer (в процессе изложения удобно иметь его перед глазами)

Просмотров: 1 | Author: lhc645 | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

Опытным реверсерам или русификаторщикам наверняка попадались программы, написанные на VB. Что удивительно, про редактирование форм и контролов на них вообще на данный момент нет никакой информации. Это надо исправлять, чем мы и займемся :)

Вообще, русификаторщики, реверсеры и просто продвинутые пользователи :) давно привыкли юзать Restorator или Resource Hacker для редактирования интерфейса программ. К сожалению, эти утилиты никак не видят ресурсы VB программ. Формат, в котором они хранятся, в принципе, не сложный, но кому охота писать отдельный редактор ресурсов чисто под VB? Что поделать, придется изучать этот формат самим. Для начала разберем, как найти эти самые ресурсы в VB проге. Начнем с рассмотрения оригинальной точки входа в программу. Чтобы на нее перейти из HEX редактора HIEW нам потребуется лишь загрузить EXE'шник в данный HEX редактор и нажать поочереди Enter, Enter, F8, F5. У кого хиев купленный, знают как оптимизировать эту операцию до командной строки, но это так, к слову. Нашему взгляду будет представлено примерно следующее:

Просмотров: 1 | Author: GPcH | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

Привет всем. Сегодня поговорим о простом, но, тем не менее, эффективном методе обхода фаервола Kaspersky Internet Security 7.0 – сетевого экрана, компонента одной из самых популярных и известных защит для персонального пользователя на сегодняшний день. Кто-то хвалит данный продукт, кто-то им восхищается, а кто-то откровенно недолюбливает =) Есть за что или нет, решать Вам. Тут будут только факты. Рассмотрим самую свежую на данное время версию 7.0.0.125. Факт обхода будет заключаться в скрытой отправке данных, лик, утечка - ну как угодно. Доказательства концепции не будет, дабы не сильно радовать наших младших братьев – скрипт-киддисов. Кому надо код можно написать вместе с отладкой за 30 минут. Меньше слов – больше дела.

Существует очень известная и чрезвычайно распространенная техника – инжект. О ней много написано, и большинство из того, что написано, уже детектируется нашем сегодяшним подопытным кроликом. Суть техники сводится к исполнению кода уже доверенного приложения, каким угодно способом. Большинство пользователей, у которых есть Интернет пользуются браузером, а стало быть и серфят Интернет с помощью браузера, а следовательно, должно быть правило в сетевом экране, которое разрешает браузеру по умолчанию передавать данные на 80 порт любому серверу. Отлично, будем этим пользоваться – инжектим код в браузер, и от его имени передаем или получаем данные. Ну, это-то знают все =) А как инжектится? Как обойти преграду проактивной защиты KIS? Просто, даже очень.

Просмотров: 0 | Author: Mental_Mirror | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

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

Итак, имеется:

  • Total Calculator v2.02 – TCalc.exe, размер 36 864 байт
  • Блокнот – стандартный notepad.exe (Windows XP), размер 66 048 байт.

Добавим функциональность одного в другой.

Порядок наших действий будет такой:

  • Реверс инжиниринг TCalc.exe
  • Добавление кода и данных в notepad.exe
  • Написание кода взаимодействия приложения с добавленным кодом
Просмотров: 1 | Author: GMax | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

Процессор Intel X86 содержит в своём составе восемь 32 – разрядных отладочных регистров, из которых используется только шесть, это DR0 – DR3, DR6 и DR7, обращение к которым производится с помощью привилегированной команды ассемблера MOV. Команда выполняется, либо в реальном режиме работы процессора, либо в защищищённом, на нулевом кольце защиты. Регистры позволяют установить четыре аппаратных точки останова одновременно. Ниже приводится детальное описание каждого из используемых регистров.

DR7 – регистр управления отладкой, назначение битов такое:

Просмотров: 0 | Author: Rom Lameroff | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

Многие почему то считают, что Visual Basic это примитивный язык программирования, который не может компилировать программы, работать с адресами переменных в памяти и не позволяющий вставлять ассемблерные процедуры в код. Так вот, все это неправда. Начиная с версии 5.0 данный язык позволяет компилировать программы в Native Code, а также имеется возможность работы с адресами переменных в памяти (для этого существует функция varptr). Ассемблерные процедуры вставлять тоже можно, но не так просто. Для этого я написал уже 2 части статьи по вставке ассемблерных процедур в код на Visual Basic. Эти статьи можно найти на сайте www.dotfix.net. Как видите, недостатков у VB не так уж и много, а преимуществ настолько много, что я расскажу лишь о самых очевидных и важных:

  • Полноценная компиляция и маленький размер получаемых exe файлов. Несмотря на то, что программы требуют библиотеку MSVBVM60.DLL, это не является недостатком, так как эта библиотека интегрированная во все новые операционные системы и таскать ее вместе с приложением не нужно.

  • Простота написания кода. Все удобно и наглядно. Даже начинающий может писать неоптимизированные, но рабочие программы. Как говориться, умеешь писать качественно - пиши, от этого программы будут только лучше. Не умеешь - можешь писать неоптимизированные проги (переменные объявлять не обязательно, преобразовывать типы данных тоже не обязательно). Но постепенно приходят более глубокие познания и можно писать крупные проекты, не сильно уступающие аналогам на C++ или Delphi по скорости работы, но на разработку которых уходит гораздо меньше времени.

    Так вот, начинающие исследователи программ почему то считают, что программы, написанные на VB невозможно сломать. Если программа скомпилирована в pcode - я частично с ними соглашусь, но даже для этого вида компиляции уже написано множество отладчиков, способных понимать псевдокодовые инструкции. Что же касается Native Code, то тут все ломается также, как и любая другая программа, написанная например на C++ или Delphi. Но есть ряд особенностей. Все операции, которые выполняет программа выполняются с использованием узкоспециализированных функций из библиотеки MSVBVM60.DLL. Имена этих функций напоминают операторы Visual Basic'а, поэтому глядя на названия большинства из них, можно понять, какие операции они позволяют выполнять. Но есть и такие, которые не поддаются логике. О них я и расскажу в данной статье.

    Просмотров: 0 | Author: GPcH | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

    В данной статье я хочу показать, как пишутся плагины для API-шпиона kerberos 1.01

    Самого шпиона можно взять на  WWW.WASM.RU (раздел Утилиты)

    Без поддержки плагинов - создание нового API-шпиона имело бы мало смысла, т.к. можно было бы использовать любой другой. С другой стороны свои плагины дают возможность безграничного контроля над функциями используемыми приложением и самим приложением тоже.

    Общие аспекты:

    1. Одновременно может работать только один плагин

    2. Файл плагина всегда называется ke_plug.dll

    3. Плагин считается установленным, если лежит в директории с ke_core.dll

    Просмотров: 0 | Author: Rustem | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

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

    Не бойтесь сетей Петри – за вычурным определением скрывается простейший, интуитивно понятный даже ребенку механизм. Для начала определим основные понятия из теории, без которых, к сожалению, дальнейшее продвижение просто невозможно: сеть Петри состоит из четырех элементов: множество позиций  (схематически обозначаются кружками), множества переходов  (обозначаются черточками), входной функции  и выходной функции . Входная и выходная функции связаны с переходами и позициями. Входная функция  отображает переход  в множество позиций , называемых входными позициями перехода. Выходная функция  отображает переход  в множество позиций , называемых выходными позициями перехода. Ориентированные дуги (стрелки) соединяют позиции и переходы, при этом некоторые дуги направлены от позиций к переходам, а другие – от переходов к позициям.

    Маркировка  - присвоение фишек позициям сети Петри. Фишка – примитивное понятие сетей Петри. Фишки используются для определения выполнения сети Петри.

    Выполнением сети Петри управляют количество и распределение фишек в сети. Фишки находятся в кружках (позициях) и управляют выполнением переходов сети. Сеть Петри выполняется посредством запуска переходов. Переход может запускаться только в том случае, когда он разрешен.

    Переход называется разрешенным, если каждая из его входных позиций имеет число фишек по крайней мере равное числу дуг из позиции в переход. Прочитайте предыдущее предложение еще пару раз. Например, если позиции  и  служат входами для перехода , тогда  разрешен, если  и  имеют хотя бы по одной фишке:

    Просмотров: 0 | Author: Broken Sword | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

    Что собираемся делать ?

      Объект исследования: программа, использующая для защиты hasp-key

      Инструменты: Soft-Ice (под '98), hiew

      Цель: изучение win32-программ, обладающих защитой в нулевом кольце и hasp

      Документация/источники: статья "Програмная эмуляция HASP ключей By exefoliator, 2000", утилита haspgrab

      Примечание: это есть поверхностный анализ защиты такого типа, приношу свои извинения знатокам hasp'ов за возможно "наивные" рассуждения :)

    Состав защиты

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

    Просмотров: 0 | Author: Chingachguk / HI-TECH | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

    Что собираемся делать ?

      Объект исследования: программа, использующая для защиты hasp-key

      Инструменты: Soft-Ice (под '98), hiew

      Цель: изучение win32-программ, обладающих защитой в нулевом кольце и hasp

      Документация/источники: статья "Програмная эмуляция HASP ключей By exefoliator, 2000", утилита haspgrab

      Примечание: это есть поверхностный анализ защиты такого типа, приношу свои извинения знатокам hasp'ов за возможно "наивные" рассуждения :)

    Состав защиты

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

    Просмотров: 0 | Author: Chingachguk / HI-TECH | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

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

      В первой статье был приведен поверхностный анализ защиты без исследования ее механизма: было приведено лишь поверхностное описание, которое также содержало ошибки (впочем, непринципиальные). В этой статье я собираюсь привести более детальное описание структуры защиты, полный код эмулятора отклика драйвера защиты, включающий в себя простейший эмулятор функций хасп-ключа. Вместе с этим хочу подчеркнуть, что ни в коей мере не претендую на уникальность исследования этой защиты: первенство, безусловно, принадлежит С-лю и M-o. Новым (возможно) является метод перехвата функций драйвера и обход контроля целостности драйвера.

    Просмотров: 0 | Author: Chingachguk / HI-TECH | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

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

      В первой статье был приведен поверхностный анализ защиты без исследования ее механизма: было приведено лишь поверхностное описание, которое также содержало ошибки (впочем, непринципиальные). В этой статье я собираюсь привести более детальное описание структуры защиты, полный код эмулятора отклика драйвера защиты, включающий в себя простейший эмулятор функций хасп-ключа. Вместе с этим хочу подчеркнуть, что ни в коей мере не претендую на уникальность исследования этой защиты: первенство, безусловно, принадлежит С-лю и M-o. Новым (возможно) является метод перехвата функций драйвера и обход контроля целостности драйвера.

    Просмотров: 0 | Author: Chingachguk / HI-TECH | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

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

      В первой статье был приведен поверхностный анализ этой защиты, исследовалась возможность эмуляции ключа на уровне команд ввода-вывода и необходимые действия для борьбы с приложением, препятствующим перехвату ввода-вывода (регистры отладки DRx).

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

      Первая и вторая части были посвящены ключу для LPT-порта, обладающему памятью порядка 128 байт и содержащему одну "секретную" функцию SeedCode. В настоящем документе будет исследоватся защита, основанная на другом ключе, использующем USB-порт. Различие этих ключей, конечно, не в том, что они используют различные интерфейсы, но в том, что новый ключ (предположительно Hasp Time 4) способен реализовать по крайней мере две новые функции (кроме новой SeedCode): функцию таймера и функцию типа Decrypt_Data - расшифровка указанной последовательности. Все исследования относительно ключа носят оценочный характер и не претендуют на полноту, однако прога все же запускается ;)

    Просмотров: 0 | Author: Chingachguk / HI-TECH | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

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

      В первой статье был приведен поверхностный анализ этой защиты, исследовалась возможность эмуляции ключа на уровне команд ввода-вывода и необходимые действия для борьбы с приложением, препятствующим перехвату ввода-вывода (регистры отладки DRx).

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

      Первая и вторая части были посвящены ключу для LPT-порта, обладающему памятью порядка 128 байт и содержащему одну "секретную" функцию SeedCode. В настоящем документе будет исследоватся защита, основанная на другом ключе, использующем USB-порт. Различие этих ключей, конечно, не в том, что они используют различные интерфейсы, но в том, что новый ключ (предположительно Hasp Time 4) способен реализовать по крайней мере две новые функции (кроме новой SeedCode): функцию таймера и функцию типа Decrypt_Data - расшифровка указанной последовательности. Все исследования относительно ключа носят оценочный характер и не претендуют на полноту, однако прога все же запускается ;)

    Просмотров: 0 | Author: Chingachguk / HI-TECH | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

    В этой статье я рассмотрю способы одурачивания отладчиков режима пользователя. Я попытаюсь разложить по полочкам все известные мне методы и предложить читателю несколько своих. Что я понимаю под одурачиванием? Во-первых, это обнаружение отладчика в своем процессе, обход функций, перебирающих модули, защита от трассировки и еще несколько примечательных вещей. Во-вторых, это несколько радикальных и не очень методов против дампа. В данной статье я рассмотрю только отладчики режима пользователя, очень мало будет сказано про отладчики режима ядра. О них и так очень много написано (советую прочитать статью Zero Ice'a в этом же номере журнала). Для того, чтобы читатель был в курсе откуда я взял всю информацию об устройстве отладчиков режима пользователя, я дам несколько ссылок в конце статьи. Там и описание msdn отладочных функций и туториал Izceliona "Win32 Debug API". Хочу еще заметить, что все примеры я тестировал и разрабатывал только для NT систем, хотя может оказаться, что примеры работают и в линейке 9x. Все предложения и замечания можно отсылать мне на e_f_i_m at rambler dot ru.
    Просмотров: 0 | Author: R4DX | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

    Основная ошибка подавляющего большинства разработчиков защитных механизмов состоит в том, что они дают явно понять хакеру, что защита еще не взломана. Если защита сообщает "неверный ключевой файл (пароль)", то хакер ищет тот код, который ее выводит и анализирует условия, которые приводят к передаче управления на данную ветку программы. Если защита в случае неудачной аутентификации блокирует некоторые элементы управления и/или пункты меню, – хакер либо снимает такую блокировку в "лоб", либо устанавливает точки останова (в просторечии называемые бряками) на API-функции, посредством которых такое блокирование может быть осуществлено (как правило это EnableWindows), после чего он опять-таки оказывается в непосредственной близости от защитного механизма, который ничего не стоит проанализировать и взломать. Даже если защита не выводит никаких ругательств на экран, а просто тихо "кончает", молчаливо выходя из программы, то хакер либо ставит точку останова на функцию exit, либо тупо трассирует программу и, дождавшись момента передачи управления на exit, анализирует один или несколько последующих условных переходов в цепи управления, – какой-то из них непосредственно связан с защитой!
    Просмотров: 0 | Author: Крис Касперски | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

    Итак, я предполагаю, что читатель имеет твердое представление об ассемблере, неплохо владеет Си, прекрасно разбирается в том, как компилировать и линковать программы. Также, очевидно, необходимо уметь пользоваться Visual Studio.

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

    Рассмотрим сперва Intel Compiler, единственный реальный конкурент MS cl.exe. Закачать его можно с ftp://download.intel.com/software/products/. Последняя версия на момент написания -W_CC_P_7.0.073.exe. «Вес» пакета – 74 Мб.

    Просмотров: 0 | Author: Volodya | Добавил: aka_kludge | Дата: 18.02.2011 | Комментарии (0)

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

      Любому из нас приходилось получать загадочные письма из сети, содержащие в себе прелюбопытные наборы значков и черточек. Разнообразие стандартов и кодировок породило на свет огромное количество перекодировщиков. Во всем этом безобразном разнообразии отчетливо обозначились несколько особо продвинутых программулин. Мне почему то особенно запомнились только две – Bred и Штирлиц. И если первая ничем не достает и не просит на "покушать", то вторая изрядно выводит из себя своим "рекламным окошком", которое по заявлению самого автора "не мешает работать программе" (Лукьянин вообще парень с юмором). Но, ближе к делу...

    Просмотров: 0 | Author: Broken Sword | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Идентификация оператора "+". В общем случае оператор "+" транслируется либо в машинную инструкцию ADD, "перемалывающую" целочисленные операнды, либо в инструкцию FADDx, обрабатывающую вещественные значения. Оптимизирующие компиляторы могут заменять "ADD xxx, 1" более компактной командой "INC xxx", а конструкцию "c = a + b + const" транслировать в машинную инструкцию "LEA c, [a + b + const]". Такой трюк позволяет одним махом складывать несколько переменных, возвратив полученную сумму в любом регистре общего назначения, - не обязательно в левом слагаемом как это требует мнемоника команды ADD. Однако, "LEA" не может быть непосредственно декомпилирована в оператор "+", поскольку она используется не только для оптимизированного сложения (что, в общем-то, побочный продукт ее деятельности), но и по своему непосредственному назначению - вычислению эффективного смещения. (подробнее об этом см. "Идентификация констант и смещений", "Идентификация типов"). Рассмотрим следующий пример:
    Просмотров: 1 | Author: Крис Касперски | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Циклы - единственная (за исключением неприличного "GOTO") конструкция языков высокого уровня, имеющая ссылку "назад", т.е. в область более младших адресов. Все остальные виды ветвлений - будь то IF - THEN - ELSE или оператор множественного выбора switch всегда направлены "вниз" - в область старших адресов. Вследствие этого, логическое дерево, изображающее цикл, настолько характерно, что легко опознается с первого взгляда.
      Существуют три основных типа цикла: циклы с условием вначале , циклы с условием в конце (см. рис. 36 в центре) и циклы с условием в середине (см. рис. 36 справа). Комбинированные циклы имеют несколько условий в разных местах, например, в начале и в конце одновременно.
    Просмотров: 0 | Author: Крис Касперски | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Циклы - единственная (за исключением неприличного "GOTO") конструкция языков высокого уровня, имеющая ссылку "назад", т.е. в область более младших адресов. Все остальные виды ветвлений - будь то IF - THEN - ELSE или оператор множественного выбора switch всегда направлены "вниз" - в область старших адресов. Вследствие этого, логическое дерево, изображающее цикл, настолько характерно, что легко опознается с первого взгляда.
      Существуют три основных типа цикла: циклы с условием вначале , циклы с условием в конце (см. рис. 36 в центре) и циклы с условием в середине (см. рис. 36 справа). Комбинированные циклы имеют несколько условий в разных местах, например, в начале и в конце одновременно.
    Просмотров: 1 | Author: Крис Касперски | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Для улучшения читабельности программ в язык Си был введен оператор множественного выбора – 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 …. оператор по умолчанию". Если изобразить это ветвление в виде логического дерева, то образуется характерная "косичка", прозванная так за сходство с завитой в косу прядью волос – см. рис. 29

      Казалось бы, идентифицировать switch никакого труда не составит, – даже не стоя дерева, невозможно не обратить внимания на длинную цепочку гнезд, проверяющих истинность условия равенства некоторой переменной с серией непосредственных значений (сравнения переменной с другой переменной switch не допускает).

    Просмотров: 1 | Author: Крис Касперски | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Существует два вида алгоритмов - безусловные и условные. Порядок действий безусловного алгоритма всегда постоянен и не зависит от входных данных. Например: "a=b+c". Порядок действий условных алгоритмов, напротив, зависит от входных данных. Например: "если c не равно нулю, то: a=b/c; иначе: вывести сообщение об ошибке".

      Обратите внимание на выделенные жирным шрифтом ключевые слова "если", "то" и "иначе", называемые операторами условия или условными операторами. Без них не обходится ни одна программа (вырожденные примеры наподобие "Hello, World!" - не в счет). Условные операторы - сердце любого языка программирования. Поэтому, чрезвычайно важно уметь их правильно идентифицировать.

      В общем виде (не углубляясь в синтаксические подробности отдельных языков программирования) оператор условия схематично изображается так:

    Просмотров: 0 | Author: Крис Касперски | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Существует два вида алгоритмов - безусловные и условные. Порядок действий безусловного алгоритма всегда постоянен и не зависит от входных данных. Например: "a=b+c". Порядок действий условных алгоритмов, напротив, зависит от входных данных. Например: "если c не равно нулю, то: a=b/c; иначе: вывести сообщение об ошибке".

      Обратите внимание на выделенные жирным шрифтом ключевые слова "если", "то" и "иначе", называемые операторами условия или условными операторами. Без них не обходится ни одна программа (вырожденные примеры наподобие "Hello, World!" - не в счет). Условные операторы - сердце любого языка программирования. Поэтому, чрезвычайно важно уметь их правильно идентифицировать.

      В общем виде (не углубляясь в синтаксические подробности отдельных языков программирования) оператор условия схематично изображается так:

    Просмотров: 0 | Author: Крис Касперски | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    После такого заголовка я, как "порядочный мужчина", просто обязан объяснить, что имел в виду, называя так статью, о чем, зачем и для кого она написана.

    Начнем с главного.

    Зачем и для кого написана эта статья?

    В этой статье я бы хотел поделиться своими результатами в исследовании "промежуточного" кода. Я вполне отдаю себе отчет в том, что исследование скомпилированного кода малоизвестным компилятором, да еще и требующего интерпретатора для своего исполнения, едва ли вызовет широкий интерес. Но все же я решился на публикацию, и вот по каким причинам:

    1. Эта статья может быть интересной малочисленным программистам, специализирующимся на Natural, и желающим поднять свою квалификацию. Думаю, понимание того, во что превращается исходный код при компиляции, будет способствовать этому росту.
    2. Эта статья может помочь также в случае необходимости восстановить исходный код из "промежуточного" (опять-таки для Natural-программистов).
    3. Эта статья может быть полезной для исследователей, изучающих какой-то свой специфический псевдокод, по которому нет информации ни из официальной документации, ни от коллег-исследователей.
    4. Надеюсь, статья может стать интересной и для программистов, разрабатывающих свой язык/интерпретатор (если такие еще найдутся).
    Просмотров: 0 | Author: Konstantin | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Как известно, операндами называют то, что участвует в операциях. Так в операции сложения операндами будут слагаемые, а в операции умножения - сомножители.

    Применительно к GP-коду Natural, термин "операнд" объединяет такие элементы программного кода как константы, локальные переменные, глобальные переменные, объекты и т.д.

    Согласитесь, разобравшись с тем, как и где описываются операнды, нам будет вполне по силам делать "косметический ремонт" программ (изменить формат, размер переменной, атрибут поля формы и т.д.). Также нам станут подвластными и параметры вызываемых подпрограмм. Это самое очевидное, но мало ли, что можно еще придумать!

    Полагаю, самым разумным будет начать наше исследование с констант, т.к. во-первых, константы - они в Natural константы, а во-вторых, их легко разглядеть в hex-редакторе.

    И еще небольшое отступление. Natural предоставляет возможность использовать два режима написания программ - Report mode (режим отчета, обычно для написания программ "на скорую руку"), Structure mode (структурный режим). Основное отличие (не вдаваясь в особые подробности) заключается в том, что в режиме отчета можно объявлять переменные в любом месте программы по мере необходимости, а в структурном режиме - только в начале программы в блоке, выделенном ключевыми словами Define Data и End-Define. Есть различия в синтаксисе, но нам они сейчас не интересны. Для GP-кода безразлично, в каком режиме написан исходный текст программы. Для большей наглядности далее в статье исходные тексты программ будут представлены в структурном режиме.

    Просмотров: 0 | Author: Konstantin | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

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

    2.2 Параметры (Value table index =  6)

    Объяснять, что такое параметры, и для чего они нужны, думаю, нет никакой необходимости.  Однако есть любопытная особенность использования параметров в NATURAL- программах (точнее, подпрограммах), мимо которой пройти никак нельзя. В NATURAL-подпрограммах с параметрами вызываются не процедуры (функции), а программные модули.

    Параметры в NATURAL-подпрограммах объявляются одним из двух способов (либо их комбинацией):

    Просмотров: 0 | Author: Konstantin | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Разбор секции кода и прост, и сложен. Прост, потому что молитвами разработчиков языка там нет ничего, кроме номеров строк исходника, кодов операций (команд) и операндов. И если с номерами строк все понятно, то с командами и операндами все гораздо запутаннее.

    Какие сложности с командами? Во-первых, их несколько сотен; во-вторых, у каждой команды (точнее, группы команд) свой перечень параметров (аргументов), причем параметры могут быть представлены как в префиксном виде, так и постфиксном; в-третьих, команды могут быть размером и в байт, и в два байта.

    Какие сложности с операндами? Во-первых, в их многоликости. Дело в том, что в качестве параметров (аргументов) для команд могут быть как операнды, явно присутствующие в Natural-выражениях (именно те, о которых мы говорили в предыдущей части статьи «Часть 2. Операнды в GP-коде», и чтобы не путаться в дальнейшем, условимся называть их nat-операндами), так и всевозможные флаги и просто константы, которых нет в Natural-выражениях, но которые появляются на этапе компиляции (например, «дальность» прыжка операторов семейства JMP, которые обязательно появятся при компиляции любого условного выражения в Natural-программах). Во-вторых, тип постфиксного операнда можно понять только в контексте последней команды – то ли это nat-операнд, то ли это значение флага, то ли константа.

    И что со всем этим безобразием делать? Да ничего особенного! Просто набраться терпения – ведь как-то же код выполняется интерпретатором. Хотите знать как?

    Просмотров: 0 | Author: Konstantin | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Вообщем-то на написание этой статьи меня толкнула незавершённость цикла статей http://www.wasm.ru/series.php?sid=20 "Процессор Intel в защищенном режиме". К сожалению, автор не успел рассмотреть детально сам процесс переключения режимов, смены адресации, а так же обработку прерываний, без которой невозможна полноценная работа программы в защищенном режиме. Писать мы будем код для транслятора FASM, сгенерируем чистый бинарный файл и используем его как образ загрузочной дискеты в эмуляторе Bochs или запишем на дискету и загрузим с нее реальный компьютер.

    После Power-On-Self-Test процессор генерирует прерывание 19h, обработчик которого управляет дальнейшим ходом загрузки. Он находит первый (в порядке приоритетов, устанавливаемых в BIOS Setup) загрузочный диск, считывает его первый сектор по линейному адресу 07C00 и передает ему управление.

    Поскольку процессор при загрузке работает в реальном режиме с 16битной адресацией, нашей задачей будет переключение процессора в защищенный режим с 32битной адресацией, установка обработчиков прерываний и считывание символов с клавиатуры. Так же мы рассмотрим процесс переключения из защищенного режима обратно в реальный.

    Итак, сначала некоторые подготовительные действия. Поскольку наше тело загрузят по адресу 7C00 и мы вряд ли уместимся в пределы одного сектора (512 байт), надо обеспечить загрузку всего остального кода с диска. Этот код приведу без дополнительных пояснений, потому что он не совсем в тему нашей статьи:

    Просмотров: 2 | Author: Great | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    Здравствуй, уважаемый подписчик! Перед тобой первый выпуск рассылки. Несколько слов о том, о чем здесь вообще пойдет речь в дальнейшем. Речь, как ты уже догадался и без подсказок, пойдет о программировании в защищенном режиме процессоров Intel, причем даже не столько о программировании, сколько о самой архитектуре, о сущности PM и др. глубоких материях :). (хотя не пугайся, последнего не будет, упаси боже! А тех, кому без высоких материй не живется на свете – попрошу обратить свой взор на «Низкоуровневое программирование для dzенствующих».

    Сразу давай договоримся: защищенный режим и программирование под Windows – это две большие разницы. Windows – это ОС, защищенный режим – режим работы процессора. Это все равно что программирование в реальном режиме называть как-нибудь на манер «программирование под Нортон Коммандер», согласись – глупо, но однако почему то это укоренившееся «в народе» мнение. Итак, никакого виндоуса не будет!

    Ты, конечно же, согласен, что реальный режим – прошлый день (или, даже точнее – прошлый век). Но задумывался ли ты о том, что и защищенный режим, как это не прискорбно, остался позади ?.. Год с небольшим назад Intel анонсировала процессор с принципиально новой архитектурой – Itanium; все предыдущие процы (до Itanium-а) были аккуратно сложены в одну большую коробку в кучу (причем, вообще как то даже совсем абстрагировавшись от каких-либо различий между 8086 и Pentium-ом IV), сверху поставлено клеймо – IA32 (Intel Architecture 32) и все это чудо благополучно похоронено…Конечно же, все не совсем так, IA-32 будет жить еще долго (по крайней мере, у нас :).

    Первая и главная проблема, с которой мне пришлось сразу же столкнуться: С ЧЕГО НАЧАТЬ? Казалось бы, проблема на ровном месте, однако это не так. Если ты уже довольно неплохо шаришь в защищенке (а таких я не встречал почему то вообще), то думаю, согласишься. Как выразился небезызвестный тов. Зубков: «… управление защищенным режимом в современных процессорах Intel – это самый сложный раздел программирования…», и можешь поверить ему на слово, однако «нет ничего невозможного для человека с интеллектом».

    Вся проблема в том, что защищенка – это замкнутый круг, откуда бы я ни начал – останется что-то позади, и впереди… и еще где нибудь сбоку. Но я буду стараться.

    Просмотров: 2 | Author: Broken Sword | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

    В предыдущем выпуске ты в самом первом приближении ознакомился с видами организации памяти в защищенном режиме. Напомню, что существует всего 2 вида: сегментная (segment) и страничная (paging) модели. Также я обещал в этом выпуске более подробно остановиться на страничной организации. На самом деле еще рановато… Давай лучше до конца разберемся с сегментной организацией, потом будет намного проще разобраться со страничной…

    Итак, что мы имеем: программа (вернее, программы) загружены в оперативную память, каждая программа владеет группой сегментов (данные, код, стек). Теперь возникает вопрос: откуда же процессор знает, где какой сегмент? Где начало сегмента? И где его конец? И что это за сегмент: данных? кода? А может быть, стека? Или, может быть, всего разом? Ответить на этот вопрос может только одна структура данных: ДЕСКРИПТОР. Повторите это слово про себя несколько раз, запомните его. Напишите на бумажке 10 раз :). ДЕСКРИПТОР – это структура, ОПИСЫВАЮЩАЯ сегмент. Если человек – это сегмент, то паспорт – это его дескриптор. У каждого человека он свой собственный. И разница лишь в том, что человеку паспорт (дескриптор) выдается с 16 лет (на Украине), а у сегмента он с момента рождения.

    Просмотров: 2 | Author: Broken Sword | Добавил: LeadyTOR | Дата: 18.02.2011 | Комментарии (0)

        Главная      
    ...
    На службе : дней

    18:27
    Обновить


    Пользователи
    aka_kludge
    qwerty
    LeadyTOR
    aka_Atlantis
    AdHErENt
    mAss
    Sissutr
    hiss
    DrBio
    tHick

    Поиск


    Copyright tHR - TeAM 2020 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика