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

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 Интересно GitHub вводит ограничения на количество pull request от сторонних разработчиков. Новости в сети 0
Admin Интересно Microsoft сломала базовую функцию Outlook на macOS. Новости в сети 0
Admin Интересно Разведслужбы предупреждают о появлении ИИ-моделей для атак на государственные системы. Новости в сети 0
Admin Интересно Плагины WordPress от ShapedPlugin были скомпрометированы в атаке на цепочку поставок. Новости в сети 0
Admin Интересно 76% кибератак в России направлены на остановку бизнеса. Новости в сети 0
Admin Интересно Канадская разведка получила разрешение на удаление ботнетов с устройств. Новости в сети 0
Admin Интересно Google усложняет установку приложений из сторонних источников на Android. Новости в сети 0
Admin Интересно В Бразилии хакеры отправили тревожное сообщение с зашифрованным словом на телефоны граждан. Новости в сети 0
Admin Интересно Интерпол зафиксировал рост дипфейков на 600% в Юго-Восточной Азии. Новости в сети 0
Admin Интересно Группировка Gentlemen разработала инструменты для отключения антивирусов на 48 продуктах. Новости в сети 0
Admin Интересно ИИ станет главным судьёй на чемпионате мира по футболу 2026 года. Новости в сети 0
Admin Интересно Навсегда уязвимы. В процессорах Apple A12 и A13 выявили неустранимую брешь на уровне железа. Новости в сети 0
Admin Интересно Telegram удалил миллионы каналов, но киберпреступники остались на платформе. Новости в сети 0
Admin Интересно Обнаружено 10 000 вредоносных репозиториев на GitHub, нацеленных на разработчиков и ИИ-агентов. Новости в сети 0
Admin Интересно Китайская команда Dragon Chilling лидирует на командном чемпионате мира по шахматам. Новости в сети 0
Admin Интересно Полиция Огайо потратила 67 тысяч долларов на бесполезного робота-патрульного. Новости в сети 0
Admin Интересно Оборонный подрядчик оштрафован на $500 тыс. за ложные данные о кибербезопасности. Новости в сети 0
Admin Интересно Российских ИТ-специалистов научат ловить хакеров на реальных сценариях. Новости в сети 0
Admin Интересно Азиатские мошенники зарабатывают $40 миллиардов в год на фальшивых инвестициях и романтических аферах. Новости в сети 0
Admin Интересно Roblox стал мишенью для организованных атак на игры. Новости в сети 0
Admin Интересно GrapheneOS выходит на Android 17 с расширенной поддержкой устройств. Новости в сети 0
Admin Интересно Apple переводит скрытые адреса почты на новый домен. Новости в сети 0
Admin Интересно Прощай, кремний. Разработчикам микроэлектроники предложили перейти на бриллианты. Новости в сети 0
Admin Интересно Hetzner резко повысил цены на виртуальные серверы. Новости в сети 0
Admin Интересно Ошибка в LiteLLM позволяет подменять ответы ИИ на чужой код. Новости в сети 0
Admin Интересно США призывают страны НАТО тратить военный бюджет на замену оборудования Huawei. Новости в сети 0
Admin Интересно Ученые предложили новую теорию происхождения воды на Земле. Новости в сети 0
Admin Интересно Атака на цепочку поставок затронула популярные плагины WordPress через CDN Awesome Motive. Новости в сети 0
Admin Интересно AMD сэкономила на вознаграждении и получила репутационный удар. Новости в сети 0
Admin Интересно Мошенники заработали миллион на живых обоях в Chrome. Новости в сети 0
Admin Интересно Более 73 тысяч аккаунтов пострадали от утечки данных на платформе Tchap. Новости в сети 0
Admin Интересно Многоножки оказались на 35 млн лет старше, чем предполагалось. Новости в сети 0
Admin Интересно Подводным роботам больше не нужна дозаправка на поверхности — теперь их будут кормить лазерными лучами прямо на глубине. Новости в сети 0
Admin Интересно SpaceX привлекла рекордные $75 млрд на IPO, сохранив контроль Илона Маска. Новости в сети 0
Admin Интересно NSO Group продолжает атаковать пользователей WhatsApp, несмотря на судебный запрет. Новости в сети 0
Admin Интересно Надувной Маск высотой 12 метров стал символом протеста на Таймс-сквер. Новости в сети 0
Admin Интересно Microsoft Office на Mac потеряет функциональность с июля 2026 года. Новости в сети 0
Admin Интересно NASA исследует влияние солнечного ветра на поверхность Луны. Новости в сети 0
Admin Интересно OceanLotus переключился с внешнего шпионажа на внутренние цели. Новости в сети 0
Admin Интересно Китайский ботнет JDY активно использует новые уязвимости для атак на США. Новости в сети 0
Admin Интересно GitHub отключит скрипты установки npm по умолчанию для предотвращения атак на цепочку поставок. Новости в сети 0
Admin Интересно Телескоп Джеймса Уэбба раскрыл различия между рассветом и закатом на экзопланете WASP-121 b. Новости в сети 0
Admin Интересно Женская редакция NûJINHA продолжает работу несмотря на кибератаки и угрозы. Новости в сети 0
Admin Интересно Apple отстояла право на честность и выиграла суд. Новости в сети 0
Admin Интересно Встроенный в Windows антивирус теперь работает на взломщиков и раздаёт права SYSTEM. Новости в сети 0
Admin Интересно Магазин будущего уже открыт: робот за прилавком, ноль людей на смене, работает круглосуточно. Новости в сети 0
Admin Интересно Жителей Красноярска пустят на концерт только по пропуску из мессенджера MAX. Новости в сети 0
Admin Интересно OpenAI подала заявку на IPO в США вслед за Anthropic. Новости в сети 0
Admin Интересно Учёные обнаружили скрытую симметрию отражения солнечного света на Земле. Новости в сети 0
Admin Интересно Вымогатели Pink используют голосовой фишинг для атак на корпоративные системы. Новости в сети 0

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