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

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 Пентагон создал аналог Starlink с закрытыми лазерами и системой наведения на гиперзвуковые цели. Новости в сети 0
Admin UFOLABSNEWS Хакеры взломали камеру на курятнике и начали следить за военными. Новости в сети 0
Admin UFOLABSNEWS Слепоту атаковали сразу генами и электроникой. Появились результаты на людях. Новости в сети 0
Admin UFOLABSNEWS Джонатан — самое древнее наземное животное на Земле. Возможно, он хранит секреты противостояния смерти. Новости в сети 0
Admin UFOLABSNEWS Китайский хакер использовал ARTEX AI и Claude для атак на банки Южной Кореи. Новости в сети 0
Admin UFOLABSNEWS ИИ вышел на киберполигон. На Standoff у хакеров появились цифровые напарники. Новости в сети 0
Admin UFOLABSNEWS Антибот теперь работает на фишеров. Wazza прячет Adobe за системой фильтров. Новости в сети 0
Admin UFOLABSNEWS Anthropic признала право ИИ Claude на защиту от жестокости. Новости в сети 0
Admin UFOLABSNEWS Хакеры заработали $1,262,000 за 98 уязвимостей на Pwn2Own Ireland 2026. Новости в сети 0
Admin UFOLABSNEWS На бюджетных Android-устройствах обнаружено предустановленное вредоносное ПО. Новости в сети 0
Admin UFOLABSNEWS Hybrid Intelligence — новая схема Windows 11: ваш компьютер думает сам, а при необходимости зовёт на помощь облако. Новости в сети 0
Admin UFOLABSNEWS Кампания FakeGit вернулась с 17 610 вредоносными репозиториями на GitHub. Новости в сети 0
Admin UFOLABSNEWS Киберпреступники использовали инструмент ARTEX для атак на южнокорейские финансовые компании. Новости в сети 0
Admin UFOLABSNEWS Тайга вышла на связь. Российские спутники подключили сотовую вышку к космосу. Новости в сети 0
Admin UFOLABSNEWS На виртуальную клетку, которая будет предсказывать будущее, бросают $1,8 млрд. Новости в сети 0
Admin UFOLABSNEWS ASOS подтвердила утечку данных из-за фишинговой атаки на сотрудника. Новости в сети 0
Admin UFOLABSNEWS Samsung Galaxy S26 взломали трижды на Pwn2Own Ireland 2026. Новости в сети 0
Admin UFOLABSNEWS ФБР предупреждает о продолжающихся атаках FortiBleed на VPN-шлюзы FortiGate. Новости в сети 0
devqp Статья Эксплуатация привязанных PayPal на Instant-Gaming: методы обхода антифрода Фишинг, мошенничество, СИ 0
devqp Статья Реализация API для блокировки Windows-ПК на Rust Полезные статьи 0
Admin UFOLABSNEWS Индия отправляет Nvidia Orin на орбиту и разрешает клиентам загружать туда свои модели. Новости в сети 0
Admin UFOLABSNEWS Microsoft раскрыла детали атаки Storm-3168 на Azure. Новости в сети 0
Admin UFOLABSNEWS Bitget возобновил вывод Bitcoin после хакерской атаки на $387,5 млн. Новости в сети 0
devqp Статья Реализация вредоносного ПО на Rust с загрузкой DLL и автозапуском Вирусология 0
Admin UFOLABSNEWS ИИ отбирает память у смартфонов. К 2030 году бюджетный сегмент может сократиться на 40%. Новости в сети 0
Admin UFOLABSNEWS Ubuntu переходит на еженедельные обновления ядра из-за возросшего количества уязвимостей. Новости в сети 0
Admin UFOLABSNEWS Компания Kiteworks рекомендует клиентам отключить системы на 9 часов из-за угрозы кибератаки. Новости в сети 0
Admin UFOLABSNEWS Meta* представляет Muse — компактного ИИ-помощника на связке ключей. Новости в сети 0
Admin UFOLABSNEWS Google направит ИИ-хакеров на больницы и транспорт с целью поиска уязвимостей. Новости в сети 0
Admin UFOLABSNEWS ChatGPT на смартфоне теперь может выполнять сложные задачи по голосовой команде. Новости в сети 0
Admin UFOLABSNEWS Четвероногий робот впервые пробежал полный марафон на одной батарее. Новости в сети 0
Admin UFOLABSNEWS Хакеры взломали автомобильное табло и показали расстрельный список на трассе. Новости в сети 0
Admin UFOLABSNEWS Спецназ США получит автономного охотника на дронов, независимого от GPS и связи. Новости в сети 0
Admin UFOLABSNEWS Meta выпустила ИИ-очки без камеры как ответ на страх скрытой съёмки. Новости в сети 0
Admin UFOLABSNEWS Обнаружена уязвимость в ядре Linux, позволяющая выйти из контейнера и получить права root на хосте. Новости в сети 0
Admin UFOLABSNEWS ИИ на 30 миллиардов параметров теперь помещается в смартфоне. Новости в сети 0
Admin UFOLABSNEWS Мошенники имитируют взлом Госуслуг и пугают кредитом на миллионы. Новости в сети 0
Admin UFOLABSNEWS Злоумышленники использовали поддельный LastPass на GitHub для распространения вредоносного ПО. Новости в сети 0
Admin UFOLABSNEWS Шведский регулятор оштрафовал Miljödata на $183 тыс. за утечку данных 2,2 млн человек. Новости в сети 0
Admin UFOLABSNEWS Москвич слил сериал в сеть и заработал обвинение на 15 миллионов рублей. Новости в сети 0
Admin UFOLABSNEWS Биологи обнаружили новую химическую модификацию, влияющую на работу генов бактерий. Новости в сети 0
Admin UFOLABSNEWS Новая батарея для электромобиля увеличивает запас хода на 80 км и заряжается до 97% за 9 минут. Новости в сети 0
Admin UFOLABSNEWS Copilot переписал собственный runtime с TypeScript на Rust. Новости в сети 0
Admin UFOLABSNEWS Пользователи подали в суд на OpenAI, Anthropic, Google и xAI из-за ограничений ИИ. Новости в сети 0
Admin UFOLABSNEWS Google оштрафован на 403 миллиона евро за нарушения приватности данных о местоположении. Новости в сети 0
Admin UFOLABSNEWS ФСТЭК расширила сертификат PT NGFW на промышленные сети. Новости в сети 0
Admin UFOLABSNEWS Apple изучает возможность возвращения на серверный рынок. Новости в сети 0
Admin UFOLABSNEWS США переходят на массовые беспилотные самолёты из-за высокой стоимости истребителей. Новости в сети 0
Admin UFOLABSNEWS Две критические уязвимости RCE угрожают сотням тысяч сайтов на WordPress. Новости в сети 0
Admin UFOLABSNEWS Результаты тестов процессора Apple M6 появились на Geekbench. Новости в сети 0

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