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

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 Интересно «Верните деньги, или мы идём в полицию». CrossCurve дала похитителям ровно 72 часа на возврат крипты. Новости в сети 0
Admin Интересно Читы, локеры и 110 заблокированных доменов. Группировка NyashTeam прячется за вывеской «Легиона» и продолжает охоту на геймеров. Новости в сети 0
Admin Статья Нетипичная змея. Реверсим приложение на Python c кастомным интерпретатором Вирусология 0
Admin Статья Пишем свой простейший дроппер на плюсах Вирусология 0
Admin Статья Пишем свой лоадер на плюсах - теория Вирусология 0
Admin Интересно Второй раз — это уже традиция. Антивирус eScan снова поймали на «сотрудничестве» с хакерами. Новости в сети 0
Admin Интересно Хакер думал, что украл пароль, а на самом деле – позвонил в полицию. На GitHub учат, как развести взломщика на эмоции (и логи). Новости в сети 0
Admin Интересно Четверть биткоина за «квантовые мозги». Рассказываем, как поднять крипту на знании физики. Новости в сети 0
Admin Интересно DynoWiper против польского света. Рассказываем историю самой мощной хакерской атаки на инфраструктуру страны за последние годы. Новости в сети 0
Admin Интересно Apple и OpenAI создают ИИ-жучки — микрофоны и камеры на теле будут слушать и снимать вас 24/7. Новости в сети 0
Admin Интересно Кликнули на файл «Задание_для_бухгалтера.txt»? Поздравляем — троян-шпион уже ворует ваши пароли. Новости в сети 0
Admin Статья Как на основе ФИО, даты рождения и района получить номер паспорта и ИНН. OSINT 0
Admin Статья Поднимаем личный VPN-сервер за 30 мин на своем VPS через Amnezia VPN Анонимность и приватность 0
Admin Разделение почты на Python по доменам Скрипты 0
Admin Интересно «Отдай мастер-пароль, или всё удалим!». Как хакеры берут на мушку пользователей LastPass. Новости в сети 0
Admin Статья Стеганография на примере Steghide Полезные статьи 0
Admin Интересно Ретро-хакинг на максималках. Почему ваша корпоративная сеть до сих пор думает, что на дворе девяностые. Новости в сети 0
Admin Статья Разработка малвари на С++. Глава II Вирусология 0
Admin Статья Разработка малвари на С++. Глава 1. Вирусология 0
Admin Статья Обход пароля на iphone Уязвимости и взлом 0
Admin Статья DDoS на Bluetooth. Разбираем трюк, который поможет отключить чужую колонку Полезные статьи 0
Admin Статья Взлом wi-fi на легке Полезные статьи 0
Admin Статья Полное Руководство по Google Dorks: Говорим с Поисковиком на Его Языке OSINT 0
Admin Интересно «Ваш пароль истекает» (на самом деле нет). Microsoft объясняет, почему нельзя верить даже письмам от собственного HR. Новости в сети 0
Admin Интересно Эксплойт уже на GitHub. Главная система защиты Cisco снова пробита. Новости в сети 0
Admin Интересно ZIP-архив и скрытый MSBuild. Из чего состоит новая атака на военных, которую пропустили антивирусы. Новости в сети 0
Admin Статья Право на root. Как повышают привилегии в Linux. Уязвимости и взлом 0
Admin Интересно 70000 пострадавших и 20 миллионов на кону – начались первые аресты по делу о предательстве в Coinbase. Новости в сети 0
Admin Статья Браузерные расширения — идеальный шпион: Стиллер паролей на JavaScript, который невозможно заметить Вирусология 0
Admin Интересно Казалось, что летим, а на деле — ползём. Как ИИ-помощники незаметно крадут время у профессиональных кодеров. Новости в сети 0
Admin Интересно Цифровое чудо на Рождество. Как ученым удалось восстановить UNIX V4 с ленты 1970-х годов. Новости в сети 0
Admin Интересно 0 на VirusTotal и root-доступ: хакеры смогли обмануть все антивирусы с помощью легального софта для админов. Новости в сети 0
Admin Статья Полное Руководство по Google Dorks: Говорим с Поисковиком на Его Языке OSINT 0
Admin Интересно Firebox рвут на куски прямо сейчас — критическая дыра топит корпоративные сети без пароля и удалённо. Новости в сети 0
Admin Статья XSS от Яндекс на обед Полезные статьи 0
Admin Интересно Код на GitHub, который хакеры хотели бы удалить – Agentic Threat Hunting Framework уже в сети. Новости в сети 0
Admin Интересно Ваш компьютер вам врёт: в BIOS написано «защищено», а на деле — заходи, кто хочет. Новости в сети 0
Admin Статья Сбор информации в Instagram с Osintgram на Kali Linux. OSINT 0
Emilio_Gaviriya Работа на Пабло Эскобара. Возрождение. Предоставляю работу. Ищу специалиста. 0
el_hacker Статья Удобная анонимность на практике. Анонимность и приватность 0
el_hacker Интересно Компрометированные учетные данные IAM используются для масштабной кампании по майнингу криптовалюты на AWS. Новости в сети 0
turbion0 Мошенничество на 11 миллионов рублей: в Красноярске арестовали звезд сборной России по санному спорту Новости в сети 0
Support81 Вы отключали Cloudflare во время сбоя? Срочно проверьте логи на предмет взлома Новости в сети 0
Support81 Этичный хакинг? Забудьте. США готовят рои ИИ-агентов для атаки на Китай Новости в сети 0
Support81 Один взлом — минус ВВП: убытки после атаки на JLR стали главной причиной замедления экономиики Великобритании Новости в сети 0
Support81 Перевод крупной суммы по СБП на свой же счёт будет расцениваться банком как подозрительный Новости в сети 0
Support81 12 из 13 — столько популярных антивирусов (включая ESET, Avast и Касперский) провалили тест на шпионское ПО Новости в сети 0
Support81 Резюме с сюрпризом: хакеры из APT-C-60 массово «устраиваются на работу» в японские компании Новости в сети 0
Support81 Карьера в Тбилиси не задалась. Гражданин ФРГ меняет грузинское гостеприимство на немецкую тюрьму Новости в сети 0
Support81 Хакеры больше не воруют данные — они грабят фуры. Удаленно. На кону $34 миллиарда Новости в сети 0

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