Hex格式文件转APDU格式

来源:互联网 发布:java程序员必看书籍 编辑:程序博客网 时间:2024/06/06 07:58

在使用Snooper时需要添加某外部程序到系统中,此处用到APDU格式传输,所以需要把Hex的16进制文件转成APDU格式。


使用Notepad++或者类似的文本编辑器工具,使用快捷键Ctrl+H(替换)查找目标处输入Hex文件的起始符和代码长度,如: :10然后替换为FE38000014 6810(此处根据APDU的指令格式来)如:FE380000146810这是自己编的指令,CLA为FE,INS为38,P1、P2为0000,数据长度为0x14此长度为0x10个字节长度加上4个字节的地址长度,前两个字节为基址地址,0x6810,之后的两个直接就是Hex文件中的存储地址,也就是便宜地址,然后选择全部替换,即所有的数据格式前缀就被更换。


此时Hex文件中还有1个字节的数据类型,基本都是00,需要去掉00这一个字节的数据可以使用Alt+鼠标左键来拉取00这两列数据来delete,或者使用Notepad的正则表达式来替换。

然后差每行行末的一个字节的求和校验码,使用正则表达式来快速删除使用替换在查找目标栏输入.$就是从行末向左匹配一个字符,然后替换为空白,这种替换操作两次即可去掉每行行末的一个字节。


此时该Hex文件就会转变为APUD的格式,结合Hex文件提供的偏移地址加上第一条指令中指出的基址地址就可以快速的转换为APDU指令格式。

    


0 0