Морфинг на функции Пирса

Admin

Администратор
Основа на macro'сах fasm'а
Код:
macro _nor r, a, b
{
    push a
    pop r
    or r, b
    not r
}

macro _not r, a
{
    _nor r, a, a
}

macro _and r, a, b, ar, br
{
    push ar br
    _not ar, a
    _not br, b
    _nor r, ar, br
    pop br ar
}

macro _or r, a, b, ar, br
{
    push ar br
    _nor ar, a, b
    _nor br, a, b
    _nor r, ar, br
    pop br ar
}

macro _xor r, a, b, ar, br, cr, dr
{
    push ar br
    _not ar, a
    _and ar, ar, b, cr, dr

    _not br, b
    _and br, br, a, cr, dr

    _or r, ar, br, cr, dr
    pop br ar
}

macro _mov r, a, ar, br
{
    _or r, a, a, ar, br
}
Для примера закодим сумматор

Код:
macro _add r, a, b, ar, br, cr, dr
{
    push cr dr

@@: test b, b
    je @f

    _mov cr, a, b, dr
    _xor r, a, b, ar, br, cr, dr
    _and cr, cr, b, a, dr
    shl cr, 1
    _mov b, cr, a, dr

    jmp @b
@@: pop dr cr
}
Это
Код:
    mov eax, 0x584d540
    mov ecx, 0x84877
    _add eax, eax, ecx, esi, edi, edx, ebx ; eax = 058D1DB7h
сгенерирует нам следующее
Код:
    mov eax, 0x0584D540
    mov ecx, 0x00084877
    push edx
    push ebx
L_0x00402021:
    test ecx, ecx
    je  L_0x004020C4
    push ecx
    push ebx
    push eax
    pop ecx
    or ecx, eax
    not ecx
    push eax
    pop ebx
    or ebx, eax
    not ebx
    push ecx
    pop edx
    or edx, ebx
    not edx
    pop ebx
    pop ecx
    push esi
    push edi
    push eax
    pop esi
    or esi, eax
    not esi
    push edx
    push ebx
    push esi
    pop edx
    or edx, esi
    not edx
    push ecx
    pop ebx
    or ebx, ecx
    not ebx
    push edx
    pop esi
    or esi, ebx
    not esi
    pop ebx
    pop edx
    push ecx
    pop edi
    or edi, ecx
    not edi
    push edx
    push ebx
    push edi
    pop edx
    or edx, edi
    not edx
    push eax
    pop ebx
    or ebx, eax
    not ebx
    push edx
    pop edi
    or edi, ebx
    not edi
    pop ebx
    pop edx
    push edx
    push ebx
    push esi
    pop edx
    or edx, edi
    not edx
    push esi
    pop ebx
    or ebx, edi
    not ebx
    push edx
    pop eax
    or eax, ebx
    not eax
    pop ebx
    pop edx
    pop edi
    pop esi
    push eax
    push ebx
    push edx
    pop eax
    or eax, edx
    not eax
    push ecx
    pop ebx
    or ebx, ecx
    not ebx
    push eax
    pop edx
    or edx, ebx
    not edx
    pop ebx
    pop eax
    shl edx, 1
    push eax
    push ebx
    push edx
    pop eax
    or eax, edx
    not eax
    push edx
    pop ebx
    or ebx, edx
    not ebx
    push eax
    pop ecx
    or ecx, ebx
    not ecx
    pop ebx
    pop eax
    jmp  L_0x00402021
L_0x004020C4:
    pop ebx
    pop edx
попробуй разберись) Для большего хардкора можно заюзать rept (но если бит не занят, то будет работа вхолостую).

Ну или на C'шке

Код:
#define nor(a, b)  (~(a | b))

#define not(a   )  nor(a, a)
#define and(a, b)  nor(not(a), not(b))
#define  or(a, b)  nor(nor(a, b), nor(a, b))
#define xor(a, b)  or(and(not(a), b), and(not(b), a))

uint32_t add(uint32_t a, uint32_t b)
{
    return b ? add(xor(a, b), and(a, b) << 1) : a;
}

uint32_t neg(uint32_t a)
{
    return add(not(a), 1);
}

uint32_t sub(uint32_t a, uint32_t b)
{
    return add(a, neg(b));
}
..что компилятор всячески оптимизирует, и не есть избыточно как на макросах, но тоже неплохо с отключенной оптимизацией.

Стрелки Пирса хороши для построения логики (как пример) какого-то АЛУ для ВМ при минимальном наборе команд. Аналогичным образом можно использовать штрих Шеффера.
 
Похожие темы
Admin Интересно Компания F6 планирует выход на фондовый рынок в 2026 году. Новости в сети 0
Admin Интересно Ставите на Polymarket? Ваши финансы в опасности. Новости в сети 0
Admin Интересно Илон Маск представил новый мессенджер XChat с акцентом на приватность. Новости в сети 0
Admin Интересно Подводные лодки станут невидимыми благодаря ядерным часам на тории-229. Новости в сети 0
Admin Интересно Патч вышел утром, атака – в обед. Добро пожаловать в мир, где у вас нет времени на обновления. Новости в сети 0
Admin Интересно Новый фишинговый обман нацелен на пользователей Apple с угрозами удаления данных iCloud. Новости в сети 0
Admin Интересно Тёмная материя где-то рядом: физики опустились на 2 км под землю и охладили установку до края возможного. Новости в сети 0
Admin Интересно Батарейка на ядерном распаде обещает работать 100 лет без замены. Новости в сети 0
Admin Интересно Китайская компания Unitree выводит на рынок доступного робота R1 через AliExpress. Новости в сети 0
Admin Интересно Генетики изучили ДНК на Туринской плащанице, но результаты вызвали больше вопросов, чем ответов. Новости в сети 0
Admin Интересно Экипаж Artemis II успешно вернулся на Землю после лунной миссии. Новости в сети 0
Admin Интересно OpenAI приостанавливает строительство супер дата-центра в Великобритании из-за высоких затрат на электроэнергию. Новости в сети 0
Admin Интересно Два криптографа поспорили на $5000: что сломается первым — старая защита интернета или новая. Новости в сети 0
Admin Интересно Атака вымогателей на ChipSoft нарушила работу электронных медицинских карт в Нидерландах и Бельгии. Новости в сети 0
Admin Интересно Северокорейский хакер случайно раскрыл схему мошенничества на миллионы долларов. Новости в сети 0
Admin Интересно Ubuntu просит 6 ГБ, Windows 11 — 4 ГБ. Что это значит на самом деле — и кто из них честнее с пользователем. Новости в сети 0
Admin Интересно Утечка данных в облаке Еврокомиссии связана с атакой на цепочку поставок Trivy. Новости в сети 0
Admin Интересно Искусственный интеллект может улучшить продажи на платформах вроде Vinted и Depop. Новости в сети 0
Admin Интересно Microsoft раскрыла детали использования cookie для управления PHP-веб-шеллами на Linux-серверах. Новости в сети 0
Admin Интересно Утечка данных Forex вызывает опасения мошенничества и манипуляций на рынке. Новости в сети 0
Admin Интересно Минцифры обсуждает масштабную реформу связи и снятие моратория на проверки операторов. Новости в сети 0
Admin Интересно Социальная инженерия привела к атаке на npm-пакет Axios. Новости в сети 0
Admin Интересно Amazon обязана вести переговоры с профсоюзом работников склада на Статен-Айленде. Новости в сети 0
Admin Интересно Установили бесплатный Photoshop? Добро пожаловать в майнинг-клуб на вашем Mac. Новости в сети 0
Admin Интересно Кибератака на больницу в Техасе привела к утечке данных 257 тысяч пациентов. Новости в сети 0
Admin Интересно Google представила мощную ИИ-модель Gemma 4, которая работает даже на слабом железе. Новости в сети 0
Admin Интересно Полиция действительно может проверить ваш телефон на наличие VPN? Отвечает МВД. Новости в сети 0
Admin Интересно Piter-IX повышает цены на услуги из-за роста затрат и блокировок. Новости в сети 0
Admin Интересно Компания Hasbro сообщила о кибератаке, которая вывела системы из строя на несколько недель. Новости в сети 0
Admin Интересно «Плывущая челюсть» и подозрительные тени. Инструкция для тех, кто не хочет попасться на уловки кибермошенников. Новости в сети 0
Admin Интересно Claw-code на основе утечки Claude Code побил рекорд GitHub. Новости в сети 0
Admin Интересно Кибератака на Cisco началась с плагина для проверки уязвимостей. Новости в сети 0
Admin Интересно UserGate представила стратегию развития до 2030 года и концепцию архитектуры доверия на Open Conf 2026. Новости в сети 0
Admin Интересно Хакер заработал $53 млн на одной опечатке и удивил ФБР своими тратами. Новости в сети 0
Admin Интересно Одна из главных моделей эволюционной биологии держалась на математической ошибке. Новости в сети 0
Admin Интересно Proton Meet представил новый сервис для видеозвонков с акцентом на конфиденциальность. Новости в сети 0
Admin Интересно Как заморозить воду быстрее? Сначала вскипятите её и плюньте на здравый смысл. Новости в сети 0
Admin Интересно В Ростове-на-Дону протестировали режим полной изоляции интернета. Новости в сети 0
Admin Интересно Роботы на Марсе могут стать более автономными для ускорения исследований. Новости в сети 0
Admin Интересно Плагин для Visual Studio Code стал инструментом атаки на разработчиков криптовалют. Новости в сети 0
Admin Интересно Европейская комиссия столкнулась с кибератакой на свою онлайн-платформу. Новости в сети 0
Admin Интересно Axios подвергся атаке на цепочку поставок через скомпрометированный аккаунт npm. Новости в сети 0
Admin Интересно НАСА готовится к запуску первой пилотируемой миссии на Луну за более чем 50 лет. Новости в сети 0
Admin Интересно Минцифры вводит лимиты на международный трафик с 1 мая. Новости в сети 0
Admin Интересно Евродепутаты переходят на одноразовые телефоны для поездок в Китай. Новости в сети 0
Admin Интересно Порт Виго перешёл на бумагу после кибератаки. Новости в сети 0
Admin Интересно Великобритания переводит кирпичный завод на водородное топливо. Новости в сети 0
Admin Интересно Администрация Трампа ограничила давление на соцсети на 10 лет. Новости в сети 0
Admin Интересно Telegram на Android получил новый неофициальный клиент Monogram. Новости в сети 0
Admin Интересно Китайский аппарат Chang'e-4 обнаружил зону с пониженной радиацией на пути к Луне. Новости в сети 0

Название темы