这是一个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员工,即转换)访问修饰符,字段等).
为什么在恩智浦网站上没有关于"JCOP"或J2A040和j3d081这样的术语的搜索结果?我想开始Java Card开发并在市场上找到名为的Java Card
但恩智浦网站上的条款是: - SmartMX,MIFARE DESFire等,或 - P5CC021,P5CC040,P5CC073,P5CC080,P5CC144
为什么市场和制造商使用这些不同的术语?
更新:
如果我购买SmartMX它是否附带操作系统?恩智浦为操作系统或供应商编程?我有能力自己做吗?
我在哪里可以找到每个JCOP OS的详细规范?
是否有任何JCop或GPShell命令在Javacard中提供支持的加密/符号算法列表?
如何提供支持的密钥长度,例如3-DES?
我想要这些信息用于我没有规格的卡片......
您好,我有一张 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)
如何个性化?
尝试使用以下命令列出智能卡的内容时
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)
搜索时,我知道该卡不是预先个性化的.我的问题是什么是智能卡预个性化?这种预先预先定位的人是谁?它是供应商吗?
我有一张它没有融合的智能卡(我的意思是它没有预先个性化).它有一个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) 我在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)