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

Admin

Original poster
Administrator
Сообщения
916
Реакции
753
Посетить сайт
Основа на 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));
}
..что компилятор всячески оптимизирует, и не есть избыточно как на макросах, но тоже неплохо с отключенной оптимизацией.

Стрелки Пирса хороши для построения логики (как пример) какого-то АЛУ для ВМ при минимальном наборе команд. Аналогичным образом можно использовать штрих Шеффера.
 
Название темы
Автор Заголовок Раздел Ответы Дата
Support81 «Крыша» за криптовалюту: экс-полицейский МВД России в розыске за взятки на 4,9 млрд рублей Новости в сети 0
turbion0 Мошенник под видом начальника обманул петрозаводчанку почти на миллион рублей Новости в сети 0
Support81 Экс-сотрудник ФСБ на службе у хакеров: 9 лет тюрьмы за крышевание преступников Новости в сети 0
Y Ожидает оплаты YTparser - Парсер ютуба в телеграмме | Почты | ВКонтакте | Ссылки на каналы | И многое другое Продажа софта 0
Emilio_Gaviriya Статья Внедрение DNS-over-HTTPS на уровне операционной системы в KDE neon и Ubuntu. Анонимность и приватность 0
Support81 LockBit или DragonForce? Кибератака на Палау привела IT-специалистов в замешательство Новости в сети 0
hackway Куплю Автоматическая Скупка Аккаунтов ВКонтакте | Самые выгодные предложения на рынке! Куплю/Продам 0
El_IRBIS Интересно Проверка маршрутизатора на наличие вредоносных программ: полное руководство Вирусология 0
Support81 Криптовалютная империя на крови: KuCoin обвиняется в отмывании $9 млрд. Новости в сети 1
Tera_shop Продам Telegram аккаунты для рассылки, инвайта (Session + Json, Tdata) Tear-shop.ru Купить аккаунты на сайте: https://tear-shop.ru/ Tear-shop - Магазин Аккаунты/Админки/Документы 1
obscure Интересно YouTube канал на кардер\хаккинг\скам\кодер тематику Видео/Музыка 0
Support81 Был героем – стал злодеем: почему уставшие ИБ-специалисты встают на путь криминала Новости в сети 0
F Ручное размещение тем на разных форумах и продажа базы. Ищу работу. Предлагаю свои услуги. 2
Support81 Loop DoS: бесконечные циклы на службе киберпреступников Новости в сети 0
M Работа на выгодных условиях без особого труда. Предоставляю работу. Ищу специалиста. 0
Support81 ФБР: технологии могут повлиять на американские выборы в 2024 году Новости в сети 1
Emilio_Gaviriya Статья Поиск уязвимостей на хосте. Уязвимости и взлом 1
Support81 Американские власти наложили санкции на разработчиков спайвари Predator Новости в сети 0
Support81 Фишинг-кит CryptoChameleon ориентирован на пользователей мобильных устройств Новости в сети 0
srv24 Продам SRV24 - выделенные серверы в 193 странах мира от 15$! Скидки при оплате на 1 год! Заходи! Сайты/Хостинг/Сервера 1
Support81 Xeno RAT опубликован на GitHub: продвинутый кибершпионаж теперь доступен каждому Новости в сети 0
Support81 Более 100 тысяч зараженных репозиториев на GitHub маскируются под легитимные проекты Новости в сети 0
Emilio_Gaviriya Статья Как ловить хакеров на живца. Уязвимости и взлом 0
Support81 Картинки PNG - новый способ доставки троянов на компьютеры организаций Новости в сети 1
Support81 Темный рыцарь на продажу: в чьих руках окажется исходный код вымогателя Knight 3.0? Новости в сети 0
Emilio_Gaviriya Статья Безопасность на серверах. Уязвимости и взлом 0
Support81 Google разоблачила сеть компаний-шпионов, работающих на правительства Новости в сети 1
turbion0 Министерство юстиции США раскрыло схему мошенничества с криптовалютой на 1,89 млрд долларов. Новости в сети 0
turbion0 В Пензе мошенница получила от государства миллион рублей на несуществующих детей Новости в сети 0
turbion0 Мошенники оформили на малоимущих астраханцев 30 млн рублей кредитов Новости в сети 0
Support81 Взлом или небрежность? Код и пароли Binance были доступны на GitHub в течение нескольких месяцев Новости в сети 0
Emilio_Gaviriya Статья Защита конфиденциальности: Как сбросить данные на Android в экстренных ситуациях. Полезные статьи 0
Support81 Просчитались, но где? Заказ на убийство в зашифрованном чате обернулся для бандитов тюрьмой Новости в сети 0
0 Лутаем Кэш на рефаунде Сбермаркета Способы заработка 0
0 Лутаем Кэш на бесконечной подписке Яндекс Плюс Способы заработка 0
Emilio_Gaviriya Статья Инструкция по обнаружению хоста и тестированию на проникновение. Уязвимости и взлом 0
Ёшкин_кот Интересно Определение объёма встроенной видео памяти на ноутбуке. Свободное общение и флейм 0
Support81 Conti и Royal получили мощного союзника: хакеры 3AM вступают в игру, но кто они на самом деле? Новости в сети 0
Support81 Обманутые старики и пропавшие миллионы: член группировки Black Axe осужден на 10 лет тюрьмы Новости в сети 0
Support81 Запрет на выплаты вымогателям: как отказ от выкупа усилит атаки на критическую инфраструктуру Новости в сети 0
АнАлЬнАя ЧуПаКаБрА Сервис Проект с выводом на крипту + (Покупка лотерейных билетов) Проекты Private Keeper 0
DELTABEK Как зарабатывать 100.000 рублей в день на арбитраже криптовалют? Способы заработка 5
Support81 В 2023 году Роскомнадзор заблокировал на 10% меньше страниц, чем в прошлом году Новости в сети 1
D До 7к на Бездепах казино Способы заработка 1
Ёшкин_кот Интересно Пишем любой текст на листочке который держит обнажённая девушка. 18+ Свободное общение и флейм 0
NovaBaseNova Базы на заказ. Собираем по любым направлениям! Ищу работу. Предлагаю свои услуги. 0
Support81 Оплата за лайки: раскрыта мошенническая схема заработка на YouTube Новости в сети 0
M Схема заработка на онлайн рулетке Способы заработка 5
Aimer2033 Интересно Мегамаркет. Скидка 1000 рублей при покупке от 3000 рублей на все, на первый заказ. Другое 18
turbion0 Россиянка украла из офиса бумагу на 24 миллиона рублей и купила себе квартиру Новости в сети 1

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