Prosba o przeanalizowanie kodu...

0

Witam.
Znalazlem gre na telefon, jest to poker, tyle ze jak sie skonczy 10$ kredytu, to trzeba od nowa gre w telefonie montowac ;(

Dlatego zdekompilowalem zrodlo (gra jest free) w poszukiwaniu kodu...
Autor na stronie pisze ze nie zdradzi tych pieciu cyfr, ale jak sie je wpisze i nacisnie * to pojawi sie komunikat ze mozna czitowac...
Ja sie na javie nie znam - bardziej na php.
Ponizej wklejam zrodlo. Pozdrawiam i dziekuje.

// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2004-07-18 23:50:45
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 

package lpoker;

import com.nokia.mid.ui.FullCanvas;
import java.io.IOException;
import java.util.Random;
import javax.microedition.lcdui.*;

// Referenced classes of package lpoker:
//            d, LPoker

public class a extends FullCanvas
{

    public a(LPoker lpoker)
    {
        _fldtry = lpoker;
    }

    void _mthdo()
    {
        a = new Image[5];
        b = new Image[5];
        _fldgoto = new String[53];
        _fldlong = new boolean[6];
        _fldchar = new int[11];
        _flddo = new int[10];
        _fldelse = new int[6];
        _fldvoid = 1;
        e = false;
        _fldbyte = false;
        _flddo[0] = 500;
        _flddo[1] = 100;
        _flddo[2] = 25;
        _flddo[3] = 7;
        _flddo[4] = 6;
        _flddo[5] = 5;
        _flddo[6] = 4;
        _flddo[7] = 1;
        _flddo[8] = 1;
        _fldelse[1] = 7;
        _fldelse[2] = 8;
        _fldelse[3] = 9;
        _fldelse[4] = 8;
        _fldelse[5] = 7;
        _fldfor = 0;
        lpoker.d.a("Credits=".concat(String.valueOf(String.valueOf(d))));
        try
        {
            a[0] = Image.createImage("/dos.png");
            a[1] = Image.createImage("/pique.png");
            a[2] = Image.createImage("/coeur.png");
            a[3] = Image.createImage("/carreau.png");
            a[4] = Image.createImage("/trefle.png");
            b[1] = Image.createImage("/pique_inv.png");
            b[2] = Image.createImage("/coeur_inv.png");
            b[3] = Image.createImage("/carreau_inv.png");
            b[4] = Image.createImage("/trefle_inv.png");
        }
        catch(IOException ioexception)
        {
            lpoker.d.a("init()=".concat(String.valueOf(String.valueOf(ioexception.toString()))));
        }
        _fldgoto[1] = "2";
        _fldgoto[2] = "3";
        _fldgoto[3] = "4";
        _fldgoto[4] = "5";
        _fldgoto[5] = "6";
        _fldgoto[6] = "7";
        _fldgoto[7] = "8";
        _fldgoto[8] = "9";
        _fldgoto[9] = "10";
        _fldgoto[10] = "J";
        _fldgoto[11] = "Q";
        _fldgoto[12] = "K";
        _fldgoto[13] = "A";
    }

    void a()
    {
        lpoker.d.a("void test()");
    }

    void _mthif(Graphics g, int i, int j, boolean flag)
    {
        int k = (i - 1) * 19;
        byte byte0 = 27;
        if(j > 52)
        {
            g.drawImage(a[0], k, byte0, 0);
        } else
        {
            g.drawRoundRect(k + 1, byte0, 17, 24, 8, 8);
            if(flag)
            {
                g.fillRoundRect(k + 1, byte0, 17, 24, 8, 8);
                g.drawImage(b[a(j)], k + 5, byte0 + 13, 0);
                g.setColor(255, 255, 255);
                g.drawString(_fldgoto[_mthif(j)], k + 3, byte0 + 3, 0);
                g.setColor(0, 0, 0);
            } else
            {
                g.drawImage(a[a(j)], k + 5, byte0 + 13, 0);
                g.drawString(_fldgoto[_mthif(j)], k + 3, byte0 + 3, 0);
            }
        }
    }

    void a(Graphics g, int i, int j, boolean flag)
    {
        int k = (i - 1) * 19;
        byte byte0 = 15;
        if(j <= 52)
        {
            g.drawImage(a[a(j)], k + 8, byte0, 0);
            g.drawString(_fldgoto[_mthif(j)], k, byte0, 0);
        }
    }

    public void paint(Graphics g)
    {
        String s1 = "";
        String s2 = "";
        String s = "";
        switch(_fldfor)
        {
        case 5: // '\\005'
        case 6: // '\\006'
        case 7: // '\\007'
        case 8: // '\\b'
        default:
            break;

        case 0: // '\\0'
            for(c = 1; c <= 10; c++)
                _fldchar[c] = 53;

            s1 = "Quit";
            s2 = "Deal";
            _fldint = false;
            break;

        case 1: // '\\001'
            s1 = "";
            s2 = "Deal";
            break;

        case 2: // '\\002'
            if(_fldnew > 0)
            {
                s = "Win ! Double ?";
                s1 = "No";
                if(_fldbyte)
                {
                    s = "Try again !";
                    s1 = "";
                    _fldbyte = false;
                }
                s2 = "Yes";
            } else
            {
                s = "Loose...";
                s1 = "";
                s2 = "Play again";
            }
            break;

        case 3: // '\\003'
            s = "";
            s1 = "";
            s2 = "";
            break;

        case 4: // '\\004'
            s = "Play again";
            s1 = "";
            s2 = "";
            break;

        case 9: // '\\t'
            s = "No more credits !";
            s1 = "Quit";
            s2 = "Quit";
            break;
        }
        Font font = g.getFont();
        g.setColor(255, 255, 255);
        g.fillRect(0, 0, getWidth(), getHeight());
        g.setColor(0, 0, 0);
        g.drawString(s1, 0, getHeight() - font.getHeight(), 0);
        g.drawString(s2, getWidth() - font.stringWidth(s2), getHeight() - font.getHeight(), 0);
        g.drawString("$: ".concat(String.valueOf(String.valueOf(d))), 0, 0, 0);
        s2 = "".concat(String.valueOf(String.valueOf(_fldnew)));
        g.drawString(s2, getWidth() - font.stringWidth(s2), 0, 0);
        g.drawString(s, (getWidth() - font.stringWidth(s)) / 2, 15, 0);
        for(int i = 1; i <= 5; i++)
        {
            _mthif(g, i, _fldchar[i], _fldlong[i]);
            if(_fldint && (_fldfor == 1 || _fldfor == 3))
                a(g, i, _fldchar[i + 5], false);
        }

    }

    void _mthfor()
    {
label0:
        switch(_fldfor)
        {
        case 2: // '\\002'
        default:
            break;

        case 0: // '\\0'
            for(c = 1; c <= 10; c++)
            {
                _fldchar[c] = Math.abs(_fldif.nextInt()) % 52 + 1;
                lpoker.d.a(String.valueOf(String.valueOf((new StringBuffer("i=")).append(c).append(", c10[i]=").append(_fldchar[c]))));
                for(int i = 1; i < c; i++)
                    if(_fldchar[c] == _fldchar[i])
                        i = c--;

            }

            for(c = 1; c <= 5; c++)
                _fldlong[c] = false;

            break;

        case 1: // '\\001'
            int j = 6;
            c = 1;
            do
            {
                if(c > 5)
                    break label0;
                if(!_fldlong[c])
                    _fldchar[c] = _fldchar[j++];
                _fldlong[c] = false;
                c++;
            } while(true);

        case 3: // '\\003'
            for(c = 1; c <= 5; c++)
            {
                _fldchar[c] = Math.abs(_fldif.nextInt()) % 52 + 1;
                lpoker.d.a(String.valueOf(String.valueOf((new StringBuffer("i=")).append(c).append(", c10[i]=").append(_fldchar[c]))));
                for(int k = 1; k < c; k++)
                    if(_fldchar[c] == _fldchar[k])
                        k = c--;

            }

            for(c = 1; c <= 5; c++)
            {
                _fldchar[c + 5] = _fldchar[c];
                if(c > 1)
                    _fldchar[c] = 53;
                _fldlong[c] = false;
            }

            _fldint = false;
            break;
        }
    }

    int a(int i)
    {
        if(i == 53)
            return 0;
        else
            return (i - 1) / 13 + 1;
    }

    int _mthif(int i)
    {
        if(i == 53)
            return 0;
        else
            return i - 13 * (a(i) - 1);
    }

    public void keyPressed(int i)
    {
        lpoker.d.a("keyCode ".concat(String.valueOf(String.valueOf(i))));
        switch(i)
        {
        default:
            break;

        case 49: // '1'
        case 50: // '2'
        case 51: // '3'
        case 52: // '4'
        case 53: // '5'
            c = i - 48;
            switch(_fldfor)
            {
            default:
                break;

            case 1: // '\\001'
            case 2: // '\\002'
                _fldlong[c] = !_fldlong[c];
                break;

            case 3: // '\\003'
                if(c <= 1)
                    break;
                for(int j = 2; j <= 5; j++)
                    _fldchar[j] = _fldchar[j + 5];

                _fldlong[c] = true;
                _mthdo(c);
                _fldfor = 2;
                break;
            }
            repaint();
            break;

        case 35: // '#'
            lpoker.d.a("ShowHelp()");
            _fldtry._mthdo();
            break;

        case 42: // '*'
            if(!e)
                break;
            _fldint = !_fldint;
            lpoker.d.a("triche=".concat(String.valueOf(String.valueOf(_fldint))));
            if(_fldfor == 9)
                d++;
            repaint();
            break;

        case 54: // '6'
            lpoker.d.a("ShowTxtHelp()");
            _fldtry.a();
            break;

        case 55: // '7'
        case 56: // '8'
        case 57: // '9'
            c = i - 48;
            if(_fldelse[_fldvoid] == c)
            {
                if(_fldvoid == 5)
                {
                    e = true;
                    lpoker.d.a("cheat enabled");
                } else
                {
                    _fldvoid++;
                }
            } else
            {
                _fldvoid = 1;
            }
            lpoker.d.a("".concat(String.valueOf(String.valueOf(_fldvoid))));
            break;

        case -6: 
            lpoker.d.a("action gauche");
            switch(_fldfor)
            {
            default:
                break;

            case 0: // '\\0'
                _fldtry.destroyApp(true);
                break;

            case 2: // '\\002'
                if(!_fldbyte)
                {
                    _fldfor = 0;
                    d += _fldnew;
                }
                break;

            case 9: // '\\t'
                _fldtry.destroyApp(true);
                break;
            }
            repaint();
            break;

        case -7: 
            lpoker.d.a("action droite");
            switch(_fldfor)
            {
            case 3: // '\\003'
            case 4: // '\\004'
            case 5: // '\\005'
            case 6: // '\\006'
            case 7: // '\\007'
            case 8: // '\\b'
            default:
                break;

            case 0: // '\\0'
                if(d > 0)
                {
                    d--;
                    _mthfor();
                    _mthif();
                    _fldfor = 1;
                } else
                {
                    _fldfor = 9;
                }
                break;

            case 1: // '\\001'
                _mthfor();
                _mthif();
                _fldfor = 2;
                break;

            case 2: // '\\002'
                if(_fldnew > 0)
                {
                    if(_fldnew <= 100)
                    {
                        _fldfor = 3;
                    } else
                    {
                        _fldfor = 0;
                        d += _fldnew;
                    }
                    _mthfor();
                } else
                {
                    _fldfor = 0;
                }
                break;

            case 9: // '\\t'
                _fldtry.destroyApp(true);
                break;
            }
            repaint();
            break;
        }
    }

    void _mthif()
    {
        int ai[] = new int[6];
        int ai1[] = new int[15];
        int l2 = 0;
        int i3 = 0;
        int j3 = 0;
        int j4 = 0;
        int k3 = 0;
        int i4 = 0;
        int l3 = 0;
        for(int i = 1; i <= 5; i++)
            ai[i] = 0;

        for(int j = 0; j < 14; j++)
            ai1[j] = 0;

        for(int k = 1; k <= 5; k++)
            ai[a(_fldchar[k])]++;

        for(int l = 1; l <= 5; l++)
            ai1[_mthif(_fldchar[l])]++;

        for(int i1 = 0; i1 < 14; i1++)
        {
            if(ai1[i1] == 4)
                j4 = i1;
            if(ai1[i1] == 3)
                j3 = i1;
            if(ai1[i1] != 2)
                continue;
            if(l2 == 0)
                l2 = i1;
            else
                i3 = i1;
        }

        _fldnew = -1;
        _fldnew = a(l3, l2, i3, j3, j4);
        if(_fldnew == -1)
        {
            for(int j1 = 1; j1 < 5; j1++)
                if(ai[j1] == 5)
                    k3 = 1;

            int j2 = 0;
            if(ai1[1] == 1)
                j2 = 1;
            for(int k1 = 2; k1 < 14; k1++)
            {
                if(ai1[k1] == 1)
                    j2++;
                if(ai1[k1] == 0)
                    j2 = 0;
                if(j2 == 5)
                    i4 = 1;
            }

            if(l3 > 0)
            {
                for(int l1 = 1; l1 < 10; l1++)
                    if(ai1[l1] + ai1[l1 + 1] + ai1[l1 + 2] + ai1[l1 + 3] + ai1[l1 + 4] == 4)
                        i4 = 1;

            }
            if(ai1[1] == 1 && ai1[2] == 1 && ai1[3] == 1 && ai1[4] == 1 && ai1[13] == 1)
                i4 = 1;
            if(ai1[1] == 1 && ai1[2] == 1 && ai1[3] == 1 && ai1[4] == 1 && ai1[13] == 1)
                i4 = 1;
            if(k3 == 1)
                _fldnew = 4;
            if(i4 == 1)
                _fldnew = 5;
            if(k3 == 1 && i4 == 1)
                _fldnew = 1;
            if(_fldnew == 1 && ai1[12] == 1 && ai1[13] == 1)
                _fldnew = 0;
        }
        if(_fldnew > 0)
            _fldnew = _flddo[_fldnew];
        for(int i2 = 1; i2 <= 5; i2++)
        {
            int k2 = _mthif(_fldchar[i2]);
            if(a(l2, i3, j3, j4, k3, i4, l3, k2) == 1)
                _fldlong[i2] = true;
            else
                _fldlong[i2] = false;
        }

    }

    int a(int i, int j, int k, int l, int i1)
    {
        byte byte0 = -1;
        if(i1 > 0)
            byte0 = 2;
        if(l > 0)
            byte0 = 6;
        if(j > 9)
            byte0 = 8;
        if(j > 0 && k > 0)
            byte0 = 7;
        if(j > 0 && l > 0)
            byte0 = 3;
        return byte0;
    }

    int a(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1)
    {
        boolean flag = l1 == i;
        boolean flag1 = l1 == j;
        boolean flag2 = l1 == l || l1 == k || i1 == 1 || j1 == 1 || k == 1 && i == 1 || flag && k1 == 1 || flag && i > 9 && j < 1;
        return !flag2 && (!flag || j <= 0) && !flag1 && (!flag && !flag1 || i < 1 || j < 1) ? 0 : 1;
    }

    void _mthdo(int i)
    {
        int j = _mthif(_fldchar[i]) - _mthif(_fldchar[1]);
        if(_fldchar[i] == 53)
            j = 15;
        if(j == 0)
            _fldbyte = true;
        else
        if(j > 0)
            _fldnew = _fldnew * 2;
        else
            _fldnew = -1;
    }

    static Random _fldif = new Random();
    boolean _fldlong[];
    int _fldchar[];
    int _flddo[];
    int _fldnew;
    int _fldelse[];
    int _fldvoid;
    boolean _fldbyte;
    boolean _fldint;
    boolean e;
    Image a[];
    Image b[];
    String _fldgoto[];
    LPoker _fldtry;
    int _fldfor;
    int c;
    int d;
    static final int _fldcase = 32;
    static final String _fldnull = "LPokerPrefs";

}
0

I chyba nie myślisz, że ktoś to będzie analizował?

0

wlasnie mam taka mala prosbe...
wkleilem caly kod, ale jest jeden moment:

lpoker.d.a("ShowTxtHelp()");
      _fldtry.a();
      break;

    case 55: // '7'

    case 56: // '8'

    case 57: // '9'

      c = i - 48;
      if(_fldelse[_fldvoid] == c)
      {
        if(_fldvoid == 5)
        {
          e = true;
          lpoker.d.a("cheat enabled");
        } else
        {
          _fldvoid++;
        }
      } else
      {
        _fldvoid = 1;
      }
      lpoker.d.a("".concat(String.valueOf(String.valueOf(_fldvoid))));
      break;

ktory naprowadza.

1 użytkowników online, w tym zalogowanych: 0, gości: 1