Баги в Cursor AI могли использоваться для выполнения произвольного кода
В популярном ИИ-редакторе кода Cursor AI исправили сразу несколько уязвимостей. Баги позволяли незаметно изменить конфигурац…
В популярном ИИ-редакторе кода Cursor AI исправили сразу несколько уязвимостей. Баги позволяли незаметно изменить конфигурац…
Обнаружен macOS-бэкдор в трех npm-пакетах, выдававших себя за инструменты для разработчиков для популярного редактора кода C…
Эксперты предупреждают о новом типе атак на цепочку поставок, получившем название слопсквоттинг (slopsquatting). Такие атаки…
Аналитики ReversingLabs предупреждают, что участники северокорейской хак-группы Lazarus выдают себя за рекрутеров и предлага…
Если ты пентестер, знаток C++ или Scala-разработчик, обрати внимание: вместе с «Ростелеком-Солар» мы предлагаем твоему вниманию одну из трех вакансий. А чтобы лучше познакомиться с будущим работодателем, мы расспросили руководителей о работе в компании и связанных с ней интересных моментах.
Говорят, iOS невероятно закрытая система: ни написать свою программу без лицензии разработчика, ни заставить iPhone или iPad делать что-то, что не одобряют в Apple. Сегодня я познакомлю тебя с Pyto — интерпретатором Python для iOS, который позволяет творить... если не чудеса, то как минимум многие вещи, которые раньше считались невозможными без джейлбрейка.
В этой статье я покажу тебе, как использовать статический анализатор кода для отлова багов в программе. Использовать мы будем PVS-Studio, и на живом проекте посмотрим, на какие ошибки он пожалуется, и в каких случаях выручит.
Сегодня мы с тобой научимся находить любые типы циклов в коде реальных программ на языках высокого уровня — построенных с оптимизацией и без нее. Это один из шагов, с которым ты столкнешься при обратной разработке чужих приложений.
В сегодняшней статье мы изучим все типы циклов, которые могут встретиться в языках программирования высокого уровня. Увидим, какие способы есть у компилятора для отражения их в двоичном виде. Разберем плюсы и минусы каждого. Кроме того, мы узнаем, как перемалывают циклы различные трансляторы и что получается на выходе у оптимизирующих и неоптимизирующих компиляторов.
В этой статье мы изучим оператор выбора switch. Давай разберемся, какие формы он может принять в двоичном коде, как разные компиляторы транслируют его и как его найти в дизассемблированном коде по характерным признакам.
Сегодня тебя ждет масса практических примеров — дизассемблированных листингов, на которых мы будем изучать представление условных переходов различными компиляторами. Таким образом, ты узнаешь, как ветвление используется в современных программах и как за ним следить при обратной разработке.
Работая в терминале, мы управляем сценариями PowerShell с помощью параметров, которые указываются в командной строке при их вызове. Если с нашим сценарием будут работать обычные пользователи, то, добавив к нему простой графический интерфейс, можно избавить их от необходимости вводить названия параметров. О том, как приделать GUI к сценариям PowerShell, я сейчас расскажу.
В интернете есть множество сервисов, с которыми можно работать, обращаясь к их ресурсам по протоколу HTTP. Веб-разработчики постоянно работают с такими HTTP-запросами для доступа к функциям внешних API или для тестирования собственных приложений. PowerShell тоже предлагает встроенные методы для обращения к вебу. О них мы и поговорим.
Некоторые уязвимости возникают из-за ошибок с управлением памятью, выделенной на куче. Механизм эксплуатации этих уязвимостей сложнее, чем обычное переполнение на стеке, поэтому не все умеют с ними работать. Даже курс Cracking the perimeter (OSCE) не заходил дальше тривиальной перезаписи SEH. В этой статье я расскажу и на практике покажу механику работы кучи.
Играть в игры любят все, но это гораздо интереснее, когда у тебя имеется нескончаемый запас патронов и здоровья. Чтобы обзавестись и тем и другим, можно погуглить читы и трейнеры для твоей любимой игры. Но как быть, если их еще не разработали? Написать самому! Обладая навыками реверс-инжиниринга и программирования, сделать это намного проще, чем кажется.
Терминал на протяжении многих лет не утратил актуальность. Существует множество ресурсов, рассказывающих про внутреннюю кухню терминалов, но довольно поверхностно. Я постарался перекинуть мост через этот овраг и написал введение в использование эмулятора терминала в качестве платформы для разработки.
В этой статье я расскажу о том, как создать простое приложение — заготовку панели инструментов для рабочего стола Windows. По ходу дела мы вспомним Win32 API, разберемся, как его использовать на языке ассемблера, и познакомимся с Flat Assembler, который станет для нас основным инструментом разработки.
В этой статье мы реализуем простой, но крайне полезный проект на Python — бота для Telegram. Боты — это небольшие скрипты, которые могут взаимодействовать с API, чтобы получать сообщения от пользователя и отправлять информацию в разные чаты и каналы.
Сегодня мы поработаем с файловой системой ОС, освоим могущественные заклинания под названием «регулярные выражения», изучим тонкости создания и вызова функций и под конец напишем простенький сканер SQL-уязвимостей. И всё это в одном недлинном уроке!
Если спросить матерого кодера, в чем причина его неприязни к новичкам, то, скорее всего, он сошлется на нежелание сталкиваться в работе с неучами и «вкатывальщиками». А также с плодами их труда, которые, конечно, придется переписать заново. Я сейчас попробую объяснить, почему это все полная ерунда.
Есть целый пласт программ, уязвимости и неправильные настройки которых могут обернуться бедой для компании. Для пентестера знание их багов — путь к успешной эксплуатации, для админа — возможность выстроить более надежную защиту. В этой статье я рассмотрю уязвимости в Jira, Confluence, Asana, Docker, GitLab и подобных продуктах.
Когда читаешь дискуссии между сторонниками и противниками автоматического управления памятью, может сложиться впечатление, будто это какая-то единая технология, одинаково реализованная во всех языках программирования. В этой статье мы поговорим о сборке мусора — наиболее распространенном механизме управления памятью.
Kotlin — один из самых грамотно спроектированных, понятных и логичных языков последних лет. На Kotlin можно начать создавать приложения для Android, не изучая язык, но достигнуть мастерства одной лишь практикой вряд ли получится. Эта статья — сборник советов, которые помогут лучше понять особенности языка и программировать более эффективно.
Многие пользователи Linux предпочитают устанавливать программы из репозиториев с помощью встроенного менеджера пакетов. Однако разработчики, очевидно, не могут включить в репозитории все программы в мире, поэтому иногда удобнее всего обойтись без установки вообще. В этой статье я расскажу, почему это возможно и как это реализовать.
Работать в Data Science, как ты мог слышать, – престижно и денежно. В этой статье я познакомлю тебя с азами языка R, который используют в «науке о данных». Конструируя программу, ты увидишь, как сухая скучная математика может быть вполне наглядной и полезной, и сможешь понять ее, даже если никогда не сталкивался ни с чем подобным.
Надоели постоянные обрывы связи и косяки провайдера, но субъективные оценки типа «подвисает» не внушают доверия, лучший выбор — записать состояние сети в автоматическом режиме. Сегодня мы напишем утилиту, которая легко настраивается и сохраняет в журнал RTT до заданных хостов, packet loss и скорость соединения (опционально), а логи летят прямо в Telegram.
Я люблю собирать логические схемы. Однако обычно для этого требуется либо симулятор, либо макетная плата. Как-то в дороге у меня был с собой ноутбук с компилятором, но не было интернета. Задача написать небольшую программу с библиотекой цифровых вентилей показалась мне слишком тривиальной. Хм-м, как насчет метапрограммы?
Python за последнее десятилетие набрал огромную популярность и не сдает своих позиций — его применение и для обучения программированию, и для разработки приложений только растет. Не каждый язык может похвастаться популярностью в таких разных отраслях, как веб-разработка, DevOps, научные вычисления и машинное обучение.
Исследование алгоритма работы программ, написанных на языках высокого уровня, традиционно начинается с реконструкции ключевых структур исходного языка — функций, локальных и глобальных переменных, ветвлений, циклов и так далее. Это делает дизассемблированный листинг более наглядным и значительно упрощает его анализ.
Ряд языков программирования заявляют неизменяемость переменных (immutability) как одну из своих главных фич. Среди них семейство ML (OCaml, F#, Standard ML) и Haskell, а также молодые Clojure и Rust. Если ты незнаком с ними, то наверняка удивлялся: а чем это отличается от const в C и C++? Давай разложим все по полочкам.
В этом году анонсирован последний выпуск Python 2.7, после чего Python Software Foundation перестанет поддерживать ветку 2.7. Множество популярных библиотек и фреймворков тоже прекращают официальную поддержку Python 2, а целый ряд дистрибутивов Linux уже не включают его в набор пакетов по умолчанию.
Разработчики GitHub представили новую ИИ-функцию, позволяющую ускорить исправление уязвимостей во время написания кода. Пока…
В Минэкономики предложили создать в России собственное хранилище открытого кода, выделив на этот аналог GitHub более двух ми…
Управлять квадрокоптером — это целое искусство, но писать программы, которые позволяют ему летать в автономном режиме, — дело не менее захватывающее. В этой статье я расскажу о том, как создать программу на Python, которая будет вести беспилотник, и покажу, как протестировать ее в симуляторе.
Мастерить свои электронные устройства — занятие, может быть, и не очень практичное, но увлекательное и познавательное. В этой статье я расскажу, как я создал собственный музыкальный плеер. Конечно, не iPod nano (и даже не mini), но зато с разным железом — SD-картой, кодеком, экраном и клавиатурой.
Два года назад разработчики стриминговой платформы Twitch представили новый способ взаимодействия стримеров и зрителей — Twitch Extensions. Эта система позволяет разработчикам дополнять и улучшать интерфейс как сайта, так и мобильного приложения, создавая различные интерактивные элементы. Я расскажу, как работают эти расширения и как при желании создать свое.
Forth применяют в самых разных областях, включая чипсеты PCI и космические аппараты, а Павел Дуров будет использовать схожий язык в смарт-контрактах криптовалюты TON. Не претерпев больших изменений, один из старейших языков программирования позволяет воплотить многие современные парадигмы. Так что же такое этот загадочный Forth?
Когда количество строчек кода в твоих программах исчисляется миллионами, поиск ошибок осложняется тысячекратно. К счастью, сегодня есть возможность автоматизировать тестирование с помощью фаззеров. Как они работают, почему их стоит применять и на что они способны — об этом ты узнаешь в сегодняшней статье.
Абстракция — основа программирования. Многие вещи мы используем, не задумываясь об их внутреннем устройстве, и они отлично работают. Всем известно, что пользовательские программы взаимодействуют с ядром через системные вызовы, но задумывался ли ты, как это происходит на твоей машине?
Боевые кейлоггеры с кучей функций и защитой от детекта могут стоить десятки, если не сотни долларов. Но кейлоггер не такая уж сложная штука, и при желании ты можешь сделать собственный и даже избежать детекта антивирусами. В этой статье я покажу, как это делается, а заодно поупражняемся в разработке программ на C#.