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

Admin

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

Стрелки Пирса хороши для построения логики (как пример) какого-то АЛУ для ВМ при минимальном наборе команд. Аналогичным образом можно использовать штрих Шеффера.
 
Название темы
Автор Заголовок Раздел Ответы Дата
G Куплю ⭐️Выкуплю ваш крипта-траффик на инсталы страны микс⭐️ Куплю/Обменяю 1
mix_install Куплю ⭐Выкуплю ваш траффик на инсталы страны микс⭐ Куплю/Обменяю 1
P CRYPTO.PSB-KASSA.PRO криптовалютная платежная система на ваш сайт под 1%. Интернет эквайринг для валютных платежей! Ищу работу. Предлагаю свои услуги. 0
I Реклама Вашего сервиса на 200-т теневых форумах !! Дёшего ! Ищу работу. Предлагаю свои услуги. 1
Р Интересно 5000/10000 на 1й заказ из ВкусВилл, Лента и Самокат через Aliexpress Другое 0
ONPROXY Продам ONPROXY.NET Приватные прокси по доступным ценам от 25 рублей за штуку. Промо-код: discount на 35% Дедики/VPN/соксы/ssh 0
WEB503 Проверено Service DDOS Attack DDOS Атака на заказ. Работаем 24/7 from WEB503 Спам / Флуд / Ддос 1
Legendary_Fantomas Взлом ВКонтакте на заказ от Фантомаса Ищу работу. Предлагаю свои услуги. 3
Сoder Wan Создание и размещение тем на 700+ форумах (увеличение клиентов до 50%) Услуги дизайнеров/веб-разработчиков 1
USANumberShop ⭐Приём СМС на реал номера USA & Аренда долгосрочных номеров⭐ Ищу работу. Предлагаю свои услуги. 1
zladey1986 Продам Скрипт приема платежей p2p с карты на карту Все что не подошло по разделу 1
smsverifsup www.sms-verif.com - Прием смс на реал юса номера. Все что не подошло по разделу 7
Zer0D4y Интересно Набор трафферов на RedLine Предоставляю работу. Ищу специалиста. 0
G Golden Birds - это, на мой взгляд, самый лучший проект по заработку денег в сети Интернет Корзина 0
cryptomat Сryptomat.online - лучший сервис обмена криптовалюты на территории СНГ! Обменники 0
D ---->Daddy DDoS Service <----- | Устрани конкурента | Лучшие на рынке! Спам / Флуд / Ддос 1
Denik Интересно Хакерская группировка АРТ31 впервые атаковала российские компании Microsoft обвиняла ее в атаке на участников выборов президнта США 2020 года Новости в сети 0
Denik Интересно Данные клиентов Audi и Volkswagen выставлены на продажу Новости в сети 0
lizun От 1$ до 50$ в день на полном пассиве [3х уровневая реферальная программа] [Соц.Сети] Способы заработка 6
adflak Лучший пробив DL us на рынке! Ищу работу. Предлагаю свои услуги. 0
grynd Напишу проект на PK Проекты Private Keeper 1
LamerOnLine Заработай на своих симках.Оплата 200Р Предоставляю работу. Ищу специалиста. 2
Khan «Пандемия вымогателей»: с чем связана волна атак хакеров и как она отразится на биткоине Свободное общение и флейм 0
KyleService Ручное размещение и ведение ваших рекламных тем на 100 форумах Ищу работу. Предлагаю свои услуги. 1
WARegInsta Регер Инстаграм на реальных устройствах с первоначальной настройкой Аккаунты/Админки/Документы 2
zladey1986 Интересно [Feduk] Пассивный заработок на фильмах VK (2021) Другое 0
Дирочка83 Заработок на верификации дропов Способы заработка 0
C Сервис по взлому-услуги хакера-заказать взлом на Заказ в [email protected] - Услуги Хакера. Приветствую участников форума! Станьте королем момента Ищу работу. Предлагаю свои услуги. 0
Walalusur [Алексей Лунин] Как зарабатывать 30000-45000 на продажах партнерских товаров в яндекс директе (2021) Способы заработка 0
fx7support АдминВПС Промокод на скидку 60% - хостинг и VPS. Сайты/Хостинг/Сервера 0
fx7support Наконец-то Разжевали как заработать на Dropplatforma, дропшиппинг. Трафик, загрузки, инсталлы, iframe 0
J Оформлю карты Tinkoff Black на левые данные за 10 мин . цена 3к . Карты/CC/Банки/Enroll 1
NikitaKit $$$Продам брут на сайт,с которого можно вытянуть данные от крипто кошельков$$$ Продажа софта 5
D 120 руб каждый день на пассиве Другое 3
semsvm От 1$ до 50$ в день на полном пассиве [3х уровневая реферальная программа] [Соц.Сети] Способы заработка 4
Sam_Vel Рассылка на форумах и телеграмм чатах/создание и ведение аккаунтов Ищу работу. Предлагаю свои услуги. 1
S Интересно Как зарабатывать на Mobile Rewards. Фея с подарками. Способы заработка 0
L Продам залью на мерч с сс Финансы - биллинги, банки, кошельки, логи 1
proxy-solutions.net Партнерская программа от компании Proxy-Solutions.net. Получайте процент от всех платежей на сайте! Предоставляю работу. Ищу специалиста. 0
W Ключи для ESET, на один месяц ( триал ). Бесконечное количество, бесплатно. Раздача (аккаунтов/ключей) 0
adkins_fan Торговля на бирже Binance, прибыль 10-30% в месяц binancetrade.pro Способы заработка 4
adflak Зарабатывайте крипту на полном автомате 2021 Способы заработка 0
Zer0D4y Интересно Требуются люди на удалённую работу с ежеднеными выплатами Предоставляю работу. Ищу специалиста. 3
balzamos Кидок на 100 $ от JohnWoo Black list и Разборки 3
A Продам криптовалютную онлайн лотерею на блокчейне (startup) Корзина 1
adflak Интересно Expresscrypto на полном автомате - Без вложений - 24 \ 7 Способы заработка 1
D Нужны люди на верификацию Предоставляю работу. Ищу специалиста. 1
S Продам Сим карты Билайн на физ. лица Финансы - биллинги, банки, кошельки, логи 1
MoneyLoad Принимаю заливы на пластик любого направления Ищу работу. Предлагаю свои услуги. 3
balof Seed4.Me VPN - на неограниченный срок Полезные статьи 0

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