Загрузка...

We create our signature of code in ten minutes

Thread in Virology created by Tyler Jun 5, 2025. 495 views

  1. Tyler
    Tyler Topic starter Jun 5, 2025 24 May 20, 2025
    Code
    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:
    Code
    [ 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
    ⁡ или аналогичную. Проверяем, что команда доступна в папке с файлом конфигурации. Генерируем связку сертификат + ключ:

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

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

    Code
    [ 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
    Делаем приватный ключ дочернего сертификата и запрос на сам сертификат к корневому:

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

    Code
    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
    ⁡ и данные вашего сертификата. Конвертируем всю эту кашу в один сертиикат:

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

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

    Таким образом вы можете защитить легитимный софт или понизить количество детектов малвари. Пожалуй, на этом всё. До скорого :pepebye:
     
  2. rasez
    rasez Jun 16, 2025 Стим аккаунты тут - lolz.live/threads/7680775 :da: 1471 Apr 29, 2025
    Годнота
     
  3. kozol
    какой смысл от подписи если она невалид
     
Loading...
Top