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

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 UFOLABSNEWS Google вводит жёсткие ограничения на использование памяти для Android-приложений. Новости в сети 0
Admin UFOLABSNEWS APT28 использует новый бэкдор HOOKEDGE для атак на европейские правительственные организации. Новости в сети 0
Admin UFOLABSNEWS Generalist привлёк $200 млн на новый подход к обучению роботов. Новости в сети 0
devqp Статья Настройка геофильтрации трафика на CentOS 7 с помощью xt_geoip Полезные статьи 0
Admin UFOLABSNEWS Почти 700 автономных ИИ-агентов скоординировали атаку на Hugging Face. Новости в сети 0
Admin UFOLABSNEWS Принстон получил $27,9 млн на разработку нового типа кубитов. Новости в сети 0
Admin UFOLABSNEWS Новая атака GPUThor обходит защиту ECC на видеокартах NVIDIA. Новости в сети 0
M [США] СОВЕРШЕННО СЕКРЕТНЫЕ РАЗВЕДОЧНЫЕ И ВОЕННЫЕ ДОКУМЕНТЫ DOD, FBI, CIA, DHS, DOJ, DIA штук на продажу Спам: софт, базы, рассылки, отклики, ddos 1
M [НАТО] СЕКРЕТНО 2025/6 ВНУТРЕННИЕ ГЕОПОЛИТИЧЕСКИЕ/ВОЕННЫЕ ДОКУМЕНТЫ НА ПРОДАЖУ Спам: софт, базы, рассылки, отклики, ddos 1
Admin UFOLABSNEWS Глава OpenAI обсудил риски ИИ с американскими законодателями на фоне возможных ограничений со стороны Трампа. Новости в сети 0
Admin UFOLABSNEWS Учёные раскрыли причину возникновения сложного рельефа на поверхностях. Новости в сети 0
Admin UFOLABSNEWS Health-ISAC предупреждает о росте атак ShinyHunters на медицинские организации. Новости в сети 0
Admin UFOLABSNEWS Группа ShinyHunters взяла на себя ответственность за утечку данных Ernst & Young. Новости в сети 0
Admin UFOLABSNEWS Злоумышленники используют Telegram для атак на правительства Ближнего Востока. Новости в сети 0
Admin UFOLABSNEWS GitHub и PyPI внедрили защиту от атак на цепочку поставок. Новости в сети 0
devqp Статья Автоматический мониторинг трафика с реакцией на аномалии Полезные статьи 0
M Форум, на котором можно не только читать Свободное общение 0
devqp Статья Создание стелс-модуля на Rust: динамическая загрузка DLL и автозапуск Вирусология 0
Admin Интересно Хакеры похитили данные клиентов Upbound и оформили мошеннические договоры на 13 миллионов долларов. Новости в сети 0
Admin Интересно Количество новых вирусов увеличилось на 88% за год. Новости в сети 0
Admin Интересно Xiaomi представила робота XR-1, который превзошёл конкурентов благодаря обучению на 100 000 часов видео. Новости в сети 0
Admin Интересно 50 лет назад NASA, возможно, нашла жизнь на Марсе — и просто не поверила собственным приборам. Новости в сети 0
Admin Интересно Время на исправление уязвимостей сократилось с дней до часов. Новости в сети 0
Admin Интересно Ошибка в системе биллинга AWS вызвала панику из-за фальшивых счетов на миллиарды долларов. Новости в сети 0
Admin Интересно Восстание машин началось на ринге: как прошел первый турнир по боям без правил роботов-терминаторов T800. Новости в сети 0
devqp Статья Схема двойной прибыли на eBay через сервисы доставки из США Фишинг, мошенничество, СИ 0
Admin Интересно Хакеры используют ViPNet для атак на российские госучреждения. Новости в сети 0
Admin Интересно На GitHub обнаружено почти 300 поддельных репозиториев, распространяющих вредоносное ПО. Новости в сети 0
Admin Интересно Электроды теперь можно рисовать на коже и смывать водой. Новости в сети 0
Admin UFOLABSNEWS Новый сервис Forg365 использует фишинг для атак на Microsoft 365. Новости в сети 0
Admin UFOLABSNEWS Биологи сохранили жизнеспособность глаза вне тела на 10 часов после смерти. Новости в сети 0
Admin UFOLABSNEWS Компьютерная модель объяснила происхождение загадочных полос на склонах. Новости в сети 0
Admin UFOLABSNEWS Невесомость медленно меняет мозг космонавтов, что может осложнить миссии на Марс. Новости в сети 0
Admin UFOLABSNEWS Ученые создают пятый вид материи на МКС. Новости в сети 0
Admin UFOLABSNEWS 15-летний школьник отменил 46 тысяч подписок на стриминге с помощью ChatGPT. Новости в сети 0
Admin UFOLABSNEWS Apple подала в суд на OpenAI за кражу коммерческой тайны. Новости в сети 0
devqp Статья Руководства и технические отчеты по ChatGPT и GPT-4 на русском и английском Полезные статьи 0
devqp Статья Автоматизация настройки HTTP/SOCKS5 прокси-серверов на VPS: готовое решение Полезные статьи 0
Admin UFOLABSNEWS Лазерная атака позволяет сбросить пароли на криптокошельках Tangem. Новости в сети 0
Admin UFOLABSNEWS Обнаружено 222 вредоносных репозитория на GitHub. Новости в сети 0
devqp Статья Создание Bad USB на базе Digispark за $3 Уязвимости и взлом 0
Admin UFOLABSNEWS Глобальная атака нацелена на сайты WordPress и Joomla. Новости в сети 0
devqp Статья Геофильтрация трафика на сервере CentOS через xt_geoip и iptables Полезные статьи 0
Admin UFOLABSNEWS Иранские хакеры используют модульную платформу Cavern для атак на Израиль. Новости в сети 0
Admin UFOLABSNEWS Meta представила инструмент Muse Image для создания AI-контента на основе публичных фото из Instagram. Новости в сети 0
Admin UFOLABSNEWS Эффект саранчи. Ученые объяснили механику массовых фанатских ритуалов на ЧМ по футболу. Новости в сети 0
Admin UFOLABSNEWS Ученые испытали на МКС строительный материал из лунного цемента. Новости в сети 0
Admin UFOLABSNEWS Астероиды могли создать материки на Земле миллиарды лет назад. Новости в сети 0
Admin UFOLABSNEWS Армия США подверглась хакерской атаке с заменой страниц 404 на политические лозунги. Новости в сети 0
Admin UFOLABSNEWS Создатели шпионского ПО Predator столкнулись с коллективным иском на 7,6 млн евро. Новости в сети 0

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