28.04.2013 Views

Ingineria inversă

Ingineria inversă

Ingineria inversă

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Exemple: ingineria <strong>inversă</strong> a programelor Java<br />

Instrucţiunea if_icmpge 149 extrage din vârful stivei o valoare întreagă, v2 (10, în cazul nostru), apoi<br />

o altă valoare întreagă, v1 (this.threadSleep, în cazul nostru), efectuează testul v1>=v2, iar în caz<br />

afirmativ execuţia continuă de la offset-ul 149. Prin urmare generează cod sursă. Pentru ca<br />

decompilarea să continue cu offset-ul 140, vom face testul invers, v1 1000)<br />

159 aload_0<br />

160 sipush 1000<br />

163 putfield snow/threadSleep I<br />

this<br />

1000<br />

this<br />

1000<br />

this.threadSleep<br />

if (threadSleep > 1000) threadSleep = 1000;<br />

Deci codul final este:<br />

- 31 -

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

Saved successfully!

Ooh no, something went wrong!