home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / acid_burn2000 / java_fr.txt < prev    next >
Encoding:
Text File  |  2000-05-25  |  23.0 KB  |  767 lines

  1.  
  2.   ·      ·    -  -- A C i D B U R N - P R O D U C T i O N S -- - ▄   ·     ·
  3.      ░    ▄  ░      ▄ ▄  ▄       ░ ▄░          ░ ▄     ▄         ▐█▄   ▄ ░
  4.   ▄██▓▀▀███▌▄▓█▀▀▀███▌▐█▌▐███▀▀▀█▓▄▐▓██▀▀███▄░▄▓█▌ ▀▄  ▐███▀▀███▄░▓██▄ ▐█▓▄
  5.   ███▌ ░▓██▌███ ░▀▀▀▀ ▀▀▀ ███ ░ ███▌███  ▐██▓░▓██ ░ ██▌▐███▌ ▐██▓ ███▀█▄███▌
  6.   ▓██▀▀▀███▌███▌░ ░▓█▌███▌███ ░ ███▌███▀▀▀██▄▐███ ░ ███▐███▀▀▓██▄ ███▌ ▀███▌
  7.  ░▓██▌░ ███ ▓██▌░ ███▌███░▓██ ░▐███▌███▌ ▄███▐███▌░░▓██░▓██▌ ▐███▌███▌░ ███▄
  8.  ▐███▌░ ███▐███▌░ ███▐██▓▐███ ░▐███░▓██▌░▐███▐███▌ ▐███▌███▌░ ███▌███▌░ ██▓▀▄
  9.  ▐███▌░ ███▐███▌░ ███▐██▓▐███ ░▐███▐███ ░▐███▐███▌ ▐███▌███▌░░▓██ ▓██▌░ ██▌
  10.  ▐██▓ ░▐██▓▀▒██▄▄▄███▒██▓▐███▄▄██▒▀▓███▄▄████▀████▄▓███▀▓█▒▄ ▐█▀ ░▓███ ▐█▀
  11.   ▀      ▀░  ▀    ▀    ▀       ▀          ▀         ▀   ░    ▀      ▀  ▀
  12.   ·      ·    -  -- A C i D B U R N - P R O D U C T i O N S --  -    ·     ·
  13.                                 SRT - CRO
  14.  
  15.  
  16.  
  17.         JAVA REVERSE ENGINEERING: Vaincre java !
  18.                                  
  19.         Cour par ACiD BuRN [Immortal Descendants]             
  20.                              (October 23th, 1999)             
  21.  
  22.  
  23.  
  24.  
  25.  
  26. Intro:
  27.  
  28. hello, cracker du java peut etre extremement facile a condition d'avoir un decompileur
  29. je vais donc vous montrez comme quoi reverse du java , ca peut tres simple !
  30. il existe des protections java beaucoup plus dure bien sur , mais ce cour est la pour
  31. vous familiarisez au java !
  32.  
  33. on a besoin de:
  34.         - JAD (java decompiler)
  35.         - rien de plus :)    
  36.  
  37.  
  38. URLS:           http://www.lawrencegoetz.com/   (the java target app)
  39.                 http://acidburn2000.cjb.net/    (the java decompiler soon on my site)
  40.  
  41.  
  42. Dans ce cour nous allons cracker 3 choses: Goetz's Banner V 2.0 , Goetz's Marquee 1.1,
  43. et ManKind java crackme !
  44.  
  45.  
  46. Let's kick some ass !
  47.  
  48. dΘzipez l'archive de Goetz's Banner V 2.0 dans un repertoire quelquonque.vous devez voir
  49. des fichiers de type .class et html en autres!
  50. Lancez the fichier d'exmple exemple.html), et vouz verrez l'effet de banniere sur ce 
  51. petit truc en java ! Mais un Putain de UNREGISTERED a la con pointe son nez hehe Doh!
  52. Donc, les fichiers java sont de type: .class.Apres avoir recuperΘ le decompileur java
  53. sur mon site, et l'avoir place dans le repertoire ou vous venez de dezipper ces applets
  54. deplacez le fichier .class sur le decompiler (jad.exe) pour qu'il le decompile!!
  55. Mais , il est preferable de faire un fichier Bat , pour definir le chemin de destination
  56. du fichier decompilΘ , car il peut se retrouver dans le repertoire de windows par exemple!
  57. Bref, une vois que vous l'avez (les fichiers decompiles portent l'extension ".jad")
  58. editez le avec un editeur de textes, et vous devriez voir qq chose comme ca:
  59.  
  60.  
  61.  
  62. --------------------------------------gbanner.JAD------------------------------------------
  63.  
  64. // Decompiled by Jad v1.5.7. Copyright 1997-99 Pavel Kouznetsov.
  65. // Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
  66. // Decompiler options: packimports(3) 
  67. // Source File Name:   gbanner.java
  68.  
  69. import java.applet.Applet;
  70. import java.applet.AppletContext;
  71. import java.awt.*;
  72. import java.io.*;
  73. import java.net.MalformedURLException;
  74. import java.net.URL;
  75. import java.util.Vector;
  76.  
  77. public class gbanner extends Applet
  78.     implements Runnable
  79. {
  80.  
  81.     public boolean mouseEnter(Event event, int i, int j)
  82.     {
  83.         if(info[place] != null && displaying)
  84.             getAppletContext().showStatus(info[place]);
  85.         mouseInside = true;
  86.         return true;
  87.     }
  88.  
  89.     public void stop()
  90.     {
  91.         running = false;
  92.         if(animate != null)
  93.         {
  94.             animate.stop();
  95.             animate = null;
  96.         }
  97.     }
  98.  
  99.     public gbanner()
  100.     {
  101.         m_background = "white";
  102.         test_it = "";
  103.         drawn = true;
  104.         zoom = true;
  105.         pausable = true;
  106.         m_target = "_self";
  107.     }
  108.  
  109.     public boolean mouseExit(Event event, int i, int j)
  110.     {
  111.         mouseInside = false;
  112.         getAppletContext().showStatus("");
  113.         return true;
  114.     }
  115.  
  116.     public void paint(Graphics g)
  117.     {
  118.         if(drawable)
  119.         {
  120.             g.drawImage(offImage, 0, 0, this);
  121.             place = loadImage;
  122.         }
  123.         drawn = true;
  124.     }
  125.  
  126.     public String[][] getParameterInfo()
  127.     {
  128.         String as[][] = {
  129.             {
  130.                 "image", "String", "lineN where N is the line number"
  131.             }, {
  132.                 "background", "String", "Background color"
  133.             }, {
  134.                 "URL", "String", "URLN where N is the URL for the image N."
  135.             }, {
  136.                 "target", "String", "Target of URL"
  137.             }, {
  138.                 "info", "String", "infoN where N is the infomation for the image N."
  139.             }, {
  140.                 "pause", "String", "pauseN where N is the pause time for the image N."
  141.             }, {
  142.                 "zoom", "String", "Zoom the images or not."
  143.             }, {
  144.                 "shuffle", "String", "Shuffle the images or not."
  145.             }, {
  146.                 "pauseable", "String", "Pause the applet when the mouse is in it."
  147.             }, {
  148.                 "one", "String", "Display only one image. Good for use with shuffle to display one random image."
  149.             }
  150.         };
  151.         return as;
  152.     }
  153.  
  154.     public void destroy()
  155.     {
  156.         running = false;
  157.         if(animate != null)
  158.         {
  159.             animate.stop();
  160.             animate = null;
  161.         }
  162.     }
  163.  
  164.     public int[] shuffle()
  165.     {
  166.         Vector vector = new Vector();
  167.         int ai[] = new int[amount];
  168.         for(int j = 0; j < amount; j++)
  169.             vector.addElement(new Integer(j));
  170.  
  171.         for(int k = 0; k < amount; k++)
  172.         {
  173.             int i = (int)(Math.random() * (double)(amount - k));
  174.             Integer integer = (Integer)vector.elementAt(i);
  175.             ai[k] = integer.intValue();
  176.             vector.removeElementAt(i);
  177.         }
  178.  
  179.         return ai;
  180.     }
  181.  
  182.     public void update(Graphics g)
  183.     {
  184.         paint(g);
  185.     }
  186.  
  187.     public void start()
  188.     {
  189.         place = 0;
  190.         if(offImage == null)
  191.         {
  192.             offImage = createImage(d.width, d.height);
  193.             offGraphics = offImage.getGraphics();
  194.         }
  195.         try
  196.         {
  197.             myInfo = new URL(getDocumentBase(), "gboption.ini");
  198.         }
  199.         catch(MalformedURLException _ex)
  200.         {
  201.             good = false;
  202.         }
  203.         if(myInfo != null)
  204.             try
  205.             {
  206.                 input = myInfo.openStream();
  207.                 dataInput = new DataInputStream(input);
  208.                 test_it = dataInput.readLine();
  209.                 dataInput.close();
  210.             }
  211.             catch(IOException _ex) { }
  212.         if(test_it.equals("InFeb"))
  213.             good = true;
  214.         running = true;
  215.         if(animate == null)
  216.         {
  217.             animate = new Thread(this);
  218.             animate.start();
  219.         }
  220.     }
  221.  
  222.     public String getAppletInfo()
  223.     {
  224.         return "Title: Goetz's Banner\r\n" + "Author: Lawrence Goetz\r\n" + "E-mail: goetz@lawrencegoetz.com\r\n" + "Web: http://www.lawrencegoetz.com/\r\n" + "Copyright Lawrence Goetz 1998";
  225.     }
  226.  
  227.     public boolean mouseDown(Event event, int i, int j)
  228.     {
  229.         if(locations[place] != null && displaying)
  230.             getAppletContext().showDocument(locations[place], m_target);
  231.         return true;
  232.     }
  233.  
  234.     public void run()
  235.     {
  236.         int i = 20;
  237.         int ai[] = null;
  238.         if(shuffle)
  239.             ai = shuffle();
  240.         int j1 = 0;
  241.         if(!shuffle)
  242.             loadImage = j1;
  243.         setMyColor(offGraphics, "blue");
  244.         offGraphics.fillRect(0, 5, 110, 20);
  245.         setMyColor(offGraphics, "yellow");
  246.         offGraphics.drawString("Loading Image", 5, 20);
  247.         drawable = true;
  248.         repaint();
  249.         try
  250.         {
  251.             Thread.sleep(100L);
  252.         }
  253.         catch(InterruptedException _ex) { }
  254.         Thread.yield();
  255.         images = new Image[amount];
  256.         while(running) 
  257.         {
  258.             while(!drawn) 
  259.                 try
  260.                 {
  261.                     Thread.sleep(10L);
  262.                 }
  263.                 catch(InterruptedException _ex) { }
  264.  
  265.             if(shuffle)
  266.                 loadImage = ai[j1];
  267.             if(!shuffle)
  268.                 loadImage = j1;
  269.             images[loadImage] = getImage(getDocumentBase(), getParameter("image" + Integer.toString(loadImage + 1)));
  270.             MediaTracker mediatracker = new MediaTracker(this);
  271.             mediatracker.addImage(images[loadImage], 0);
  272.             try
  273.             {
  274.                 mediatracker.waitForID(0);
  275.             }
  276.             catch(InterruptedException _ex) { }
  277.             drawn = false;
  278.             drawable = false;
  279.             if(!zoom)
  280.                 i = 1;
  281.             image_w = images[loadImage].getWidth(this);
  282.             image_h = images[loadImage].getHeight(this);
  283.             int j = image_w / i;
  284.             int k = image_h / i;
  285.             int l = d.width / 2 - j / 2;
  286.             int i1 = d.height / 2 - k / 2;
  287.             setMyColor(offGraphics, m_background);
  288.             offGraphics.fillRect(0, 0, d.width, d.height);
  289.             if(i != 1)
  290.                 offGraphics.drawImage(images[loadImage], l, i1, j, k, this);
  291.             else
  292.             if(i == 1)
  293.                 offGraphics.drawImage(images[loadImage], l, i1, this);
  294.             if(!good)
  295.             {
  296.                 setMyColor(offGraphics, "blue");
  297.                 offGraphics.fillRect(0, 5, 200, 100);
  298.                 setMyColor(offGraphics, "yellow");
  299.                 offGraphics.drawString("UNREGISTERED VERSION!!!", 5, 25);
  300.                 offGraphics.drawString("Please Register this applet.", 5, 50);
  301.                 offGraphics.drawString("Registration is only $5.", 5, 80);
  302.             }
  303.             drawable = true;
  304.             try
  305.             {
  306.                 Thread.sleep(50L);
  307.             }
  308.             catch(InterruptedException _ex) { }
  309.             if(i > 1)
  310.                 i -= 2;
  311.             if(i <= 0)
  312.                 i = 1;
  313.             else
  314.             if(i == 1)
  315.                 i = 20;
  316.             repaint();
  317.             displaying = true;
  318.             if(i == 20)
  319.             {
  320.                 if(pause[loadImage] > 0)
  321.                     try
  322.                     {
  323.                         Thread.sleep(pause[loadImage] * 1000);
  324.                     }
  325.                     catch(InterruptedException _ex) { }
  326.                 while(pausable && mouseInside) 
  327.                     try
  328.                     {
  329.                         Thread.sleep(100L);
  330.                     }
  331.                     catch(InterruptedException _ex) { }
  332.  
  333.                 while(one && running) 
  334.                 {
  335.                     drawable = true;
  336.                     repaint();
  337.                     try
  338.                     {
  339.                         Thread.sleep(100L);
  340.                     }
  341.                     catch(InterruptedException _ex) { }
  342.                 }
  343.  
  344.                 if(++j1 == images.length)
  345.                 {
  346.                     j1 = 0;
  347.                     if(shuffle)
  348.                         ai = shuffle();
  349.                 }
  350.             }
  351.             Thread.yield();
  352.         }
  353.  
  354.     }
  355.  
  356.     public void init()
  357.     {
  358.         int i = 1;
  359.         String s4 = "image" + Integer.toString(i);
  360.         for(String s = getParameter(s4); s != null; s = getParameter(s4))
  361.         {
  362.             amount++;
  363.             i++;
  364.             s4 = "image" + Integer.toString(i);
  365.         }
  366.  
  367.         locations = new URL[amount];
  368.         for(int j = 0; j < amount; j++)
  369.         {
  370.             String s1 = getParameter("URL" + Integer.toString(j + 1));
  371.             if(s1 != null)
  372.             {
  373.                 try
  374.                 {
  375.                     locations[j] = new URL(getDocumentBase(), s1);
  376.                 }
  377.                 catch(MalformedURLException _ex) { }
  378.             }
  379.             else
  380.             {
  381.                 String s2 = getParameter("URL");
  382.                 try
  383.                 {
  384.                     locations[j] = new URL(getDocumentBase(), s2);
  385.                 }
  386.                 catch(MalformedURLException _ex) { }
  387.             }
  388.         }
  389.  
  390.         String s3 = getParameter("target");
  391.         if(s3 != null && !s3.equals(""))
  392.             m_target = s3;
  393.         info = new String[amount];
  394.         for(int k = 0; k < amount; k++)
  395.         {
  396.             info[k] = getParameter("info" + Integer.toString(k + 1));
  397.             if(info[k] == null)
  398.                 info[k] = getParameter("info");
  399.         }
  400.  
  401.         pause = new int[amount];
  402.         for(int l = 0; l < amount; l++)
  403.         {
  404.             String s6 = getParameter("pause" + Integer.toString(l + 1));
  405.             if(s6 != null && !s6.equals(""))
  406.             {
  407.                 pause[l] = Integer.parseInt(s6);
  408.             }
  409.             else
  410.             {
  411.                 String s7 = getParameter("pause");
  412.                 if(s7 != null && !s7.equals(""))
  413.                     pause[l] = Integer.parseInt(s7);
  414.             }
  415.         }
  416.  
  417.         String s5 = getParameter("background");
  418.         if(s5 != null)
  419.             m_background = s5;
  420.         s3 = getParameter("zoom");
  421.         if(s3 != null && s3.equalsIgnoreCase("false"))
  422.             zoom = false;
  423.         s3 = getParameter("pauseable");
  424.         if(s3 != null && s3.equalsIgnoreCase("false"))
  425.             pausable = false;
  426.         s3 = getParameter("shuffle");
  427.         if(s3 != null && s3.equalsIgnoreCase("true"))
  428.             shuffle = true;
  429.         s3 = getParameter("one");
  430.         if(s3 != null && s3.equalsIgnoreCase("true"))
  431.             one = true;
  432.         d = size();
  433.         place = 0;
  434.         offImage = createImage(d.width, d.height);
  435.         offGraphics = offImage.getGraphics();
  436.         resize(d.width, d.height);
  437.     }
  438.  
  439.     public void setMyColor(Graphics g, String s)
  440.     {
  441.         if(s.equals("white"))
  442.         {
  443.             g.setColor(Color.white);
  444.             return;
  445.         }
  446.         if(s.equals("black"))
  447.         {
  448.             g.setColor(Color.black);
  449.             return;
  450.         }
  451.         if(s.equals("light gray"))
  452.         {
  453.             g.setColor(Color.lightGray);
  454.             return;
  455.         }
  456.         if(s.equals("gray"))
  457.         {
  458.             g.setColor(Color.gray);
  459.             return;
  460.         }
  461.         if(s.equals("dark gray"))
  462.         {
  463.             g.setColor(Color.darkGray);
  464.             return;
  465.         }
  466.         if(s.equals("red"))
  467.         {
  468.             g.setColor(Color.red);
  469.             return;
  470.         }
  471.         if(s.equals("pink"))
  472.         {
  473.             g.setColor(Color.pink);
  474.             return;
  475.         }
  476.         if(s.equals("orange"))
  477.         {
  478.             g.setColor(Color.orange);
  479.             return;
  480.         }
  481.         if(s.equals("yellow"))
  482.         {
  483.             g.setColor(Color.yellow);
  484.             return;
  485.         }
  486.         if(s.equals("green"))
  487.         {
  488.             g.setColor(Color.green);
  489.             return;
  490.         }
  491.         if(s.equals("magenta"))
  492.         {
  493.             g.setColor(Color.magenta);
  494.             return;
  495.         }
  496.         if(s.equals("cyan"))
  497.         {
  498.             g.setColor(Color.cyan);
  499.             return;
  500.         }
  501.         if(s.equals("blue"))
  502.             g.setColor(Color.blue);
  503.     }
  504.  
  505.     private String m_background;
  506.     private final String PARAM_imageN = "image";
  507.     private final String PARAM_background = "background";
  508.     private final String PARAM_URLN = "URL";
  509.     private final String PARAM_infoN = "info";
  510.     private final String PARAM_pauseN = "pause";
  511.     private final String PARAM_zoom = "zoom";
  512.     private final String PARAM_shuffle = "shuffle";
  513.     private final String PARAM_target = "target";
  514.     private final String PARAM_pausable = "pauseable";
  515.     private final String PARAM_one = "one";
  516.     private Dimension d;
  517.     private boolean running;
  518.     private Image images[];
  519.     private int place;
  520.     private Image offImage;
  521.     private Graphics offGraphics;
  522.     private boolean good;
  523.     private URL locations[];
  524.     private URL myInfo;
  525.     private String test_it;
  526.     private final String option = "InFeb";
  527.     private InputStream input;
  528.     private DataInputStream dataInput;
  529.     private Thread animate;
  530.     private boolean drawable;
  531.     private boolean drawn;
  532.     private MediaTracker imageTracker;
  533.     private int image_w;
  534.     private int image_h;
  535.     private String info[];
  536.     private int pause[];
  537.     private int amount;
  538.     private boolean zoom;
  539.     private boolean shuffle;
  540.     private boolean pausable;
  541.     private String m_target;
  542.     private int loadImage;
  543.     private boolean displaying;
  544.     private boolean mouseInside;
  545.     private boolean one;
  546. }
  547.  
  548. -------------------------------------------End of jad file---------------------------------
  549.  
  550. ok balaise huh ?
  551. Donc pour les prochains fichier, je vous montrerez que les parties importantes!
  552. Donc, vous avez jetez un oeil a la source si dessus, et vous avez (j'espere ;p) reperΘ la
  553. protection ! un petit keyfile a la mort moi le noeud :p *grin*
  554. Donc, on cherche qq chose qui ressemble a un controle de fichiers:
  555.  
  556.  
  557.       try
  558.       {
  559.           myInfo = new URL(getDocumentBase(), "gboption.ini");  <--- eheheh! Nom du keyfile
  560.       }
  561.       catch(MalformedURLException _ex)
  562.       {
  563.           good = false;
  564.       }
  565.       if(myInfo != null)
  566.           try
  567.           {
  568.               input = myInfo.openStream();
  569.               dataInput = new DataInputStream(input);
  570.               test_it = dataInput.readLine();
  571.               dataInput.close();
  572.           }
  573.           catch(IOException _ex) { }
  574.       if(test_it.equals("InFeb"))   <--- hmm ! on dirait qu'il compare le texte dans du fichier
  575.           good = true;            <--- si le texte = InFeb donc c'est OK
  576.       running = true;                //     sinon Get the fuck outta here!!
  577.       if(animate == null)
  578.  
  579.  
  580.  
  581. w0w , ca craint! creez un fichier nommΘ gboption.ini et mettez 'InFeb' dedans!!
  582. (sans les ' ' biensur), enregistrez ce fichier , copier le dans le repertoire de l'applet 
  583. et lancez le fichier exemple.hml!
  584. Kewl !! voila le Putain D'UNREGISTERED texte a mouru lol :)
  585. Facile non ??
  586.  
  587.  
  588. Part2: Goetz's Marquee V 1.1
  589.  
  590.  
  591. Toujours la meme chose! Keyfile based protection
  592. Decompile fichier class et ouvre le avec notepad par exemple !
  593.  
  594. je vous montre les parties importantes seulement, car c'est exactement la meme merde!
  595.  
  596.  
  597. -------------------------------------cut from gmarquee.jad-------------------------------- 
  598.  public void start()
  599.     {
  600.         if(offImage == null)
  601.         {
  602.             offImage = createImage(d.width, d.height);
  603.             offGraphics = offImage.getGraphics();
  604.         }
  605.         if(f == null)
  606.         {
  607.             f = new Font("Helvetica", 0, m_font);
  608.             fm = offGraphics.getFontMetrics(f);
  609.         }
  610.         try
  611.         {
  612.             myInfo = new URL(getDocumentBase(), "gmoption.ini");     <---- hehe :p
  613.         }
  614.         catch(MalformedURLException _ex)
  615.         {
  616.             good = false;
  617.         }
  618.         if(myInfo != null)
  619.             try
  620.             {
  621.                 input = myInfo.openStream();
  622.                 dataInput = new DataInputStream(input);
  623.                 test_it = dataInput.readLine();
  624.                 dataInput.close();
  625.             }
  626.             catch(IOException _ex) { }
  627.         if(test_it.equals("Eggplant"))  <--- si le cracker a mit Eggplant jmp goodboy
  628.             good = true;           // sinon: jmp GET the fuck outta here :p    
  629.         if(!good)
  630.             try
  631.             {
  632.                 reg = new register(300, 200, "Please Register Goetz's Marquee", "http://www.lawrencegoetz.com/programs/nettools.htm", this);
  633.             }
  634.             catch(Exception _ex)
  635.             {
  636.                 System.err.println("You are missing the file register.class");
  637.                 return;
  638.             }
  639.         if(animate == null)
  640.  
  641.  
  642.  
  643. -----------------------------End of quotes from Gmarquee.jad------------------------------------
  644.  
  645.  
  646.  
  647. Encore , creez un fichier nommΘ gmoption.ini et mettez 'Eggplant' dedans !
  648. (sans les ' ' ) Enregistrez les fichiers , et lancez le fichier d'exemple!
  649. et voila , plus de mechant Texte hehe !
  650.  
  651. C'est maintenant enregistrΘ et vous pouvez apprecier ce petit applet java :p
  652.  
  653. Ok, assez avec ces conneries de keyfile a la mort moi le noeud , regardons ce petit crackme
  654. coder par notre ami MandKind en java!
  655. il n'y a aucun fichier html fournis pour tester le serial , mais on en a pas besoin hehe!!
  656.  
  657. Ph43R !!
  658.  
  659. Comme d'hab , decompilez le fichier class , et ouvrez le avec notepad !!
  660. On peut voir cette merde:
  661.  
  662.  
  663. ---------------------------------Start of CrackMe.jad-------------------------------------------
  664.  
  665.  
  666.    public CrackMe()
  667.     {
  668.     }
  669.  
  670.     public static void main(String args[])
  671.     {
  672.         if(args.length != 1)
  673.         {
  674.             System.out.println("Usage: java CrackMe Registration Code");
  675.             System.exit(0);
  676.         }
  677.         System.out.println("");
  678.         System.out.println("");
  679.         System.out.println("Welcome to ManKind's Java CrackMe 0.1");
  680.         System.out.println("=====================================");
  681.         System.out.println("This is an Alpha Test of ManKind's Java CrackMe, please do send your comments, suggestions, opinions, feedbacks and support words to me!");
  682.         System.out.println("");
  683.         System.out.println("");
  684.         int i = Integer.valueOf(args[0]).intValue();
  685.         if(i == 0x7f42b)
  686.             System.out.println("Congratulations, you succeeded in cracking this!");
  687.         if(i != 0x7f42b)
  688.             System.out.println("Sorry, invalid registration code. Please try again!");
  689.         System.out.println("");
  690.         System.out.println("");
  691.         System.out.println("This program is Copyright \251 1999 ManKind");
  692.         System.out.println("Service for Mankind");
  693.         System.out.println("mankind001@bigfoot.com");
  694.         System.exit(0);
  695.     }
  696. }
  697.  
  698.  
  699. ---------------------------------End of CrackMe.jad-------------------------------------------
  700.  
  701.  
  702. hehe, ca a l'air marrant!
  703. nous voyons:
  704.  
  705. "      int i = Integer.valueOf(args[0]).intValue();
  706.         if(i == 0x7f42b)
  707.             System.out.println("Congratulations, you succeeded in cracking this!");
  708.         if(i != 0x7f42b)
  709.             System.out.println("Sorry, invalid registration code. Please try again!");
  710.         System.out.println("");      "
  711.  
  712.  
  713. En visual basic ca donerait ceci:
  714.  
  715.  
  716. IF serial= $7f42b then
  717. msgbox "Congratulations, you succeeded in cracking this!"
  718. Else
  719. msgbox "Sorry, invalid registration code. Please try again!"
  720. End if
  721.  
  722. "0x7f42b" est en hexadecimal (0x nous le montre) mais nous voulons le bon serial donc on
  723. le convertit en decimal! si vous avez soft ice chargΘ:
  724.  
  725. Ctrl+d
  726. ? 7b42b
  727.  
  728. on voit donc: 521259
  729.  
  730.  
  731. FACILE non ??
  732.  
  733. Bon, je n'ai plus d'autre fichier proteger en java, donc je m'en vais finir ce tut :-(
  734.  
  735. j'espere que le reversion du java est plus claire mainteneant pour vous !!
  736. c'est quelque chose de tres simple les 3/4 du temps :
  737. biensur , c'est grace au decompileur !!
  738.  
  739.  
  740.  
  741. The End:
  742.  
  743. Greetings: 
  744. group greetings: ID - ECLiPSE - CiA - ODT - EXEC - TiTaNe - PWA - PC - UCF- CORE - CC
  745.  
  746. Also greetingz to: (no specific order)
  747.  
  748. R!SC, ^INFeRNo^, AB4DS, Cyber Blade, Klefz, , Volatility, TORN@DO, T4D
  749. Jeff, [Virus], JaNe , Appbusta , Duelist , tKC , BuLLeT , Lucifer48 , 
  750. MiZ , DnNuke , Bjanes , Skymarshall , afkayas , elmopio , SiFLyiNG , 
  751. Fire Worx , CrackZ , neural_en  , WarezPup , _y , SiONIDE , SKORPIEN
  752. Lazarus , Eternal_Bliss , Magic Raphoun , DEZM , Bisoux , Carpathia ,
  753. K17 , theMc , noos , Xmen , TeeJi , JB007 , Arobas , T0AD ,ytc , Kwai_lo ,
  754. Killer_3K, TaMaMBoLo , gizmo , Gota , ExtaBrain , Alpine , WarezPup, 
  755. zoltan , [yAtes], TarGon , Icecream , Punkguy2 , Sortof, TRDdonjuan,
  756. Lord Soth, Judged, G-Rom, Quantico, Christal, psike, Leo0n, Elraizer,
  757. +Spath, +Frog's Print, toutim ...
  758.  
  759. et tous ceux que je connais mais que j'ai oublie les nicks , desole ;p
  760.  
  761.  
  762. Copyright (c) ACiD BuRN and the Immortal Descendants.
  763.  
  764.         
  765.                 http://www.immortaldescendants.com/
  766.  
  767.