深入解析JAVA智能卡的可执行文件
发布时间:2024-11-25
发布时间:2024-11-25
Java相关文章!经典文章!
瀑入解析J VA智能卡可执的文件行 A丁颖
(上海华虹集成电有限责路任公司,, 0海2 3 上12 )0要摘:随着 J卡在智能V领卡的域日益起崛,AA越来越多的卡片和芯片业选企将择J VAA智卡能为作重点研发方向。本从文专业技术角度深入剖析了应于用 J能V的卡可执文件行( A AA智 CP文件 )的成组构结与
要组重件部分,为而自从开发具有行自主知识权产的 JV虚拟机 C M和 J(V运行境环 ( EC提供 AA V )J AA J )必要 R技的术依据。 关键词:AC P文件 A A智;能卡; JV件组构结
1技背术景 随着大规集成模路电技的不术进断步以及,人
种用同时应存的在场景,不应限用类种、互干不并扰可到实做时换切,从真正义上意体现了一 多卡用, 这有减少效用了户卡保片量有。 J AVA智能的可执行卡文 (件 A PC件文,文称 下为之包Pcae编)译多个应用程序(pl t的 ak g是A ep
)们日对常活生利性便安和性全求的要断提不高智,能卡术技近几在年取得蓬勃的发了展,现了涌很多
秀的优品。作产为成集电路行的业个一分,智能支卡技术除在了件工硬艺有上断不升的改进级外,具更有深远意义的创新体现平在台化软的件架构上。众所周 知,产品片除硬件了,要需有相 的应套配软卡还件支持 驱,动软件、 应用软件如。如何将这些软在件
成生结。实际果发操作卡,时首需要先将该执行文可件载至下卡中,片并安装要需应用实的;例用户用使该安装的应用实例行操作执功能。在上述两个卡片操 阶段作,使用了 C文件P所提供 内容的, A均因此, 对 C P文件的入解析变得深为尤必要。A
架构次上层行分离进如何将应,用件软为第作三方独立于各厂家不同的硬件环境外之成,业为界直一在研 究的课题。在这种业行背景下, A智能V卡 J A应运而。
2生 C件概述P A文继除类承库同不外,VJ A智能程卡序的译编过A程类同于 J VA A言语。J V A A源代码编译完成,后 生成相应对的字码节信息文 .件s再 a通过转换 工 c, s具l其对进行校验和转换,终形成 .A最 CP ( C P即 )A的二进制件。文文可以下件载及
安装,该并在执行中JVA A语言为一作项解释类高的语级言,具有与平台无关特性,比较的C语言 在的存平相台关
相情况更,为广大基于平台开发程序员的所认同。VJA A智能采卡的用 VAJ DA语是言J AVC R A的A一 个集,同样子有具JV特征的, AA并更适 于用卡这片种需要考虑空间情的况;同,时张 J A卡支持多单 A
使用含V有代码信息的,交与 V J CM执并行。每个C P A件文拥 有个 AD(一p l ao进识行别,需 IA pi nIt c Di )并hn什 .^ , w ia nn m ,^ w m
Java相关文章!经典文章!
在要J VAA智能卡上保证 AD唯一性的¨ I J。l
}转工具换生的成 CP文件采用J R压格式缩 AA压,中包制含 1其个2组,件分别是: OCPOMENN HTed r ae . OMPCOENT ND ei r,t co ry OCPMNONTE pe . pA lt C 0MPONEN T Ipr . m ot _
其中, 1的是无示符单号字节型的类数据 u变表量类型,2表示的无符是号双字 的数节据变量类 u 。t型ag组为件索引号,照按上组件名称的顺序面从 1至 2排1列。 e为 s可变长度数组 fi i[z on]的元素个数数。组i o包含中了件组所有信息的 n,[f]依据各组件属性不同而各不相同。C0MP ONN E 0sa t0 1 T Cn nPto . OCM OPNE N sl. f C a sT C0M0PNNT MeE hd. ot_
3C P A重组件介要CP绍 A件文中每的组个均件有定特的义含,应用中相在互之也间会发生找查与用调的联系组。件一COPMONEN ST iFia .lttc e d C OMONPNTERe ee e o ani。 frnc L ct o
C OMP NE xo t NO ET rp.C 0MPNOETN D c iet r sr op. CMPONOENT b gD eu一
般使特用定的结构表体示组件,之间则是过常量通池来成完翻。据组件根重的要性使用频和繁度,程选取下 面 9组件行展进开介绍。 项个完整的 C P文件中,除 peAx、o和 AplE prttD bg e组件是u可外选,其均他为必选。个组件每
的文件结同样采构用 P二进制C件文,以件名组名命, A并支持自定类义组件型,图 l如所。示l= !厂舔
加 1 3ed组件 .rHae Hae组件中包含该了C edrP A文件的基本信息, 其中包最括重的要文版件信本和包息 AD值。I版本 息信用以断判J V AA卡是支持否对文该件解析的。AD CP文的唯一件识,单别张 JV是IA A智A能上卡支不持载装相同A D的 CP件。文IA —四一解压到、试测
I_. L主 _看查啊一删除
冒
;毫 n l、jo or j啦la
;a
煞奄 32 D e t . r c o y组 i r件Dc rr i ty组记录件了 C文P件每中个组件的 oe Af[ in o的字节数,]便以下在载 C至P卡片时, A为这些件分组配存储空间。另外, ic rDr ty组件还记 录了静 e o态镜像的大小,并与Sacil件的信中息保持 tFeit d组一
致。 ,i外c o Dr此 t组y件中还包自括义类定型组件 er的大小
图 1 C AP件的文部组内织结构
33A p . p组t件 l e所有的组件均有通结用格式构,下:如 cp nnm{ o etou t g l a
Ap组e件用以记 C录P件中文 Ape的基plt Apl
t信息本C P。文件中的 A p以t多有个, A pl e可且相互立独,个每A p tl p息信按都照下的结如构存体储: e{ lAuIl n t D e g h——
2uzs ie u[f nlo ]ih+ h .^^ .+,^
i,、^
Java相关文章!经典文章!
巾国 成电集路 Cihn a nt I e r egd icCiua tr t
应用u I[ Dnt]I DAA _eI g lh u sa mehLd of ei tl n 2o t_ ft s引,引索值为 1 6位定息用信查来该询结构在体至。C AP文件中的位置,不类同型采不用同定的位方法。以下是对该种六结构体的详细描述。 CONSTAN CTl r f s io以录记 a类esn用 f _ _
}plt Aep
数 A组 D【是一个变长数组,用来放存前当 I] A p t ADpl的 I,度是长A D l g。与 C文件P一 eIe—t nhA样,每 个 pA
e也具有独的立 I pAt lD从而。查使找 A pe的过程为即对比 DA数值的程过该。组件中 ltp I
cs, l s其 a结构如 :下 CONS TAT NlC s r if fa se no{_
_lugt a
另一个重要信息是i tle ofe,_即当前 a—nt d o slms fhtA p中的e si (l )M otpl tnt l e在hd件组 oi an中l的偏f移。其中,s l方是法个静态一法,方以建创 It l n ()a当用前 Ap的e实类例 ,予应用软件生命周期开始 p lt赋执行。 ui n no{u n e n l a cs rf 2 ir a tls e————
{ lu c a e pkt e a kg o _nu1ca s tk n l ose _
如果一个 CP文件内含有多个 A t则p Ap l,e) xm caarfset l le_ e _s} lrfsc a—e sulp dn g a di
Ap tp l内息信按上均述的构结依次存储并将, e Ape数个记录于 A pe组件中。 plt lpt}
43l r p .mo t件组 I p ̄组件中存 了所有放人导包的 A D,便于 m Io查询使用。导入包存放了前当 I ̄组p引件用的变 om
中其t。=dP用以补足结i构为体4字 a节 lad gg n的整数倍,便以于存储;联合体u i no向该结构体 n指所代表的, V J类A编支持程类将存于包内或包外, A量和法,其信息在方 pace o akgi— f构结体存放中。n I p ̄件需组配要合如的下构体结使来用:mo{
ul a kp g tk n cea oe _
因在此该合联中体有体现,并根联合体据的高位最取值代表外内选择; tln slr指是前当在 i类 aec s e n r _ a _fasC件 i f] l组s o中的n偏移量。[ CON STNT AI nt eed、e sanc Fl r f iONS TANCTV ti r—__
uc l a sk t n lso e
_uMeho e、al td rf CNO STNTA_
Srp t rf三个结o ueeM d e h这
) xra cs a r e ntlls e e _f_
体构基相同本 g取,值2至 4别区于 t a。CO N
S ATN ClT s r if o构结体最的是后一字节个 a se n,f__
其中,a k_og pcaetekn为caepi[ 'akg_ 1n@索的引, I p组件 ̄的功能从结是构体获中该得索引并间 m,o接获导得入包的A D,再凭借该 AD找导到包; I I入ca s t el s no是和 k_
的te,以在用结类构的方表中找法方到法的地 no址,些将在k asC件详中细介。绍这 ls组C ON STANTSai F d ee和 ttil rfc_ pEr组配合件使用的,来用查询 xot
C OS NA SttN T Ta i—_类 sc。l s a c torf同具有相样的同结 构T。g值 5和 ehMde也a取 6其。构结如下:
5C3 ntn .o s ta件组 Ctnt o n组件s是 C文件P的所组有中件重最要 aA的数据。 td、法 meo a a方t和d c类sa ht使用不同的 结su i o nn{{u p l d g ia dn u of 2 ef st构体 V J,将这A些结构体记录 Cn于t tA s o n组中件。a Cnnt组件中共使六种用类型结体构,他均是们 so at
n) a rf ei nt le r—{ t结合定位信的息成形式组t。为构体结型索类 a g ga
h^ .¨…^,
…
;^
m, a’
Java相关文章!经典文章!
lp uc a eke t ak g o nulacs tke l os n_
utc onJ 其中,p lrs r指 当向类前的父。类s es c u _ea _f dc ae i a s c e d n tnl er
u—tl kn o e—
es指是的当前类例实所需要的 iz} xa_e ertn l fr}ec的l个数,A卡 A中义 cl定元单为 1t b e实l V J el6 i。类包含引用例类型数和类值型,类对的象为私分有 同类型的相数据不能够续连放存。实类例中,先存放 rae共 vu c rtl t这 e d区别于上段提 到的三个结构体, kn用于 pi t、有 p bi和保护p o c, e将导致具有 te o
E p r组中件,oxt具体将在 E p中r介。 xo绍t共有或护保类的数值类型对型,象再放共存有或保3C6s . 组s l件aC as l件组存放的中是C
P sA文件中所有类的信息 Ca。组件 i o[的赖个结两构体解释: ls sn】依 f i ta er en cf—
护类型的引类用型量变,re_r entkn录记了it f s reecfoe第_个一引用类变型的量kn值。T而在私有变量或 oe包量领变中域,存放引类用,型放存值数类 。型再先
oiit fe[, aif c ss[e根据实 n ea cs—so n sls, f n rc] l a]
i除两个占 c l, t ne外其他有类所的型据数均占一只 l cl e个。包的内法表方会中分一配个T nk leo给值每个方法,些这 Tnk值连续为的。因,此法方 表且o e类作为 方包法 表中的子集, l_uto _al s pbi mbe t edae c bh_和 p cae m t _aol b s kag e d_tb e ae分别指类方法表和包 h_际况情择选使用哪结个构。两个结构体使体相同用域位结构体,下:如 i eu t llb d{ f bti]as i 4 f[ lg t bne] ef u tci4 i r—c on [t a)
方法表中第一个方法的 te on,值 k基即准 kntoe。查找对在表应中偏的移,对方法表和类方包法表采用
asF l示该结表构体属哪种于i o的构体;结g n[f ]tI rc nea e f—
不同的引计算索方法,即可表中查到偏在移量。cuto n示表当前包的中接数口目,值 0至取
1 5。 tia er i中 o的成 nf c ne f—
37 e h d件 . t o组 M员c sr p rt rs lc s e se iae a— fu n fe eM o件存放 当了前包中有的所法方与异t组d h常处理。法方结的体构表示如下 meh d:i f t on o— .
[t f cue用t来指向前当接口的父接。口 ie a—on]n c,rc a iso中成的组员成下: ls如n f—
a scr fs pr ca s r fl s e u e l se _
_
{em hdh a eif oth a t t eod nr omeh d c de— .___uld ace itn e s z e l dr na sc ie—
———ulfs r fr eno e r te ee c t n k_
ui y
cd sl t bo e[e]} meh d ha e f it o edr on_ _
1urf nr ce ee e_—
co un
ulp tl meh tbd e bs u ib c to al a_e—.ulp lcum eh dt be c u n i bo atl o t—
—_{ u a sa 4 mkx tc _
lpauk g ehomtb b e s aec t d al ae—— _
—ulpc a eem h tb d aek tog l a _——coun t
uag 2n r su x lcl m2 o aas _
u p b iru lvme d htl p bi tom 2—luc it a t o ae【u l— ed cb h
_—_tb e cut a ln】o
—} _
i a ttd u p a ce v u r mlhoe2 a kg~—
ltp c ae m t a[e g—k e—ba
e m dh a r i ho含当了方前法要构栈建 t帧 o de e n包—f_ho d_
l tc ut ae o] nb i lem e it r eaif n efsc[t a ep m ntden fceno i ae it ec rnr f—
的—信息。 xs m c示表当发生常时异, ak _t操a数栈作需_
下转 (第 7 )5页
h什 .n,AA Ii^A AA m n j nm
Java相关文章!经典文章!
【国 集成电路 】lC i nah n I etrged i ui cat C tr
应用
——提出了理合用预加运和线重性均技衡对术频高通道耗进损行补偿的建议。同时 还提,出通过了测背板试衰的曲线,减确设置预正加重和线性均衡达到佳最 补的方偿法。四02,0 0 9 ( 3)【赖玖万 3.]预重加和衡技均术高速在背设板中的计应[. J用电子品产世界, 08 1 (]2 0,1 )
邱祖绶 .肤[效应的原及应用理[ .4]趋 J床机器,电]19,0 ) 99( 1
参考文献[刘.亮1]置预外重均衡加器在高背速板互中联应作者简介的用.[J电子技应用,术0 0 8(]2,01)[ 2詹谢,奇] 2戴庆元.均衡器术技研[究.J微理处机,] 杨春梅,硕研究士,生在读研究;生都成理大学工信 息学科与技学院术。
上接第 70页要c l最的大数目。N r s示
当前法的方参,数ela表若g该方法为虚方法再,加入t指i针。m xllc是则hs a osa指本 地量变栈的 l个c数。除去 法方头剩,的下e 1
)l sp er l[su ct c xs osa _ o】 an—t c s
其, as中 te c为se o s数组的索。 c引s o n ls x[ r _k la p _] t b oe[ tyc sd就是前方法当字的码信息节。e
4]结JV总 A智A能的卡核是心建 J设VA A虚拟机,可执行对文的解析是件必之路经。上文通过对C P文件 A的组成构和九个结重要件组的介绍,我们对J V A A能智卡可的行执件文了比有深入较的了解同时也,38 S a fie d件组 . t r i IcScae ti l件是当前包 所中有态静数 据存的 tfd i组放,为区包内的所类共 。有应用使用 ,需时将要
Sft l组里面件含包的息展开信,ti e c d a i构并建出态数据静像镜。
为自行开发JV AA虚机作拟了铺。垫圈
39E p r . x ot组件Epr ot组 x件要与需 csrf构结体的中 ls e_a et ra r来一起使。当用过 x通enl e f
_考参资料【]ui c ei eS ict J nV a daP om 1 r Ma ahnp ia o A cA C r l f— V t l f i tr rv i . E/.L C l.on9 0 a es 4 n22[2B]Oai i 5 r,U..5S n:o f SA u
pcae tn k找 akg_oe查到 pEr组件所在的之包后,用 c再satkn在 xo t l oe s
cMyt on,, 05 12~ 9 ] 0 h/pw n .issrm s cI 2 01 20— 40 t. w w: s. et/ u c/ma et. op t s n
prE组中找到件类息信。结体构如下所示: ox t c ase rpi_f l x ost n o_
[大伟张A.智A能卡原与理应开用发[北】京: 2]JVM .电子业工出版社, 0 8 2 . 0
{u c2 sa sot l s e f
_ulsi fae d tcti l__ co nt u coun t作简者介丁颖,州电子技科学大,杭士。硕目前在上华虹集海
uls a iemd tt c o ̄—.
——
2u
sa fil t t ci de_ __ osts _t ed c utf s tei f l _ o】nf[ a c i
_成电路有限责任公司设部计担任固组件管。主
2u aismeh d t tc o
o ttss t—to_ o] n es f ti h—d c u tf[ cae m
h t.^,^ri ,、t,n^ u^ Pm,,nm1