Криптование програмного кода с определенной метки =)

Тема в разделе "WASM.BEGINNERS", создана пользователем calidus, 6 окт 2007.

  1. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    видел макрос для фасма, на основе либы от зомби rsalib, который криптует "что угодно" по алго RSA
     
  2. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Просмотрел код с магенты шифровки , разберал и вот что вынес с поста 13 ,адрес блока на шифровку подается и блоки криптуются по 16 bytes ... значит мне надо при компиляци макрос который измерит весь код и закриптует по 16 ..16 ... 16 весь код начиная с метки. Код будет менятся значит разрешение на запись секции надо ??? иии потом в начале по условию декриптовать код с той метки. как лучше измерить размер всего кода ..если он будет не кратен 16 ..но там идет выравнивание страниц кода..Кто нибудь код смотрел ??? магенты.

    Код (Text):
    1. comment *
    2.  
    3. Algo    : MAGENTA by Deutche Telekom
    4. Block   : 16 bytes
    5. Key : 16 / 24 / 32 bytes (128 / 192 / 256 bits)
    6.  
    7.     call    MAGENTA_InitSbox        ;init sbox.. constant 256 bytes
    8.  
    9.     push    offset key
    10.     call    MAGENTA_SetKey          ;set the password
    11.  
    12.     push    offset plain            ;offset of block of data to encrypt
    13.     push    offset cipher           ;offset of buffer for encrypted block
    14.     call    MAGENTA_Encrypt
    15.  
    16.     push    offset cipher           ;offset of block of encrypted data
    17.     push    offset cipher           ;offset of buffer for decrypted block
    18.     call    MAGENTA_Decrypt
    19.  
    20.     call    MAGENTA_Clear           ;clear internal data
    21.  
    22.     call    MAGENTA_DestroySbox     ;clear sbox
     
  3. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    надыбал код криптографии на масм ...при выполнении всегда код закриптован впереди и сзади ... используется в мелкой проге ..если я его в большую установлю ...думаю медленнее работать будет ? или ? выше код так и не смотрели ))
     
  4. 8ung

    8ung New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    21
  5. Denwer

    Denwer New Member

    Публикаций:
    0
    Регистрация:
    20 дек 2006
    Сообщения:
    104
    Чисто случайно набрел на этот топик, сорри за полднятие его, но все же не вижу никаких препятсвий сделать это на СИ. Создаем функцию, которая будет в отдельной секции, она же и будет энтри поинтом, далее после компиляции криптуем все секции кроме этой одной. ПРи запуске Первая функция проверяет например знаение из секции данных, или по другим признакам, например про прологу фунции следующей, если он не стандартный то декрипт и переход на след функцию.
     
  6. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Denwer
    Плохо читаете. Часть файла должна быть закриптована на этапе препроцессорной обработки, а не после танцев с бубном вокруг уже скомпилированного файла:
     
  7. Denwer

    Denwer New Member

    Публикаций:
    0
    Регистрация:
    20 дек 2006
    Сообщения:
    104
    А в чем разница то? Не вижу плюсов, кроме как одного минуса в том, что нету доступа к релокам.
     
  8. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Denwer
    Разница в том, что такова постановка задачи. А Вы решаете ту задачу, которую сами придумали.

    P.S. Насчет препроцессорной обработки погорячился. На этом этапе задача невыполнима. Даже в фасме шифрование можно выполнить только директивами контроля, а не препроцессора.
     
  9. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    в том то и дело что это на СИ !!! А я говорю про асм ... я плохо си знаю =( Да и написан ответ не по задаче поставленной ... выход я сделал такой .. криптовка тела при первом запуске ......а потом он раскриптовка по каждой команде ...а файл криптовынный запускаеца также ... но потом расшифровывает себя сам ..
     
  10. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    Вообще как кажется любой (по крайней мере низкоуровневый) компилятор обязан иметь что-то подобное что имеет FASM. Я про load и store. А вот масм тот же не имеет, поэтому ... блабла

    l_inc
    Смутно понимаю эту фразу. Чтоже такое по вашему директивы контроля?
     
  11. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    EvilPhreak
    Директивы контроля компиляции. Они выделяются отдельно, т.к. обрабатываются не на стадии препроцессорной обработки, а уже на стадии преобразования символических мнемоник в опкоды (собсно компиляция). Да и вообще: это описано в учебнике, поставляемом с пакетом fasm.
     
  12. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    l_inc
    Спасибо, почитаю об этом на досуге.