marylin

  1. Marylin

    Статья Стек – общая философия

    Стек – неотъемлемая часть любого, работающего под управлением процессора х86, приложения. Он организован на аппаратном уровне и магнитом притягивает к себе как системных программистов, так и различного рода малварь. Переполнение стека – наиболее часто встречающейся программный баг, который...
  2. Marylin

    Статья DLL библиотеки – инструкция к метле

    Ещё во-времена старушки дос стало очевидно, что некоторые программные модули лучше хранить не внутри исполняемого файла, а вынести их наружу и подгружать по мере необходимости. В то время такие "прицепы" называли оверлеями и с точки зрения экономии 1М-байтного адресного пространства это было...
  3. Marylin

    Статья Самотрассировка, или марш-бросок по периметру отладчика

    Как и всё, что работает под управлением центрального процессора, операционная система – это тоже программа, которая на этапе тестирования требовала отладки. Поскольку системное пространство памяти в Win логически разделено на два региона, инженерам требовались технические люки из юзера в кернел...
  4. Marylin

    Статья DEP и ASLR – игра без правил

    Со времени выхода в свет Win2000 прошло уже 20 лет. Её разработчики, с чувством исполненного долга предвкушали себе счастливую старость, но грянул гром – система оказалась дырявой как сито, и на данный момент счёт её обновлениям потеряла наверное уже и сама Microsoft. Ознакомиться с...
  5. Marylin

    Статья Entry Point – дело о пропавшем индексе (часть 2)

    Вернёмся к первой части и вспомним, о чём тут вообще идёт речь.. Статья рассматривает, как при запуске приложения передать бразды фиктивной точке-входа EntryPoint. При этом РЕ-заголовок дискового файла не модифицируется, что пускает по ложному следу софт реверс-инженеринга типа анализаторы...
  6. Marylin

    Статья Entry Point – дело о пропавшем индексе (часть 1)

    Термин EntryPoint знаком каждому программисту – это адрес точки входа в программу, т.е. первой инструкции исполняемого кода. Компиляторы прошивают этот адрес в РЕ-заголовок по смещению 28h, а системный "загрузчик образов" потом считывает его от туда, и передаёт на него управление. Такому...
  7. Marylin

    Статья SEH – фильтр необработанных исключений

    Во времена рассвета DOS программист имел полную власть над системой. Находясь в реальном режиме работы CPU, у нас не было никаких ограничений и мы могли использовать в программах буквально все инструкции и регистры процессора, общее число которых на Р6 стремилось преодолеть барьер в ~200 единиц...
  8. Marylin

    Статья TLS callback – рояль в кустах для отладчиков

    Системы класса Win-NT имеют интересный тип памяти под названием "Thread Local Storage", или локальная память потока. После того как мир увидел многопоточные приложения оказалось, что родственные потоки одной программы ведут между собой нешуточную борьбу за системные ресурсы, т.к. все загружаются...
  9. Marylin

    Статья NTFS-Stream, или резидентный код в камуфляжных штанах

    Рассмотрим файловую систему NTFS как сущность, которой доверяем самое ценное что у нас есть – это личную информацию. Порой мы не знаем куда пристроить пароли или своего трояна так, чтобы он не выдал себя даже под пытками, ..ну или просто хотим скрыть фото зазнобы в неприглядном виде. Для решения...
  10. Marylin

    Статья ASM для х86 (5.5) RAW сокеты в XP и Win7

    Возможность работы с сокетами предоставляют нам системные "Поставщики услуг". Именно поставщик ограничивает тот или иной функционал, например возможность использовать протокол ICMP или девственные RAW-сокеты. В отношении WinSock, базовых поставщиков всего двое – это библиотека mswsock.dll...
  11. Marylin

    Статья ASM для x86. (5.4) Протокол ARP

    Тропа повествований привела меня к протоколу самого нижнего уровня из всех – протокол преобразования сетевых адресов ARP. Этот мир прикрыт железным куполом контролёра сетевой карты и большинству рядовых пользователей просто не нужен – пусть с ним разбираются инженеры. Но мы не входим в число...
  12. Marylin

    Статья ASM для х86. (5.3) Протокол ICMP – PING и TRACEROUTE

    Продолжим круиз по стеку протоколов TCP/IP, и на этот раз остановимся на ICMP. В реализации этого протокола нет ничего сложного – он примитивен как амёба. Однако в умелых руках ICMP превращается в грозное оружие, из-за чего Microsoft поспешила на корню отрубить к нему доступ, оставив прогерам на...
  13. Marylin

    Статья ASM для х86. (5.2.) WinSock – протокол WHOIS

    В предыдущей части речь шла о портах.. Теперь поговорим о протоколах и начнём с самого простого WHOIS (nickName), который полностью развенчивает миф об анонимности в сети. Посредством сервисов Whois, начинающий разведчик сможет собрать информацию о любом домене, ..а если повезёт, и об его...