Ingineria inversă
Ingineria inversă
Ingineria inversă
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 -