Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
swicc — Фреймворк для создания смарт-карт (карт на основе ICC с контактами). | Kitploit
Инструменты/GitHubGitHub/tomasz-lisowski/swicc
Аутентификация и авторизацияБезопасность встроенных системАппаратная БезопасностьУтилиты и фреймворкиУправление идентификацией и доступом (IAM)
GitHubtomasz-lisowski/swicc

swicc

Фреймворк для создания смарт-карт (карт на основе ICC с контактами).

Репозиторий
142163 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Библиотека swICC

Проект необходимо клонировать рекурсивно. Скачивания ZIP-архива недостаточно.

Программная ICC (или swICC) — это фреймворк, предоставляющий простой и гибкий способ разработки большинства типов смарт-карт. Он также позволяет подключать любую карту на основе swICC к ПК через интерфейс PC/SC (с помощью считывателя swICC PC/SC), который является стандартом де-факто для подключения смарт-карт к ПК.

Область применения

  • Фреймворк для разработки смарт-карт в программном виде, без аппаратных зависимостей.
  • Любая карта на основе swICC может подключаться к ПК через PC/SC с помощью считывателя swICC PC/SC.
  • Файловая система смарт-карты может быть задана с помощью JSON; примеры находятся в ./test/data/disk. ФС может быть сохранена на диск как файл .swiccfs и загружена обратно в карту.
  • Множество отладочных утилит.
  • Включает простую в использовании реализацию BER-TLV.

Установка

  • Для компиляции проекта вам понадобятся make, cmake и gcc. Никаких дополнительных зависимостей во время выполнения не требуется.
  1. sudo apt-get install make cmake gcc
  2. git clone --recurse-submodules [email protected]:tomasz-lisowski/swicc.git
  3. cd swicc
  4. make main-dbg (подробнее о сборке см. в ./doc/install.md).
  5. Выполните линковку с ./build/libswicc.a (например, -Llib/swicc/build -lswicc) и добавьте ./include в путь поиска заголовочных файлов (например, -Ilib/swicc/include).
  6. В вашем проекте добавьте #include <swicc/swicc.h>, чтобы подключить все заголовочные файлы.

Использование

Чтобы создать минимальную смарт-карту, выполните следующие действия:

  1. Сначала следуйте инструкциям по установке и убедитесь, что ./build/libswicc.a существует.
  2. mkdir card
  3. cd card
  4. Скопируйте следующий код в файл main.c внутри каталога ./card.
Нажмите, чтобы увидеть исходный код.
root@kitploit:~
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <swicc/swicc.h>

swicc_net_client_st client_ctx = {0U};

static void sig_exit_handler(__attribute__((unused)) int signum)
{
    fprintf(stderr, "Shutting down...\n");
    swicc_net_client_destroy(&client_ctx);
    fflush(NULL);
    exit(0);
}

int32_t main(int32_t const argc, char const *const argv[const argc])
{
    swicc_disk_st disk = {0U};
    swicc_ret_et ret = swicc_diskjs_disk_create(&disk, "../test/data/disk/006-in.json");
    if (ret == SWICC_RET_SUCCESS)
    {
        swicc_st swicc_ctx = {0U};
        ret = swicc_fs_disk_mount(&swicc_ctx, &disk);
        if (ret == SWICC_RET_SUCCESS)
        {
            ret = swicc_net_client_sig_register(sig_exit_handler);
            if (ret == SWICC_RET_SUCCESS)
            {
                ret =
                    swicc_net_client_create(&client_ctx, "127.0.0.1", "37324");
                if (ret == SWICC_RET_SUCCESS)
                {
                    ret = swicc_net_client(&swicc_ctx, &client_ctx);
                    if (ret != SWICC_RET_SUCCESS)
                    {
                        fprintf(stderr, "Failed to run network client.\n");
                    }
                    swicc_net_client_destroy(&client_ctx);
                }
                else
                {
                    fprintf(stderr, "Failed to create a client.\n");
                }
            }
            else
            {
                fprintf(stderr, "Failed to register signal handler.\n");
            }
            swicc_terminate(&swicc_ctx);
        }
        else
        {
            fprintf(stderr, "Failed to mount disk.\n");
            swicc_disk_unload(&disk);
        }
    }
    else
    {
        fprintf(stderr, "Failed to create disk.\n");
    }

    return 0;
}
  1. gcc main.c -I../include -L../build -lswicc -o card.elf — для сборки карты.
  2. Чтобы взаимодействовать с картой через PC/SC, вам нужно запустить сервер карт swICC, например считыватель swICC PC/SC.
  3. ./card.elf — подключит карту к считывателю.
  4. pcsc_scan (часть пакета pcsc-tools) покажет некоторые сведения о карте.
  5. Вы можете начать взаимодействовать с картой через PC/SC, как с настоящей картой.

Для реализации собственной карты необходимо зарегистрировать демультиплексор APDU (перед запуском сетевого клиента) через swicc_apduh_pro_register, а также обработчики APDU, которые вызываются демультиплексором в зависимости от полученной команды. Хорошим примером более продвинутого использования фреймворка является проект swSIM, реализующий SIM-карту на основе swICC.

Скачать инструмент