Java Card CAP 文件组件分析 10—— Export Component
来源:互联网 发布:韩国代购淘宝店推荐 编辑:程序博客网 时间:2024/06/17 12:55
Export组件列出了所有包中可能被其他包中类导入的静态元素,不包括实例域和虚方法。
1
2
3
4
5
6
7
8
9
10
11
12
export_component {
u1 tag
// COMPONENT_Export (10)
u2 size
u1 class_count
// class_exports表中项数,必须大于0
class_export_info {
u2 class_offset
u1 static_field_count
u1 static_method_count
u2 static_field_offsets[static_field_count]
u2 static_method_offsets[static_method_count]
} class_exports[class_count]
}
其中class_exports[class_count]为可变长表,若包为一个库包,则表中为每个公共类和公共接口提供一个条目;若包为一个applet包,则表中为包里定义的每个公共可共享的接口提供一个条目。表中特定类或接口的索引值等同于该类或接口的token值,token值在包的Export文件中有列出来。
Export组件需要与class_ref结构体中的external_ref来一起使用。当通过package_token查找到Export组件所在的包之后,再用class_token在Export组件中找到类信息。
在卡内installer中解析Export.cap:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int
iPose = 0;
#define READU1 readU1(pExportComponent,&iPose)
#define READU2 readU2(pExportComponent,&iPose)
if
(sizes[TAG_EXPORT_COMP-1] !=0)
{
u1 classCount = READU1;
COUT<<
"Class Count = "
<<(
int
)classCount<<ENDL;
ExportComponent *pEC =
new
ExportComponent(classCount);
for
(
int
_ie=0;_ie<classCount;_ie++)
{
u2 _co = READU2;
u1 _sfc = READU1;
u1 _smc = READU1;
pEC->pClassExport[_ie] =
new
ClassExportInfo(_co,_sfc,_smc);
for
(
int
_isf=0;_isf<_sfc;_isf++)
{
pEC->pClassExport[_ie]->pStaticFieldOffsets[_isf]= READU2;
}
for
(
int
_ism=0;_ism<_smc;_ism++)
{
pEC->pClassExport[_ie]->pStaticMethodOffsets[_ism]=READU2;
}
}
newapplet->pExport = pEC;
}
#undef READU2
#undef READU1
作者:fish
转自:http://www.dreamingfish123.info/?p=684
转自:http://www.dreamingfish123.info/?p=684
0 0
- Java Card CAP 文件组件分析 10—— Export Component
- Java Card CAP组件分析——Header Component
- Java Card CAP组件分析——Header Component
- Java Card CAP 文件组件分析 01—— Header Component
- Java Card CAP 文件组件分析 02—— Directory Component
- Java Card CAP 文件组件分析 03—— Applet Component
- Java Card CAP 文件组件分析 04—— Import Component
- Java Card CAP 文件组件分析 05—— Constant Pool Component
- Java Card CAP 文件组件分析 09—— Reference Location Component
- Java Card CAP 文件组件分析 12—— Debug Component
- Java Card CAP 文件组件分析 00
- Java Card CAP 文件组件分析
- Java Card CAP文件分析
- Java Card CAP文件分析
- JAVA card 应用开发(四) Java Card CAP 文件组件分析
- JAVA card 应用开发(三) 把APPLET(CAP文件)装载到卡片
- JAVA card 应用开发(三) 把APPLET(CAP文件)装载到卡片
- JAVA card 应用开发(三) 把APPLET(CAP文件)装载到卡片
- Linux服务器程序性能测试的一些思考
- quick-select
- [置顶] oracle 分库分表(sharding)
- C语言 高精度加法
- VS2010+VMWare8+VisualDDK1.5.6
- Java Card CAP 文件组件分析 10—— Export Component
- How many zeros and how many digits?
- C语言 高精度减法
- android listFiles()总是崩溃
- 只为寻你。
- C++之静态成员变量/函数以及成员指针
- 设计模式总结(二)
- java wait notifyAll 生产者 消费者 BlockingDeque
- C语言 高精度乘法