Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
swicc — 스마트 카드(접점이 있는 ICC 기반 카드)를 생성하기 위한 프레임워크입니다. | Kitploit
도구/GitHubGitHub/tomasz-lisowski/swicc
Authentication & AuthorizationEmbedded Systems SecurityHardware SecurityUtilities & FrameworksIdentity & Access Management (IAM)
GitHubtomasz-lisowski/swicc

swicc

스마트 카드(접점이 있는 ICC 기반 카드)를 생성하기 위한 프레임워크입니다.

저장소 보기
1421674개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

swICC 라이브러리

프로젝트는 반드시 재귀적으로 클론되어야 합니다. ZIP을 다운로드하는 것만으로는 충분하지 않습니다.

Software ICC(또는 swICC)는 대부분의 유형의 스마트 카드를 개발할 수 있는 쉽고 유연한 방법을 제공하는 프레임워크입니다. 또한 swICC 기반 카드를 PC에 연결하는 사실상의 표준인 PC/SC 인터페이스를 통해 PC에 연결할 수 있게 해줍니다(swICC PC/SC 리더기 사용).

범위

  • 하드웨어 의존성 없이 소프트웨어로 스마트 카드를 개발하기 위한 프레임워크입니다.
  • 모든 swICC 기반 카드는 swICC PC/SC 리더기를 사용하여 PC/SC를 통해 PC에 연결할 수 있습니다.
  • 스마트 카드 파일 시스템은 JSON을 사용하여 정의할 수 있으며, 예제는 ./test/data/disk에 있습니다. FS는 .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 경로에 ./include를 추가하세요(예: -Ilib/swicc/include).
  6. 프로젝트에서 #include <swicc/swicc.h>를 추가하여 모든 헤더를 포함하세요.

사용법

최소한의 스마트 카드를 만들려면 다음을 수행하세요:

  1. 먼저 설치 지침을 따르고 ./build/libswicc.a가 존재하는지 확인하세요.
  2. mkdir card
  3. cd card
  4. 다음 코드를 ./card 디렉터리 안의 main.c 파일에 복사하세요.
소스 코드를 보려면 클릭하세요.
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를 통해 카드와 상호작용을 시작할 수 있습니다.

사용자 정의 카드를 구현하려면 네트워크 클라이언트를 실행하기 전에 swicc_apduh_pro_register를 통해 APDU 디멀티플렉서를 등록해야 하며, 수신된 명령에 따라 디멀티플렉서가 호출하는 APDU 핸들러도 등록해야 합니다. 프레임워크를 더 고급 방식으로 사용하는 좋은 예는 swICC를 사용하여 SIM 카드를 구현하는 swSIM 프로젝트입니다.

도구 다운로드