   
: (c)   
 
    ?    ?   //   ?   !!!           .       ,        ,         .

    .      , , ,      .     - ,    ,     /   .        .  ,   ...     ,         ?      ,       ,    ,     .      ,   -     .  -        .     ....
 
    (     ~70%)   Java,   - J2ME,    Java 2 Micro Edition.     Java,          .  ""  ,      "-",    Java- (Java Virtual Machine   JVM). , ,     ,     ,      ,    (     ).              .
  ( Fight Hard 3D  RiderX 3D)               (, ARM 6),     .      .    ,      Java-,   Fight Hard'   ,      .
 1.  Siemens S55  -  iRwave.
   
   -   ,  ,   , .         .      .       -  -  ,   .  ,       .        ,    ,     ,     (   ,   ,   ). 
      -  Java-,      Sun (  ),      Java  ,   .   ,      Java-   JVM, , ,   "  Java"  ,     , ,  ,      -,   ;
  Java-     IDA Pro,       ,        ,   ,    Java SDK      ,        (. JavaBite,  );
     -,       Java-,      . Java-  .   .    avaDec by wl,   .    JDecompiler.     .           ,      ,              ,      -;
 2.   Java-.
  - (  "-")   hex-, ,   hiew,     ,      JavaBite by BitArts,    ,         -. 
        jar-,   ,    Java SDK,      .  7-Zip()  WinAce (-)       .   Java-,   .  7-Zip,  WinAce    ,     .     jar-   ;
   jar-  jad-,        java-         JADgen,  jad-   jar-            .   (     )   "",        -  . ,     ""  ,         reset,      (    - ),       . ,        .  90%       Java-.  9%    ,     .    1%        .  ,     -   .
 
   
      Macroman (      1979    Namco ,     8-   ZX-Spectrum),            .    -  ,     .  -      ,      .       ,   -        .
,  , !    ,        .
 3. MacroMan Demo   Macrospace.
   
 , , Macroman'         ( ),    .    : "1 Life Left" (  ). ,  ,   ,      ,        .   ,      (    Java)    .
      .  .    jar-,    7-Zip (   .jar .zip).       :
 
- META-INF  //        - IMAGES   //        png - MACROMAN  //    MacromanMidlet.class  - - b.class   \ -c.class   | - d.class   | -e.class   +-    - - f.class   | -g.class   /
 
 1.   jar-   .
 FAR (   -),  <ALT-F7> (Search),    "*" ( )     "Life Left",         "e.class",   19 .
 4.   "Life"   .
 "e.class"  JDec (   )     "e.java"   36 ,      FAR'  <F4> (Edit),  <F7> (Search)     "Life Left",      (.  2):
 
 if (ax < 0) // <- ax,    -   {   byte4 = 2;    as1 = new String[2];    as1[0] = "Game Over";    as1[1] = "HiScore: " + aq.e;    break;  }  if (ax == 1)  {    byte4 = 1;    as1= new String[byte4];    as1[0] = ax + " Life Left"; //    }
 
 2.   Java-,    "Live Left".
        .   "ax"    -  "Game Over",         .
,   ,   ,   "ax"      .     ?      !   "ax"  ,     .      ,       (   - ,   ,   ,   ax < 0):
 
 private byte ax;  ...  av = 0;  ax = 2;   //     f.a(this, a4);
 
 3.  ,     .
, ,   "ax = 2"  "ax =69" (),      . -,       ,  -,   ,       (       ""  ,             ).
,   ...    "ax--"   "f()",    "ax"   (.  4).
 
public void f() { MacromanMidlet.c();  as = 3;  removeCommand(b); if(ay <= 10)  {   addCommand(a);   addCommand(e);  }  else  {    ax--;    // <-     !!!    if(ax < 0)    {     addCommand(a);     addCommand(e);      if(av > aq.e)      aq.e = av;    }   else    {     addCommand(f);    }  } c(); }
 
 4.    f(),   "ax" ( )  .
  - ,  !!!   -,      .  -    IDA Pro,    JavaBite.   "e.class"     ,    "f()"          "ax".
 5.  -  IDA Pro.
  ,   "f()"    "ax"   (.  5):
 
met016_44:        ; CODE XREF: f_1+22^j 042    aload_0    ; var016_0 089   dup 180 001 199  getfield ax B   ;   ax,     004   iconst_1   ;     1 100    isub    ;         145    int2byte   ;   int     181 001 199   putfield ax B   ;    ax 042    aload_0    ; var016_0 180 001 199  getfield ax B 156 000 047  ifge met016_106
 
 5.   -  f(),   "ax" ( )  .
 ,    "isub" ( 64h/100)  ""   "iadd" ( 60h/96)?       hex-, ,  hiew'.    "042/089/180 001 199/004/100/145/181 001 199" (  "isub")   100  96.              ...          -.     !    .
 6.        .
!    "isub"   "nop" ( 00h). , ,      JaveBite,     hiew'.     "isub",            "Edit Instuction".        .  "nop",   "OK"   <Ctrl-S> (Save Class),      .
 7.  -  JavaBite.
   ...  ,  .     Java-      .   x86-      SUB     NOP.   Java       "isub"     ,    ,     .  "isub"  "nop"       -    ""   "iconst_1".  "int2byte"   , ..     ,     ,       .
 ,   -  :
 
met016_44:        ; CODE XREF: f_1+22^j 042    aload_0    ; var016_0 089   dup 180 001 199  getfield ax B  ;   ax,     000    nop     ;    000     nop     ;    145    int2byte   ;   int     181 001 199  putfield ax B ;    ax
 
 6. -,  "" (    ).
   -  <Ctrl-S> ( <F9>     hiew'),         jar-      .  ,  .
 8.  jar-   WinAce.
  WinAce     ( ),     "JavaSoft-Jar"    "" (. . 8).     ,   7-Zip  jar' !  , , , ,   Zip'.  "Archive format" : "ZIP",  "Compression level" -"Normal",  "Compression method"   "Deflate".      -  . ,     ".zip"  ".jar". ,       .
 9.  jar-  7-Zip.
   
      Macroman.jar.     ?  !!!     . ,   ,  ,          http-,       GPRS.  ,  .    ,      .
 10.      .
,     ...     (-   , -)     ,   ...  !!!  ! ( ,  )    -       .   ,          ...      ?    - !!!
 11.  ,     .
     
      !  ,       .    .   !  -    ,   ...    .     ,       -.  ,    ,           "hacked by...".
          ,      . ,     ,     png-,    image.
,       .           -,     ,  "" ,     ,          . -- -  !!!    ,   -  ,    .  , !!! ...  ...  -     .      ,   " "   ,    -    .
  JVM-
   

i2b  91h/145  1     int
      int,   ,    int (  )      
aload_<n>  (2Ah/42)+n  1     objectref
  objectref    <n>      
dup  59h/89  1   
   ,     
getfield  B4h/180  2   ,  : objectref  value
       
iconst_<i>  (2h)+<i>  -
     <i>
isub  64h/100  2     int
       int,          
iadd  60h/96  2     int
       int,        
putfield  B5h/181  2   ,  : objectref  value
            
nop  00h  -   
 1.   JVM-,     .
 
Copyright 2003-2009, InsidePro Software. All rights reserved.
Thursday, 23rd of July 2009
 
###
Macroman: Java-
http://www.cec.ru/Files/macroman_demo.jar
The JavaTM Virtual Machine Specification Second Edition:
   - Java-
http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html
avaDec 0.9b by wl:  Java-,    
http://www.wasm.ru/baixado.php?mode=tool&id=362
JDecompiler (Java Decompiler) 1.0:
        Java-
http://java-decompiler.qarchive.org
IDA PRO:      ,      -  Java-,    
http://www.idapro.com
JavaBite: ,    - JVM   ,         
http://www.wasm.ru/baixado.php?mode=tool&id=284
JADgen:   jad-,    
http://softsearch.ru/programs/134-892-jadgen-download.shtml
7-Zip:  ,       jar-
http://www.7-zip.org;
Winace 2.6: - ,      jar
http://www.tucows.com/software_detail.html?id=194310
Creating a JAR File:      jar-   Sun,        , 
http://java.sun.com/docs/books/tutorial/deployment/jar/build.html
Bluejacking "   10  (J2ME)":  ,          
http://netgigg.livejournal.com/8631.html
### 
