标签: jcop

将Java Applet CAP文件转换为*.class以进行反编译

这是一个CAP文件,可能包含恶意软件代码,没有源代码,也没有导出文件.

它是旧平台版本的CAP文件,即GP211.

我在Classic JVM和Dalvik中拥有丰富的Java逆向工程经验.但Java Card是较不受欢迎且更接近的平台.大多数工具用于CLASS/JAR或DEX,而不是CAP.

我找到了几个可以反汇编 CAP文件的工具(包括一些模拟JCOP的虚拟机),但是CAP非常大,使用汇编代码对我来说过于复杂和缓慢.

而且我们不能简单地做"CAP文本字节码 - > Notepad ++ - >一些Java字节码编辑器 - > Java字节码".
CAP字节码和Java字节码之间的差异太大.不仅仅是方法表,它还有大量不同的操作码.
只需反编译Java Card Kit 的converter.jar(它是一个转换CLASS - > CAP的工具),看看转换是一个非常复杂的过程.

我需要一些自动转换器.

同时,我开发了一套智能卡解决方案和"CAP反编译器"将是一个很好的部分.
是的,我打算写.
我计划从一侧在Javassist之上构建它,从第二个构建一些CAP反汇编库,从第三个构建一些标准Java反编译器(-s).

但我应该确定没有类似物.

问题在这里:
地球上是否有一些工具可以将Java Card*.cap转换为Java*.class(或直接反编译*.cap)或不?
我不是要求一个库(我发现了一些),我要求一个工具.Runnable接口.

(如果你知道这个字节码转换中的一些陷阱,我将不胜感激,如果你将它描述给我.现在我把它看作只是一个复制一个操作码列表到另一个有巨人if...else if...else if...else if...switch...case...case...case树(和一些misc员工,即转换)访问修饰符,字段等).

reverse-engineering smartcard javacard jcop

6
推荐指数
1
解决办法
905
查看次数

恩智浦有Java卡吗?

为什么在恩智浦网站上没有关于"JCOP"或J2A040和j3d081这样的术语的搜索结果?我想开始Java Card开发并在市场上找到名为的Java Card

  • JCOP21-72
  • 基于J2A040 NXP JAVA的智能卡,40k EEPROM
  • jcop31
  • jcop41
  • ...

但恩智浦网站上的条款是: - SmartMX,MIFARE DESFire等,或 - P5CC021,P5CC040,P5CC073,P5CC080,P5CC144

为什么市场和制造商使用这些不同的术语?


更新:

  1. 如果我购买SmartMX它是否附带操作系统?恩智浦为操作系统或供应商编程?我有能力自己做吗?

  2. 我在哪里可以找到每个JCOP OS的详细规范?

smartcard javacard mifare contactless-smartcard jcop

6
推荐指数
2
解决办法
6292
查看次数

我的Javacard支持哪种加密算法

是否有任何JCop或GPShell命令在Javacard中提供支持的加密/符号算法列表?

如何提供支持的密钥长度,例如3-DES?

我想要这些信息用于我没有规格的卡片......

encryption sign javacard jcop

3
推荐指数
1
解决办法
153
查看次数

发送 Select + Transport Key 后的 JCOP 0x6A82

您好,我有一张 JCOP 卡未熔断

我从我的供应商处获得了 TK 和开卡命令

当我发送到卡时 [00:a4:04:00:10:40:41:42:43:44:45:46:47:48:49:4a:4b:4c:4d:4e:4f]

我有[6a:82] (File not found)

如何个性化?

smartcard jcop

3
推荐指数
1
解决办法
2773
查看次数

pro.javacard.gp.GPException:严格警告:检测到未融合的JCOP

尝试使用以下命令列出智能卡的内容时

gp -l
Run Code Online (Sandbox Code Playgroud)

获得以下异常:

pro.javacard.gp.GPException: STRICT WARNING: Unfused JCOP detected
at pro.javacard.gp.GlobalPlatform.printStrictWarning(GlobalPlatform.java:184)
at pro.javacard.gp.GlobalPlatform.select(GlobalPlatform.java:213)
at pro.javacard.gp.GPTool.main(GPTool.java:334)
Run Code Online (Sandbox Code Playgroud)

搜索时,我知道该卡不是预先个性化的.我的问题是什么是智能卡预个性化?这种预先预先定位的人是谁?它是供应商吗?

smartcard javacard globalplatform jcop

2
推荐指数
1
解决办法
513
查看次数

智能卡预个性化和历史字节

我有一张它没有融合的智能卡(我的意思是它没有预先个性化).它有一个ATR = 3B F9 13 00 00 81 31 FE 45 4A 43 4F 50 32 34 32 52 33 A2.

Q1:我的卡的历史字节是什么/在哪里?我怎么分析它们?

Q2:哪里可以找到我卡的型号?我在互联网上搜索了它的ATR,但我一无所获!

当您尝试使用诸如GPJ之类的工具列出真空卡的小程序(我的意思是未融合的卡)时,您会收到以下输出:

>> gpj -list

>> java -jar gpj.jar -list
Found terminals: [PC/SC terminal ACS CCID USB Reader 0]
Found card in terminal: ACS CCID USB Reader 0

ATR: 3B F9 13 00 00 81 31 FE 45 4A 43 4F 50 32 34 32 52 33 A2

DEBUG: Command  APDU: 00 A4 04 00 …
Run Code Online (Sandbox Code Playgroud)

smartcard javacard globalplatform jcop

2
推荐指数
1
解决办法
3225
查看次数

使用javacardx.framework.math.BigNumber时,applet无法安装

我在javacard applet中声明BigNumber数据类型时遇到了问题.如果我只是评论声明,applet正确加载到模拟器中.问题的确切原因是加载import.cap文件时(jcshell:错误代码:6a80(数据错误))

java卡套件2.2.2使用

  import javacard.framework.APDU;
  import javacard.framework.Applet;
  import javacard.framework.ISO7816;
  import javacard.framework.ISOException;
  import javacard.framework.JCSystem;
  import javacardx.framework.math.BigNumber;

 public class LargeBal extends Applet {

 // CLA byte
public static final byte BANK_CLA = (byte) 0x80;

// INS byte
public static final byte INS_GET_BALANCE = 0X02;
public static final byte INS_CREDIT = 0X04;
public static final byte INS_DEBIT = 0X06;

/**
 * SW bytes for Arithmetic exception
 */
final static short INVALID_NUMBER_FORMAT = 0x6308;

/**
 * Initial account balance
 */
final static byte[] INITIAL_ACCOUNT_BALANCE …
Run Code Online (Sandbox Code Playgroud)

applet smartcard javacard jcop

1
推荐指数
1
解决办法
354
查看次数