Главная Кодинг

Кодинг

Всё от низкоуровневой разработки до веба и мобильных устройств. Тесты железа, обзоры необычных гаджетов, гайды по новым языкам программирования, руководства и советы кодерам.

Xakep #241

Secure Coding. Пишем приложения, устойчивые к ботнетам

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

Xakep #240

Это читерство! Учимся взламывать игры и писать читы на простом примере

Компьютерные игры хороши тем, что вознаграждение за успех приносит реальное удовольствие, а цена провала невелика. Но иногда, чтобы открыть новые способности или просто ускорить игровой процесс, ты прибегаешь к не самым честным способам. И если изменить правила мира ты не в силах, можно попробовать их прогнуть. Да, всё верно, мы поговорим про читы.

Xakep #240

Кейлоггер по-домашнему. Пишем на C# кейлоггер, который не палится антивирусами

Боевые кейлоггеры с кучей функций и защитой от детекта могут стоить десятки, если не сотни долларов. Но кейлоггер не такая уж сложная штука, и при желании ты можешь сделать собственный и даже избежать детекта антивирусами. В этой статье я покажу, как это делается, а заодно поупражняемся в разработке программ на C#.

Xakep #240

Магия C++. Как выжить без динамической идентификации типов и не сойти с ума

В C++ существует такое понятие, как динамическая идентификация типа данных (RTTI). Это механизм, который позволяет определить тип переменной или объекта на этапе выполнения программы. Чтобы уменьшить исполняемый файл, во многих проектах RTTI отключают, от этого перестают работать dynamic_cast и typeid. Но способ проверить, порожден ли инстанс объекта от какого-то базового класса, все же есть.

Xakep #239

Сила OCaml. Разбираемся с типизацией и пишем скрипты

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

Xakep #239

Виртуалка своими руками. Как обфусцировать код при помощи виртуализации и что делать с такой защитой

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

Xakep #239

На что способна ада. Делаем утилиту для детекта гипервизора на полузабытом языке

Лучше всего познавать язык на реальном проекте, поэтому, когда я решил поэкспериментировать с адой, я поставил себе реальную и интересную задачу: написать утилиту для детекта работы в гипервизоре. Это само по себе занятно, а новый язык программирования позволит вывести развлечение на новый уровень.

Xakep #238

Протокол своими руками. Создаем с нуля TCP-протокол и пишем сервер на C#

Ты в жизни не раз сталкивался с разными протоколами — одни использовал, другие, возможно, реверсил. Одни были легко читаемы, в других без hex-редактора не разобраться. В этой статье я покажу, как создать свой собственный протокол, который будет работать поверх TCP/IP. Мы разработаем свою структуру данных и реализуем сервер на C#.

Xakep #238

Python по всем правилам. Делаем свою структуру данных совместимой с фичами Python

Если ты пишешь на Python, то наверняка видел в стандартных библиотеках определения методов, обернутых в двойные подчеркивания. Эти «магические» методы образуют многие из полезных интерфейсов, которыми ты постоянно пользуешься, — например, когда получаешь значение по номеру элемента или выводишь что-то через print. Сейчас я покажу, как эти методы использовать и в своих программах.

Xakep #238

Убить Билла. Изучаем способы принудительного завершения процессов в Windows

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

Xakep #238

Мифы об аде. Как и зачем программировать на аде в современном мире

Язык, разработанный по заказу Министерства обороны США и названный в честь первой в мире программистки Ады Лавлейс, активно используется для управления самолетами, поездами, космическими аппаратами и прочими интересными штуками. Давай посмотрим на язык без призмы мифов и разберемся, какую пользу мы можем из него извлечь, даже если пока не собираемся в космос.

Xakep #237

Пишем эмулятор игровой консоли. Как устроена легендарная приставка Nintendo и как ее воссоздать самому

Ты наверняка сталкивался с эмуляторами игровых приставок и, возможно, даже просиживал за ними не один час. Но задавался ли ты вопросом, как это работает? На примере NES, известной в России как Dendy, я покажу, как создать собственный эмулятор. А заодно разберемся с хитрой архитектурой этой приставки, выдававшей потрясающе хорошую картинку для своего времени и своей скромной цены.

Xakep #237

Пишем стилер. Как вытащить пароли Chrome и Firefox своими руками

Ты наверняка слышал о таком классе зловредных приложений, как стилеры. Их задача — вытащить из системы жертвы ценные данные, в первую очередь — пароли. В этой статье я расскажу, как именно они это делают, на примере извлечения паролей из браузеров Chrome и Firefox и покажу примеры кода на C++.

Xakep #237

Задачи на собеседованиях. Задачи от компании Abbyy

Вопросы на собеседовании в стиле «почему крышка от канализационного люка круглая?» — это странно. Простыни с сишным кодом, который нужно скомпилировать в голове, — это нудно. Самые интересные задачки — на общетехническое и логическое мышление. И сегодня товарищи из компании Abbyy подкинули нам именно такие!

Xakep #236

Тайный WinAPI. Как обфусцировать вызовы WinAPI в своем приложении

Образцы серьезной малвари и вымогателей часто содержат интересные методики заражения, скрытия активности и нестандартные отладочные приемы. В вирусах типа Potato или вымогателях вроде SynAsk используется простая, но мощная техника скрытия вызовов WinAPI. Об этом мы и поговорим, а заодно напишем рабочий пример скрытия WinAPI в приложении.

Xakep #236

Кодим в консоли. Как отказаться от IDE и стать более продуктивным и уверенным в себе

Зачем в XXI веке разработчику нужны навыки программирования в «голой» консоли? Да затем же, зачем солдату навыки рукопашного и штыкового боя. Тому, чья служба состоит из покраски травы и стен, не нужны совсем, а вот коммандос этому все еще учат.

Xakep #235

Стоп-спам для «Телеграма». Как написать и задеплоить бота на TypeScript за полчаса

К тебе в уютный и ламповый чат заходит непонятный и никому не известный человек. Ты приветствуешь его, но он угрюмо молчит. Только ты успеваешь мысленно оправдать его поведение, как он подло кидает рекламу очередной мошеннической криптовалютной группы. Знакомо? Сегодня мы закодим и запустим в продакшен собственное решение, которое положит конец гнусным спамерам!

Xakep #234

Идеальная форма. Обрабатываем сложные формы на Python с помощью WTForms

Обработка HTML-форм в веб-приложениях — несложная задача. Проблемы начинаются, когда форма разрастается: нужно следить за полями, их ID, атрибутами name, корректно маппить атрибуты на бэкенде при генерации и процессинге данных... Разработка превращается в постоянную рутину. Однако есть способы сделать работу с формами удобной.

Xakep #233

Олимпиады по программированию. Куда податься, если ты молод, умен и хочешь выиграть несколько тысяч долларов

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

Xakep #233

[Без]опасный JavaScript. Изучаем проблемы кода на JS и выбираем средства борьбы с ними

Разработка безопасных приложений на JavaScript — весьма непростое занятие. Но выполнимое. В этой статье рассмотрим особенности JavaScript, из-за которых возникает наибольшее количество проблем, и обратим внимание на инструменты разработчика, которые помогут их избежать.

Xakep #233

Советы Android-разработчику. Что я узнал за год поддержки приложения в Google Play

Вот уже год я занимаюсь поддержкой приложения в Google Play. За это время приложение установили сотни тысяч раз, а пользовательская база разрослась до десятков тысяч. Каждый день я получаю отзывы и письма, сообщения об ошибках и пишу код. Эта статья — советы для тех, кто только начинает свой путь в Google Play и желает сохранить хотя бы часть головы свободной от шишек.

Xakep #232

Пишем майнер на Java. Кодим добытчик криптовалюты Electroneum

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

Задачи на собеседованиях. Задания для хардкорщиков от компании Acronis

Приятно осознавать, что среди наших читателей много настоящих хакеров, способных дать решительный бой повсеместному засилью сделанных на двухнедельных онлайн-курсах веб-программистов. Поэтому за новыми задачами мы обратились к компании, «низкоуровневая» ориентация специалистов которой не вызывает сомнений, — Acronis!

Xakep #231

Давай напишем ядро! Создаем простейшее рабочее ядро операционной системы

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

Xakep #231

Дао хеша. Познаем дзен методически правильного хеширования паролей

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

Xakep #230

Многофакторная аутентификация по-взрослому. Куем серьезный софт с помощью бесплатного инструментария

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

Xakep #231

Русский народный блокчейн. Пишем простой локальный блокчейн с использованием «Стрибога»

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

Xakep #230

Криптуем по-крупному. Разбираемся с режимами работы российских блочных шифров

В предыдущих статьях мы подробно разобрали, как работают два отечественных криптоалгоритма. Однако с помощью них получится зашифровать весьма скудный кусочек информации — 8 или 16 байт. Понятно, что нынче в такие объемы ничего втиснуть не получится и нужно что-то с этим делать. А что с этим делать, подробно изложено в очередном российском стандарте!

Xakep #231

Творческая Iskra. Делаем аппаратный менеджер паролей своими руками

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

Xakep #230

Крафтовая ФС. Как быстро сделать свою файловую систему на FUSE и Swift

Мысль о том, чтобы написать свою файловую систему, кажется многим слишком амбициозной. Однако проект FUSE for macOS, развиваемый сообществом энтузиастов, решает этот вопрос буквально в пару сотен строк кода, а идущий в комплекте фреймворк не требует унылых разбирательств с API на голом C и вполне пригоден для использования в комплекте с современным и мощным Swift.

Xakep #230

Русская «Магма». Как работает отечественный алгоритм блочного шифрования

В прошлой части наших «извращений с импортозамещением» мы подробно познакомились с алгоритмом шифрования «Кузнечик», который определен в ГОСТ 34.12—2015. Помимо этого алгоритма, в ГОСТе описан еще один, с длиной шифруемого блока в 64 бита, который носит название «Магма».

Xakep #230

Минутка ненависти Android-разработчика. Разбираем 10 самых частых проблем кодинга

Двадцать лет назад использовать Android было невозможно. Десять лет назад было еще рано. Сегодня — уже поздно. Android дорос уже до бальзаковского возраста, а разработчики все так же решают проблемы, которые давным-давно должны быть исправлены. Сегодня мы рассмотрим затруднения при разработке под Android, с которыми ты точно когда-нибудь столкнешься. И которые, кстати, бесят.

Xakep #230

JavaScript для умного дома. Arduino устарел, да здравствует ESP32!

Интерес к интернету вещей растет с каждым днем, свои курсы по технологии IoT запустили и Cisco, и Samsung. Но большинство этих курсов базируются на собственном железе компаний, довольно дорогом, в то время как практически все то же самое можно сделать на гораздо более дешевом железе самостоятельно, получив при этом массу удовольствия и полезных навыков.

Xakep #230

Инструментарий Android-разработчика. Подбираем программы, которые помогут в работе

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

Xakep #229

Задачи на собеседованиях. Полный разбор задач и награждение победителей от HackerU

Настало время подвести итоги мартовских задач на собеседованиях и прославить тех парней, которые их с блеском решили. Спасибо победителю — его решение оказалось настолько подробным, что потянет на целую статью по крякингу. :)

Xakep #229

Беспощадный буст. Как ускорить многопоточный код на C++

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

Xakep #229

Системный изолятор. Изолируем процессы в Windows средствами Less Privileged App Container (LPAC)

Начиная с восьмой версии в Windows появился встроенный механизм контейнеров, которые позволяют изолировать процессы путем значительного усечения их прав. Этому системному механизму дали название Less Privileged App Container (LPAC), он поддерживается некоторыми приложениями, например браузером Chrome. В этой статье я покажу, как использовать его в своих программах.

Xakep #228

Задачи на собеседованиях. От хакеров — хакерам: задачи от HackerU

Сегодня квесты представляют наши в некотором роде коллеги — Высшая школа информационной безопасности. Занимаются они, как нетрудно догадаться, профессиональной подготовкой частных лиц и компаний, стремящихся приобрести необходимые навыки и опыт в области ИТ и ИБ.

Xakep #228

Прыжок в облако. Строим бюджетное решение для интернета вещей на NodeMCU + Azure IoT Hub

Самое популярное назначение IoT-устройств — это сбор телеметрии. На сегодняшний день цены на облачные IoT-сервисы снизились буквально до одного доллара в месяц, который, согласись, не жалко отдать даже просто ради эксперимента. :) В этой статье я расскажу, как отправить данные в облако с платы NodeMCU, используя язык Lua.

Xakep #228

Детект песочницы. Учимся определять, работает ли приложение в sandbox-изоляции

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

Страница 1 из 812345 ...
«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
7490 р.
на год
720 р.
на месяц
90 р.
за 1 статью

«Хакер» в соцсетях

Telegram ВКонтакте Twitter Facebook

Еженедельный дайджест

Статьи для подписчиков