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

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 Интересно 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
Admin Интересно Meta усиливает юридическую борьбу с израильской компанией NSO из-за атак на WhatsApp. Новости в сети 0
Admin Интересно Цены на оперативную память и SSD могут вырасти на 130 процентов. Новости в сети 0
Admin Интересно Китайские инженеры разработали новый электромотор на основе концепта XIX века. Новости в сети 0
Admin Интересно Таинственный лимит. Рост автоматических жалоб на пиратский контент внезапно остановился. Новости в сети 0
Admin Интересно Крупнейший взрыв на мысе Канаверал поставил под угрозу лунную программу NASA. Новости в сети 0
Admin Интересно Человечество обогнало эволюцию на 88 миллионов лет. Новости в сети 0
Admin Интересно Anthropic призывает замедлить развитие ИИ перед IPO на триллион долларов. Новости в сети 0
Admin Интересно Мошенники используют поддельные сайты с ссылками на GitHub для распространения вредоносного ПО. Новости в сети 0
Admin Интересно Китайская хакерская группа TA4922 расширяет фишинговые атаки на Европу и Южную Африку. Новости в сети 0
Admin Интересно Европарламент меняет поисковик по умолчанию на Qwant. Новости в сети 0
Admin Интересно Голландская группа защиты прав подала жалобу на сбор и продажу интимных данных приложением Flo. Новости в сети 0
Admin Интересно Флорида стала первым штатом США, подавшим в суд на OpenAI. Новости в сети 0
Admin Интересно Критическая уязвимость в Netlogon позволяет злоумышленникам удалённо выполнять код на серверах Windows. Новости в сети 0
Admin Интересно Срочно меняйте ключи: Red Hat оказалась в центре атаки на цепочку поставок через npm. Новости в сети 0
Admin Интересно Anthropic готовится к IPO, опережая OpenAI в гонке за лидерство на рынке ИИ. Новости в сети 0
Admin Интересно В России вводят лимит на количество банковских карт для одного клиента. Новости в сети 0
Admin Интересно ФБР предупреждает болельщиков о мошенничестве с билетами на Чемпионат мира по футболу. Новости в сети 0
Admin Интересно Телескоп Уэбба зафиксировал смену погоды на далёкой планете. Новости в сети 0
Admin Интересно Телескоп NASA Swift падает на Землю, агентство предпринимает экстренные меры. Новости в сети 0
Admin Интересно SpaceX получила крупный контракт на создание военной орбитальной сети. Новости в сети 0
Admin Интересно Мошенники используют новую схему двойной атаки на игроков. Новости в сети 0
Admin Интересно ЕС оштрафовал Temu на $232 млн за продажу незаконных товаров. Новости в сети 0
Admin Интересно На кону интернет 54 стран. Суд Маврикия решает судьбу организации, которая раздаёт IP-адреса всей Африке. Новости в сети 0
Admin Интересно Бум ИИ в Кремниевой долине приводит к резкому росту цен на жилье. Новости в сети 0
Admin Интересно Пользователи массово переходят на DuckDuckGo из-за навязывания ИИ в Google. Новости в сети 0
Admin Интересно Telegram снова теряет прокси. Пользователи в России жалуются на массовые сбои MTProto и VPN. Новости в сети 0
Admin Интересно Uber потратил весь годовой бюджет на ИИ за четыре месяца без видимых результатов. Новости в сети 0
Admin Интересно Хакеры со всего мира съедутся в Москву на Standoff 17. Новости в сети 0
Admin Интересно На Большом адронном коллайдере впервые обнаружили возбуждённый Bc-мезон. Новости в сети 0
Admin Интересно Скрытая экономика вымогательства на основе открытых баз данных. Новости в сети 0
Admin Интересно Microsoft внесёт изменения в Windows на следующей неделе. Новости в сети 0
Admin Интересно SpaceX повысила цены на доступ к Starlink для военных дронов во время войны с Ираном. Новости в сети 0
Admin Интересно Вредоносное ПО обнаружено в пакетах Laravel-Lang после атаки на Git. Новости в сети 0
Admin Интересно Стримерша Morgpie временно заблокирована на Twitch после необычного стрима. Новости в сети 0

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