Ingineria inversă
Ingineria inversă
Ingineria inversă
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Exemple: ingineria <strong>inversă</strong> a programelor Java<br />
90 if_icmple 100<br />
Evoluţia stivei în timpul execuţiei instrucţiunilor de mai sus este:<br />
this<br />
this.snows<br />
500<br />
this.snows<br />
Instrucţiunea if_icmple 100 extrage din vârful stivei o valoare întreagă, v2 (500, în cazul nostru), apoi<br />
o altă valoare întreagă, v1 (this.snows, în cazul nostru), efectuează testul v1v2.<br />
93 aload_0<br />
94 sipush 500<br />
97 putfield snow/snows I<br />
this<br />
Prin urmare avem<br />
500<br />
this<br />
if (snows > 500) snows = 500;<br />
100 aload_0<br />
101 ldc "threadsleep"<br />
103 invokevirtual java/applet/Applet/getParameter (Ljava/lang/String;)Ljava/lang/String;<br />
106 astore_1<br />
Evoluţia stivei în timpul execuţiei instrucţiunilor de mai sus este:<br />
this<br />
“threadsleep”<br />
this<br />
s = getParameter(“threadsleep”);<br />
107 aload_1<br />
108 ifnonnull 120<br />
s<br />
this.getParameter(“threadsleep”)<br />
- 29 -