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

Кодинг

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

Xakep #245
КодингДля начинающих

Машинное зрение на Python. Учим нейросеть отличать медведей от слонов

Ты наверняка слышал, что нейросети в последнее время стали чертовски хорошо справляться с распознаванием объектов на картинках. Наша же задача — научиться пользоваться этими нейросетями, ведь их мощь может пригодиться в самых разных случаях. В этой статье я расскажу, как задействовать ее при помощи самых распространенных инструментов: Python и библиотек Tensorflow и Keras.

Xakep #245
КодингДля начинающих

Машинный слух. Как работает идентификация человека по его голосу

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

Xakep #246

Машинное зрение на Python. Обучаем нейросеть распознавать цифры

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

Xakep #245

Twitch Extensions. Пишем свое расширение для взаимодействия со зрителями

Два года назад разработчики стриминговой платформы Twitch представили новый способ взаимодействия стримеров и зрителей — Twitch Extensions. Эта система позволяет разработчикам дополнять и улучшать интерфейс как сайта, так и мобильного приложения, создавая различные интерактивные элементы. Я расскажу, как работают эти расширения и как при желании создать свое.

Xakep #244

Потрошим Carbanak. Как изнутри устроен известный банковский троян

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

Xakep #245
КодингДля начинающих

Hey Julia! Новый язык, который выглядит, как Python, а летает, как C

Julia — молодой язык программирования, предназначенный преимущественно для научных вычислений. Его создатели хотели, чтобы он занял нишу, которую прежде занимали Matlab, его клоны и R. Создатели пытались решить так называемую проблему двух языков: совместить удобство R и Python и производительность C. Посмотрим, что у них получилось.

Xakep #244

Загадочный Forth. Знакомимся с одним из важнейших языков программирования, о котором мало кто знает

Forth применяют в самых разных областях, включая чипсеты PCI и космические аппараты, а Павел Дуров будет использовать схожий язык в смарт-контрактах криптовалюты TON. Не претерпев больших изменений, один из старейших языков программирования позволяет воплотить многие современные парадигмы. Так что же такое этот загадочный Forth?

Xakep #244

Криптуем по-крупному. Разбираемся с режимом гаммирования из ГОСТ 34.13—2015

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

Xakep #242

Фаззинг глазами программиста. Как в Google автоматизируют поиск багов

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

Xakep #242

Внутри x86-64 SystemV ABI. Как говорить с ядром Linux на его языке

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

Xakep #241

Это читерство! Изучаем принципы борьбы с читами и пишем простую защиту

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

Xakep #241

Погружение в Dokan. Как сделать свою файловую систему для Windows без FUSE

В Linux, как известно, многие вещи реализованы как файлы в файловой системе. А если и не реализованы, то их можно реализовать самому при помощи FUSE. В Windows это менее принято, но если все же очень хочется смонтировать что-то как ФС, то это возможно. Я покажу, как этого добиться, используя C# и библиотеку Dokan.

Xakep #241

Секретные запросы. Как спрятать данные веб-приложения от троянов

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

Xakep #241

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

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

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 байт. Понятно, что нынче в такие объемы ничего втиснуть не получится и нужно что-то с этим делать. А что с этим делать, подробно изложено в очередном российском стандарте!

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

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

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

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

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