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

Admin

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

Стрелки Пирса хороши для построения логики (как пример) какого-то АЛУ для ВМ при минимальном наборе команд. Аналогичным образом можно использовать штрих Шеффера.
 
Название темы
Автор Заголовок Раздел Ответы Дата
wrangler65 Модель OnlyFans чуть не отправилась на тот свет из-за… голубя! Новости в сети 0
turbion0 Аферист предстанет перед судом за мошенничество более чем на 100 миллионов рублей. Новости в сети 0
Support81 Ошибка на TOR-сайте обернулась концом сразу для трёх группировок Новости в сети 0
Support81 Обман на блокчейне: кто нажился на фальшивом «да» от Украины Новости в сети 0
Support81 Хакеры добрались до ИИ-трейдинга: взлом на $107 000 Новости в сети 0
Support81 Романтика поддельная, деньги настоящие: четыре преступные группы обманули одиноких россиян на 9,8 млн Новости в сети 0
Support81 Кто за кулисами крипторынка: тайные игроки, влияющие на стоимость монет Новости в сети 0
Support81 ИИ-атаки на подъёме: почему 2024 год стал переломным для кибербезопасности Новости в сети 0
Support81 Data Ransom: шантаж выделился в самостоятельный сервис на черном рынке данных Новости в сети 0
Support81 Двойники Telegram захватили сеть: миллион пользователей на крючке Новости в сети 0
Support81 Сбой на ключевом интернет-узле в Москве: что произошло? Новости в сети 0
Support81 Заморозка помощи США лишила жертв работорговли в Азии надежды на спасение Новости в сети 0
Support81 Вакансии есть, специалистов нет: кризис на рынке информационной безопасности Новости в сети 0
Support81 INC Ransom: киберпреступная элита, которая держит весь мир на крючке Новости в сети 0
Support81 Ковровые бомбардировки в сети: DDoS-атаки выросли на 268% Новости в сети 0
Support81 Скамеры дуреют с этой прикормки: как секретный токен ФБР вывел мошенников на чистую воду Новости в сети 0
W На каких форумов сливают?? Вопросы и интересы 2
Support81 Банды программ-вымогателей выдают себя за ИТ-поддержку в фишинговых атаках на Microsoft Teams Новости в сети 0
Support81 ChatGPT вместо мозгов: школьники массово переходят на ChatGPT Новости в сети 0
Support81 Российские хакеры заработали 158 000 000 на поиске уязвимостей Новости в сети 0
Support81 12 недель на решение: как Великобритания планирует побороть кибервымогательство Новости в сети 0
wrangler65 Интересно Как сэкономить до 70% на переводах USDT TRC-20 через энергию Полезные статьи 0
A Продам уязвимость на temu.com, reflected xss, срочно Уязвимости и взлом 5
turbion0 В Хабаровске директор турфирмы обманула 40 клиентов на 11 миллионов рублей. Новости в сети 0
Support81 10 миллионов россиян совершали переводы на карты дропперов Новости в сети 0
Support81 Жертвы жадности: как работает новая схема кражи криптовалют на YouTube Новости в сети 0
Support81 Лица на распродаже: как утечки данных помогают хакерам обходить проверки личности Новости в сети 0
Support81 Генеративный ИИ на службе зла: как тысячи вирусов избегают обнаружения Новости в сети 0
Support81 Миллионы на ставках: дети в ловушке Roblox-казино Новости в сети 0
Support81 Восточный фронт: Cloud Atlas запускает масштабную кибератаку на Россию Новости в сети 0
Support81 Счета под контролем МВД: 10 дней без суда на блокировку денег граждан Новости в сети 0
Support81 ИИ на службе кибермошенников: ФБР предупреждает о новых угрозах Новости в сети 0
turbion0 В Барнауле мошенница продала поддельную красную икру почти на 1,5 млн рублей Новости в сети 0
Support81 DDoS на заказ: как Matrix монетизирует крупнейшую ботнет-сеть через Telegram Новости в сети 0
Support81 Важно!!! Лучшая новость на сегодня Новости в сети 0
Support81 Шпионаж на $31 млн: WhatsApp раскрыл тайны глобальной слежки Израиля Новости в сети 0
Support81 10 дней на выкуп: хакеры выдвинули ультиматум мексиканскому правительству Новости в сети 0
Support81 Подделка на $235 млн: один Telegram-аккаунт обрушил криптобиржу WazirX Новости в сети 0
Support81 От Git до черного рынка: как заработать миллион на слабой защите Новости в сети 0
Support81 PySilon RAT: когда ваш Discord начинает работать на хакеров Новости в сети 0
Support81 Взлом на подписке: создателю RedLine грозит 35 лет тюрьмы Новости в сети 0
Support81 «Халява» на миллион: баг Wildberries обернулся уголовным делом Новости в сети 1
Support81 Хакеры усиливают натиск на высшие учебные заведения Новости в сети 0
Support81 Взрывной рост вымогательства: 31 новая банда нацелилась на бизнес Новости в сети 0
Support81 Паника на экране: новый сценарий кибермошенников Новости в сети 0
Support81 Insider Trading: британский хакер обманул Уолл-стрит на $3,75 млн Новости в сети 0
Support81 Zimperium: 82% всех фишинговых атак теперь нацелены на смартфоны Новости в сети 0
Support81 Криптоджекинг на CentOS: Group-IB раскрывает детали атак Новости в сети 0
Support81 Neuralink на пороге чуда: FDA одобрило имплант для слепых Новости в сети 0
Support81 Crimson Palace: кибершпионский тайфун обрушился на Юго-Восточную Азию Новости в сети 0

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