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

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));
}
..что компилятор всячески оптимизирует, и не есть избыточно как на макросах, но тоже неплохо с отключенной оптимизацией.

Стрелки Пирса хороши для построения логики (как пример) какого-то АЛУ для ВМ при минимальном наборе команд. Аналогичным образом можно использовать штрих Шеффера.
 
Название темы
Автор Заголовок Раздел Ответы Дата
Support81 Карточка есть, деньги на месте — и всё равно идёшь домой без покупок Новости в сети 0
Support81 Кликнул на акцию, продал квартиру — TDS делает фейк неотличимым от реальности Новости в сети 0
Support81 США официально развязывают руки хакерам и ставят ИИ на госслужбу Новости в сети 1
Support81 50 хакеров на одного агента ФБР: США почти признались в беспомощности перед китайской киберармией Новости в сети 0
Support81 ChoiceJacking: всего 25 секунд на зарядке — и любой смартфон раскроет свои секреты Новости в сети 0
Support81 Зашёл на сайт — открыл ворота в инфраструктуру. Lazarus снова в деле Новости в сети 0
Support81 ИИ-дубляж на YouTube: Видео создаются людьми, а успех достаётся машинам Новости в сети 0
Support81 Фейк не пройдёт: Google включила антивирус на рекламу Новости в сети 0
Support81 Мод на «ходить сквозь стены» в Roblox? Теперь вирус ходит сквозь ваш телефон Новости в сети 0
Support81 Трёхслойное шифрование и туннелирование: BRICKSTORM сносит любую защиту на своём пути Новости в сети 0
Support81 «PIN-код на лбу безопаснее»: Perplexity AI оказался настоящей находкой для шпиона Новости в сети 0
Support81 Хактивизм или шпионаж: кто на самом деле отключает воду и свет в городах Новости в сети 0
Support81 Вся финансовая система на GPT: что может пойти не так Новости в сети 0
Support81 25 000 за воздух: как «таможенники» из Telegram разводят на доверии Новости в сети 0
Support81 20 лет, миллионы на крипте и почти 60 за решёткой — кто такой King Bob из Scattered Spider? Новости в сети 0
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

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