Программирование

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

  • 5 220
  • 0
Во времена рассвета DOS программист имел полную власть над системой. Находясь в реальном режиме работы CPU, у нас не было никаких ограничений и мы могли использовать в программах буквально все инструкции и регистры процессора, общее число которых на Р6 стремилось преодолеть барьер в ~200 единиц. Это была отличная школа программирования, где вся ответственность за то или иное действие возлагалась полностью на наши плечи. Всё приходилось делать вручную, в том числе и обрабатывать аппаратные исключения с ошибками. Одним словом, царила атмосфера свободы и демократии, столь редкая в наши дни.

А что мы имеем сейчас в защищённом режиме? Microsoft отобрала у нас все права и вместо них вручила более 5000 системных API, но забыла толком объяснить, для чего они и как ими пользоваться. При малейщем чихе гигантская система валится в BSOD подымая в небеса тонны пыли, не забыв прихватить с собой наши не сохранённые данные. Ладно если был-бы реальный повод, так ведь может и без веских на то...

Статья Курс по созданию приложений для android [Часть 2]

  • 5 418
  • 19
Всем доброго времени суток!
Прошу прощения за задержку, были некоторые проблемы с техникой. Собственно, всё рассказал уже в комментарий первой части)

Те, кто наткнулись случайно -- настоятельно рекомендую сначала освоить первую часть! Курс по созданию приложений для android

В данном уроке мы научимся как создавать и расставлять объекты. Урок может быть скучноват, но это просто необходимо понять, т.к. без фундамента хороший дом не построить..

Я не забыл моменты в своей жизни, когда задавал вопрос, а через несколько лет слыша подобный, понимал, насколько он глупый. Осознание того, что это не вопрос глупый, а я (в тот момент, когда забыл, что был когда-то таким) пришло недавно, поэтому описывать буду максимально подробно (кто частично знаком или понял какой-то момент "налету" -- просто пропустите спойлер, в случае сложностей же -- не пренебрегайте ими.

Не будем долго разглагольствовать и...

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

  • 7 896
  • 3
Системы класса Win-NT имеют интересный тип памяти под названием "Thread Local Storage", или локальная память потока. После того как мир увидел многопоточные приложения оказалось, что родственные потоки одной программы ведут между собой нешуточную борьбу за системные ресурсы, т.к. все загружаются в единое пространство родителя. Это как дети, которые не могут поделить одну плитку шоколада. Здесь вполне очевидна ситуация, когда поток(А) записал что-то в память, а ничего не подозревающий поток(В) тут-же подмял эту область памяти под себя. В результате, программист получает клубок из змей и никакого профита.

Microsoft пыталась решить эту проблему по разному, например ввела механизмы синхронизации в виде семафоров, эвентов и прочее. Но в итоге решила выделить каждому потоку по своей/личной памяти внутри его блока окружения TEB – Thread Environment Block, и это стало наиболее разумным решением.

В данной статье TLS...

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

  • 7 870
  • 13
Рассмотрим файловую систему NTFS как сущность, которой доверяем самое ценное что у нас есть – это личную информацию. Порой мы не знаем куда пристроить пароли или своего трояна так, чтобы он не выдал себя даже под пытками, ..ну или просто хотим скрыть фото зазнобы в неприглядном виде. Для решения "проблемы века", юзеры присваивают файлам атрибут скрытый, более продвинутые шифруют файлы и т.д. Но в своих закромах NTFS предлагает нам более изящные средства, причём без сторонних инструментов – нужно просто открыть и покурить её (для надёжности) несколько раз.

Здесь мы рассмотрим сразу два родственных способа маскировки.. Первый известен в узких кругах как "альтернативный NTFS-поток" ADS (Alternative Data Stream) и живёт он в системе как скрытая часть уже существующего исполнительного потока. Второй – это доставшийся нам в наследство от файловой системы HPFS (OS/2)...

Статья Учим PHP: Основы и принцип работы

  • 7 990
  • 13
Доброго времени суток, codeby.

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

1.1. Принцип работы Интернета

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

Статья Курс по созданию приложений для android

  • 12 073
  • 27
Всех приветствую! Решил написать целиком курс по созданию приложений для OS Android. Хочется посмотреть, что есть в ветках grey&gold. Посмотрим на реакции).
Уроки буду выкладывать каждую неделю, возможно и чаще (если, конечно, к ним будет интерес).
В цикле статей обучу создавать приложения для android, от самого начала (примитивные приложения) до настоящего шпионского софта (сбор информации о gps, дамп смс, подключение к камере/микрофону, отправка всех данных на сервер и прочее). Закончив данный курс -- Вы сможете написать как вирус, так и полноценное полезное приложение для вашего устройства. Ограничением будет выступать только Ваша фантазия и встроенное в ваше устройство железо (хотя, если интерес будет действительно большой -- можно будет дополнить и подключением модулей на ardu/raspberry, но это уже совсем другая тема.

Данный курс рассчитан на людей любого уровня подготовки.
Даже если читающий никогда не пробовал свои силы в программировании -- всё получится! Только есть одно...

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

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

Поставщик подключается к WinSock при помощи имеющегося в нём интерфейса SPI - "Service Provider Interface". После регистрации поставщика в системе, служба Winsock использует его для реализации определённых функций сокета, например setsockopt(), ioctlsocket(), connect() и прочих для тех типов адресов, которые поставщик указал в качестве им реализуемых. Тип адреса под виндой всегда одинаковый – это AF_INET...

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

  • 5 479
  • 4
Тропа повествований привела меня к протоколу самого нижнего уровня из всех – протокол преобразования сетевых адресов ARP. Этот мир прикрыт железным куполом контролёра сетевой карты и большинству рядовых пользователей просто не нужен – пусть с ним разбираются инженеры. Но мы не входим в число рядовых, поэтому рассмотрим его с точки зрения не обывателей, а Low-Level программиста.

На самом деле, чем дальше мы по стеку отдаляемся от физических устройств типа кабель и сетевая карта, тем больше погружаемся в логическую абстракцию виртуальной памяти системы, которая уводит от реальной действительности. Например, вот как выглядит структурная схема типичного сетевого адаптера.. Он состоит из двух модулей: PHY (Physical, физический) и МАС (Medium Access Control) – их связывает независимый интерфейс MII или Media Independent Interface:

За исключением некоторых нюансов...

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

  • 7 586
  • 5
Продолжим круиз по стеку протоколов TCP/IP, и на этот раз остановимся на ICMP.
В реализации этого протокола нет ничего сложного – он примитивен как амёба. Однако в умелых руках ICMP превращается в грозное оружие, из-за чего Microsoft поспешила на корню отрубить к нему доступ, оставив прогерам на растерзание лишь пару функций из библиотеки iphlpapi.dll – вот их список:
  1. IcmpCreateFile() – создать ICMP сессию;
  2. IcmpSendEcho() – отправить эхо-запрос получателю;
  3. IcmpCloseHandle() – закрыть текущую сессию.
Мдаа.. не густо.. От большого куска ICMP-протокола нам остался лишь унылый PING. В никсах дела обстоят намного лучше. Обычные их сокеты-Беркли позволяют оперировать с сокетами типа IPPROTO_ICMP, хотя под виндой этот тип уже не поддерживается, и функция socket() с аргументом ICMP тут-же возвращает ошибку. Но что так напугало мелкомягких и почему они решились на такой...

Soft ARP-DOS | Отключение интернета у всех в LAN (кроме себя)

  • 5 829
  • 12
ARP DOS

Возникла у меня идея, а что если сделать ARP спуф, но при этом указать не существующий mac адрес в качестве носителя ip адреса шлюза? По идее тогда должен отрубиться интернет у тех, на кого направлен спуф.

Так я решил реализовать arp досер, который отключает интернет всем в локальной сети. Для себя я нашёл пользу в том, чтобы отключать в публичной wifi сети всех от интернета, тем самым получая подключение к интернету с не забитым другими людьми трафиком, а значит и более высокую скорость :]

У программы есть 1 минус, нельзя самому указать адаптер, так что надо делать так, чтобы программа запускалась когда адаптер подключенный к нужной сети использовался в качестве текущего основного подключения (и ещё, возможно, потребуется запускать с выключенным VPN, но его МОЖНО включить после начала доса)

Прога не сжирает процессор и сеть (отправляет всего 2 мелких пакета в секунду)

Запускается очень просто - sudo...