Загрузка...

Создаём свою подпись кода за десять минут

Тема в разделе Вирусология создана пользователем Tyler 5 июн 2025 в 06:45. 163 просмотра

Загрузка...
  1. Tyler
    Tyler Автор темы 5 июн 2025 в 06:45 13 20 май 2025
    Код
    section .data
    msg: DB 'Hello, LZT!', 10
    msgSize EQU $ - msg

    global start

    section .text

    start:
    mov rax, 0x2000004 ; function 4
    mov rbx, 1 ; stdout
    mov rcx, msg ; msg
    mov rdx, msgSize ; size
    int 0x80
    mov rax, 1 ; function 1
    mov rbx, 0 ; code
    int 0x80
    ret
    Я - новокек с некоторыми знаниями в области крипта. Зайдя на формум впервые, я, мягко говоря, был шокирован отсутствием такой важной статьи, как гайд по созданию собственной цифровой подписи. Первая мысль, пришедшая в голову, подсказывала, что это просто никому не нужно, так как подписи, не выданные центром сертификации, сильно отличаются от тех, что можно сгенерить на своём компьютере - нет абсолютного траста антивирусов, смартскрин в большинстве случаев так не обойти (есть метод, скорее всего, будет статья по этой теме), если глубоко покопаться в свойствах файла, будет виден значок о недействительности. Несмотря на всё это, такие подписи могут хорошо снизить детекты, поэтому вы сейчас и находитесь этой странице.

    Что понадобится:
    1. Компуктер на винде
    2. Интернет, чтобы прочитать эту статью
    3. Руки (любые, можно ноги)

    Что ж, приступаем. Создаём папку и файл в ней с расширением .cnf:
    Код
    [ req ]
    distinguished_name = req_distinguished_name
    prompt = no
    x509_extensions = v3_ca

    [ req_distinguished_name ]
    C = страна в две буквы, пример - KZ
    ST = штат/провинция/город, если нет штата
    L = город
    O = компания
    CN = кем выдан (Пример - RootCA)

    [ v3_ca ]
    keyUsage = critical, keyCertSign, cRLSign
    basicConstraints = critical, CA:TRUE
    Это наш корневой сертификат для подписи дочерних. Качаем OpenSSL тут, устанавливаем, добавляем в path папку
    ⁡C:\Program Files\OpenSSL-Win64\bin
    ⁡ или аналогичную. Проверяем, что команда доступна в папке с файлом конфигурации. Генерируем связку сертификат + ключ:

    Код
    openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout имя_рут_ключа.key -out имя_рут_серта.crt -config имя_рут_конфига.cnf
    Если вы правильно скопипастили команду, должны пойти плюсы с точками:
    [IMG]

    Если вкратце, это рандом для генерации ключей шифрования. Теперь создаём ещё один .cnf, но уже для подписи кода:

    Код
    [ req ]
    distinguished_name = req_distinguished_name
    prompt = no

    [ req_distinguished_name ]
    C = страна
    ST = штат/провинция/город
    L = город
    O = компания
    CN = кем выдан

    [ v3_req ]
    keyUsage = critical, digitalSignature
    extendedKeyUsage = critical, codeSigning
    subjectKeyIdentifier = hash
    Делаем приватный ключ дочернего сертификата и запрос на сам сертификат к корневому:

    Код
    openssl req -newkey rsa:2048 -nodes -keyout имя_дочернего_ключа.key -out -out имя_запроса.csr -config имя_дочернего_кфг.cnf
    Должны снова пойти плюсы с точками. Одобряем запрос:

    Код
    openssl x509 -req -sha256 -days 365 -in имя_запроса.csr -CA имя_рут_серта.crt -CAkey рут_серт.key -CAcreateserial -out имя_серта.crt -extfile имя_дочернего_конфига.cnf -extensions v3_req
    Я указал 365 дней, число может быть другим. Нужный нам ответ -
    ⁡Certificate request self-signature ok
    ⁡ и данные вашего сертификата. Конвертируем всю эту кашу в один сертиикат:

    Код
    openssl pkcs12 -export -out имя_сертификата.pfx -inkey дочерний_ключ.key -in дочерний_серт.crt -password pass:пароль
    Должен появиться файл .pfx - это и есть сертификат. Теперь вы можете удалить все остальные файлы и начать подписывать код. Качаем signtool здеся, билд вырезан из Windows SDK. Добавляем в path. Закидываем в папку с сертификатом наш .exe и подписываем его:

    Код
    signtool sign /v /f "имя_сертификата.pfx" /p пароль /fd sha256 /tr http://timestamp.digicert.com /td sha256 имя_файла.ехе
    В свойствах файла видим такую подпись:
    [IMG]

    Таким образом вы можете защитить легитимный софт или понизить количество детектов малвари. Пожалуй, на этом всё. До скорого :pepebye:
     
  2. LAKONELLI
    LAKONELLI 5 июн 2025 в 07:14 twitch party - новости twitch https://t.me/twitchpaty 6606 5 авг 2018
    годно наконец то нормальные статьи а не ебучие реги тиктока или гайд на тайм менеджмент
     
Top