破文一篇
这个确实是一篇破文.破的不能再破的文章.高手莫笑....这次开刀的是中国象棋-典藏版,废话少说,先把其反汇编了.
等马上用Halo打开后定位到缴费文件再打开反汇编文件读程
序.至于定位估计就不用我说了.很简单的.这里是c.class文
件.打开c.java文件,读程序.发现其收费代码如下:
public final void run()
{
a = 1;
d;
JVM INSTR tableswitch 1 4: default 317
// 1 62
// 2 40
// 3 221
// 4 40;
goto _L1 _L2 _L3 _L4 _L3
_L3:
try
{
Gamelet.a.platformRequest(b);
a = 2;
return;
}
catch (Exception )
{
a = 3;
}
return;
_L2:
MessageConnection messageconnection = null;
TextMessage textmessage;
(textmessage = (TextMessage)(messageconnection = (MessageConnection)Connector.open(b)).newMessage("text")).setAddress(b);
textmessage.setPayloadText(c);
if (e <= 1)
{
messageconnection.send(textmessage);
} else
{
for (int i = 0; i < e; i++)
{
g.a("repeat", i);
messageconnection.send(textmessage);
a.a(i, e);
}
}
a = 2;
if (messageconnection != null)
try
{
messageconnection.close();
}
catch (Exception ) { }
return;
JVM INSTR pop ;
a = 3;
if (messageconnection != null)
try
{
messageconnection.close();
}
catch (Exception ) { }
return;
Exception exception;
exception;
if (messageconnection != null)
try
{
messageconnection.close();
}
catch (Exception ) { }
throw exception;
_L4:
messageconnection = null;
try
{
messageconnection = (MessageConnection)Connector.open(b);
do
{
Message message = messageconnection.receive();
a = 2;
if (message instanceof BinaryMessage)
((BinaryMessage)message).getPayloadData();
else
((TextMessage)message).getPayloadText();
} while (true);
}
catch (Exception )
{
a = 3;
}
if (messageconnection != null)
try
{
messageconnection.close();
}
catch (Exception ) { }
return;
Exception exception1;
exception1;
if (messageconnection != null)
try
{
messageconnection.close();
}
catch (Exception ) { }
throw exception1;
_L1:
}
在run方法里,可是发现此方法无返回值,那么我们可以确定,
肯定在run方法里对某个变量进行赋值了.然后根据此变量值
确定是否缴费.这里有个诀窍,你一直跟踪程序.按正常情况下
走,变量最后的值即是正常缴费的返回值.这里我们发现只有一
个变量a.跟踪变量a,可以得知当a==2时,即标志着成功缴费.
我们只须让此方法留一条a=2;语句即可.分析完后,返回Halo
界面.选中c.class文件.右键edit class.找到run方法.选
中代码编辑表.如下图.
[attach]556486[/attach]
删除除1.2字节码以外的所有字节码.如图
[attach]556487[/attach]
然后双击iconst_1将1改为2,确定即可,
[attach]556485[/attach]
最后别忘记了保存方法.编译,打包即可.
[[i] 本帖最后由 正在刷新 于 2008-5-28 13:44 编辑 [/i]] :006 高手~ 呵呵.对汉化不太感兴趣啊.我用国外软件的时候就比较喜欢E文的.:大笑 不错,谢谢楼主! a = 2 就成功是吗:哭泣 高人:098
页:
[1]
