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";
}