28.04.2013 Views

Ingineria inversă

Ingineria inversă

Ingineria inversă

SHOW MORE
SHOW LESS

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 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!