Рубрика «ассемблер» - 16

Однажды, совсем недавно, на планшетах с Windows Microsoft потеряла миллионы долларов. Ну а мы сегодня просто будем писать под них на ассемблере.

Пишем Hello World на ассемблере под Windows RT с использованием winapi

Нам понадобятся следующие вещи.

  • Установленная Microsoft Visual Studio с поддержкой ARM ассемблера, например 2012.
  • Jailbreak'нутый планшет с установленной Windows RT, например Microsoft Surface RT.

Для начала создадим отдельную папку для проекта, в которой создадим файл arm.asm, содержимое которого под катом.
Читать полностью »

Прочитав пост mrsom о пересадке микроконтроллерной начинки в ретротахометр от Жигулей, решил рассказать об одной своей давней микроконтроллерной разработке (2006 год), сделанной для плавного управления электровентилятором охлаждения двигателей переднеприводных моделей ВАЗа.

image

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

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

Сразу скажу что мы не будем использовать дополнительные библиотеки типа libc. А будем пользоваться тем что предоставляет нам ядро.

Уже только ленивый не писал подобных статей, — сервер на perl, node.js, по-моему даже были попытки на php.

Вот только на ассемблере еще не было, — значит нужно заполнить пробелы.
Читать полностью »

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

В качестве примера я возьму простенькую систему на кристалле, основанную на 32-битном гарвардском RISC-процессоре с одноуровневой кэш-памятью и без MMU (что-то типа ARM Cortex-R). Процессор подключен к контроллеру внешней памяти через 32-битную шину AMBA AHB, работающую на частоте процессора.

Секреты кэш памяти, или как потратить 1000 тактов на 10 команд
Читать полностью »

Одним холодным майским днем от скуки решил я таки приступить к изучению этого удивительного языка — Brainfuck'a.
Его интерпретаторы публиковали на Хабре уже очень много раз.
Но мне хотолось изучить поглубже сам язык и алгоритмы на нем, а не писать очередной интерпретатор. Поэтому было решено сделать из мухи слона компилятор какого-нибудь высокоуровневого языка в brainfuck.
Однако очень быстро начался реальный brainfuck: отсутствие оператора if, отсутствие произвольного доступа к ячейкам и куча других проблем сразу свалилась на меня. Пришлось повременить с высокоуровневым языком и сделать для начала ассемблер, в который и будет компилироваться высокоуровневый язык.
О реализации ассемблера под катом.
Читать полностью »

Пишу игрушечную ОС (о прерываниях)
Данная статья написана в форме поста для блога. Если она окажется вам интересной, то будет продолжение.

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

Общая задумка (пока весьма далёкая от реализации) следующая: единое 64-битное адресное пространство с вечно живущими нитями (как у Phantom OS); виртуальная машина, обеспечивающая безопасность исполнения кода. На данный момент реализованы:

1. загрузка ядра при помощи multiboot-загрузчика (GRUB);
2. текстовый VGA-режим (16-цветов, kprintf);
3. простой интерфейс настройки отображения страниц;
4. возможность обработки прерываний на C;
5. идентификация топологии процессоров (сокеты, ядра, потоки) и их запуск;
6. работающий прототип SMP-планировщика с поддержкой приоритетов;

Пропустим описание multiboot-загрузки и работы с VGA-режимом (об этом не писал, разве что, ленивый). Про отображение страниц тоже не хочу писать, боюсь это будет скучно (может, в другой раз). Давайте лучше поговорим об обработке прерываний.
Читать полностью »

В университете на одном профильном предмете начали изучать стенд на основе микроконтроллера МК-51, дисплея HD44780, клавиатуры. Все это дело программируется через COM порт с помощью ассемблера. На тот момент я изучат микроконтроллеры семейства AVR (а именно Atmega8), поэтому появилось желание научиться инициализировать и выводить на экран какую-нибудь информацию с помощью ассемблера без применения библиотек. После продолжительных поисков нашел только то, как дисплей запрограммировать на языке C с помощью библиотек, в которых не совсем понятно, что происходит. Поэтому было принято решение написать код самому, с использованием ассемблерных команд. Дисплей 0802, две строки.
Читать полностью »

Это перевод поста, опубликованного в англоязычном блоге «Лаборатории Касперского».
Он не столько о вирусах, сколько о демосцене и лучших произведениях в этом жанре искусства.

Недавно Евгений Касперский опубликовал в своем блоге запись «Призраки вирус-оперы, или Ситхи Ассемблера», посвященную сверхкомпактным и мощным вредоносным приложениям, обнаруженным недавно, но написанным в стиле 15-летней давности. Мой возраст позволяет помнить этих парней и их блестящую работу – речь ведь не обязательно о создателях вирусов, они были лишь частью программистского сообщества, специализировавшегося на «ручном» написании кода и программировании на ассемблере. Это похоже на Джедаев и Ситхов из мира «Звездных войн» – существ, чье оружие, лазерные мечи, было крайне специфическим и, несмотря на это, воспринималось всеми остальными героями как одно из самых мощных (кроме шуток, спросите Йоду). Увы, похоже, людей, которые помнят этих мастеров-программистов, осталось трое (я, Касперский и Билл Гейтс). А если серьезно – в сегодняшнем мире, где драйвер мышки занимает 50 мегабайт, довольно трудно вообразить, на что способен хакер старой школы при совсем небольшом количестве выделенных ресурсов. Поэтому я решил показать, о чем говорит Евгений, на несколько ином примере – а вы уж решайте, насколько плохи новости об «олдскульных» авторах заразы.
Читать полностью »

Продолжаем наше исследование игры «Сапёр» от Microsoft.

Данная статья является продолжением первой статьи.

О чем будет идти речь:
1) Взлом, основанный на переполнении буфера
2) Взлом игровых мин
3) Исследование архитектуры игры.

I

Откроем игру, следом за ней CE( Cheat Engine ). Присоединяемся к процессу игры:

image

Читать полностью »

Привет, хабрахабр.

Листая одним декабрьским вечером различные хабы, я заметил, что нигде давненько не бывало статей о реверсинге. А разборов crackme/keygenme – и подавно. И вдруг меня осенило: почему бы не написать свой туториал?

Разбор простого криптографического keygenme

Тех, кого интересует разбор простенького криптографического keygenme и что же в итоге получилось, прошу под кат.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js