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 读卡器)连接到 PC,PC/SC 是将智能卡连接到 PC 的事实标准。

范围

  • 用于在软件中开发智能卡的框架,无硬件依赖。
  • 任何基于 swICC 的卡都可以通过 swICC PC/SC 读卡器 经由 PC/SC 连接到 PC。
  • 智能卡文件系统可以使用 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. 将以下代码复制到 ./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 处理器。以更高级方式使用该框架的一个很好的示例是 swSIM 项目,它使用 swICC 实现了一张 SIM 卡。

下载工具