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

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 Интересно Крупнейший взрыв на мысе Канаверал поставил под угрозу лунную программу 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
Admin Интересно Данные водителей Mercedes-Benz оказались на хакерском рынке. Новости в сети 0
Admin Интересно Русскоязычный мошенник пять лет выдавал себя за американского патриота и зарабатывал на криптомошенничестве. Новости в сети 0
Admin Интересно Ученые создали модель кишечника на чипе для изучения воспаления и риска рака. Новости в сети 0
Admin Интересно Apple предотвратила мошенничество на $2,2 млрд благодаря своим алгоритмам. Новости в сети 0
Admin Интересно Искусственный интеллект собрал данные о ценах на багеты по всей Франции. Новости в сети 0
Admin Интересно Flipper Devices анонсировала карманный компьютер Flipper One на Linux. Новости в сети 0
Admin Интересно Спешка перед рабочим созвоном может привести к потере данных. Разбираем новую волну атак на пользователей Microsoft Teams. Новости в сети 0
Admin Интересно Посетитель Disneyland подал иск на $5 млн за использование технологии распознавания лиц. Новости в сети 0
Admin Интересно Подросток из Одессы похитил 28 тысяч аккаунтов, несмотря на двухфакторную аутентификацию. Новости в сети 0
Admin Интересно США объявили войну интимным сливам: 48 часов на удаление и штрафы до 53 тысяч долларов. Новости в сети 0
Admin Интересно Вредоносное ПО Showboat атакует телекоммуникационные компании на Ближнем Востоке. Новости в сети 0
Admin Интересно Пока вы спите, ваш Android ударно трудится на рекламных фермах. Новости в сети 0
Admin Интересно Право на ремонт или дыра в безопасности. В Госдуме спорят, должны ли производители отдавать техдокументацию сторонним мастерам. Новости в сети 0
Admin Интересно Студенты возмущены после того, как ИИ пропустил сотни имён на выпускной церемонии. Новости в сети 0
Admin Интересно Критическая уязвимость в Drupal Core подвергает сайты на PostgreSQL атакам. Новости в сети 0
Admin Интересно Intuit сокращает 17% сотрудников из-за реструктуризации с упором на ИИ. Новости в сети 0
Admin Интересно Nintendo анонсировала мобильное приложение Pictonico с 80 мини-играми на основе личных фотографий. Новости в сети 0
Admin Интересно NPM принудительно сбрасывает токены из-за масштабных атак на цепочку поставок. Новости в сети 0
Admin Интересно CISA оставила пароли и токены AWS в открытом доступе на GitHub на шесть месяцев. Новости в сети 0
Admin Интересно Купился на обновление в мессенджере? Получи скрытый троян, который смотрит на тебя через веб-камеру. Новости в сети 0

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