Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/tomasz-lisowski/swicc
認証と認可組み込みシステムセキュリティハードウェアセキュリティユーティリティとフレームワークアイデンティティ&アクセス管理 (IAM)
GitHubtomasz-lisowski/swicc

swicc

スマートカード(接触型ICCベースのカード)を作成するためのフレームワーク。

リポジトリを見る
14216225ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

swICC ライブラリ

プロジェクトは再帰的にクローンする必要があります。ZIPをダウンロードするだけでは不十分です。

Software ICC(略して swICC)は、ほとんどの種類のスマートカードを簡単かつ柔軟に開発するためのフレームワークです。また、swICCベースのカードは、スマートカードをPCに接続するための事実上の標準である PC/SC インターフェースを介して(swICC PC/SC reader を使用して)PCに接続することもできます。

スコープ

  • ハードウェアに依存せず、ソフトウェアでスマートカードを開発するためのフレームワーク。
  • swICCベースのカードは、swICC PC/SC reader を使用して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 を追加します(例: -Ilib/swicc/include)。
  6. プロジェクトに #include <swicc/swicc.h> を追加して、すべてのヘッダーをインクルードします。

使用方法

最小限のスマートカードを作成するには、次の手順を実行します。

  1. まずインストール手順に従い、./build/libswicc.a が存在することを確認します。
  2. mkdir card
  3. cd card
  4. 次のコードを ./card ディレクトリ内の main.c ファイルにコピーします。
ソースコードを表示するにはクリックしてください。
#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 reader。
  3. ./card.elf を実行すると、カードがカードリーダーに接続されます。
  4. pcsc_scan (pcsc-tools パッケージの一部)は、カードの詳細情報を表示します。
  5. 実際のカードと同じように、PC/SCを介してカードとのやり取りを開始できます。

カスタムカードを実装するには、ネットワーククライアントを実行する前に、swicc_apduh_pro_register を介してAPDUデマルチプレクサを登録し、受信したコマンドに応じてデマルチプレクサによって呼び出されるAPDUハンドラも登録する必要があります。より高度な方法でフレームワークを使用する良い例は、swICCを使用してSIMカードを実装する swSIM プロジェクトです。

ツールをダウンロード