用HALO2.12XX联网付费,图片字修改,键值修改,bt属性修改(申精)
首先声明:由于图片数量巨大,在论坛上传比较慢,就传在百度了,如果在这个帖子处查看,图片无法显示的话,就只好麻烦大家点击此处跳转看我的原帖了:3.严禁发布外网链接
HALO_V1.0的主要功能如下!
1,汉化工具的升级.
2,支持汉化查找,替换
3,汉化界面美化调整.
4,自动XX短信
5,自动进行移植 (类似javamagic),不过更稳定,更方便.
6,增加图片签名.
7,支持图片提取(jpg,png),midi提取.支持打包还原.
8,汉化工程化,支持协作汉化
---------------------------------------------------------------------------------------------------------------------------------------
Halo_V2.0则是经过了一年来的汉化上带来上的新问题而进行发布的,主要解决的问题是:
1,如何去XX非短信游戏,例如wap,gprs联网收费游戏。
2,如何去修改游戏中的数值,制作bt版本。(不包含对存档文件的修改)
3,如何对游戏中的图片字进行修改,以便能正常显示中文,方便汉化。简单的可以修改图片字的开关,而复杂的就要添加点阵代码段等等。
4,如何自己去修改键值(理论上是最精简的方式,基本不占用资源,但是要求的技巧更高些)。
5,如何更精简的去XX短信游戏(目前某些厂商针对halo的短信作了些调整)。
6,实际上功能自己去发掘,只要处理得当,理论上可以做到你想要的一切。
HALO_V2.0开放出的功能介绍:
1,开放了图片签名功能
2,开放了强悍的点阵功能
3,开放了所有XX功能
4,开放所有插件功能
5,开放混淆功能
6,开放加密功能
7,开放优化功能
8,其他功能
---------------------------------------------------------------------------------------------------------------------------------------
修正的bug如下:
1,修正了替换图片的bug。
2,修正了混淆的bug.
3, 修正了对class进行汉化的bug.
4, 修正了添加logo和优化的bug.
---------------------------------------------------------------------------------------------------------------------------------------
软件安装:
安装及运行软件
1、解压缩sjboy_halo_V2.0_20071228.rar到本地,
2、确认自己安装了JDK1.5的运行环境。
3、双击ZZJar.exe即可运行
-----------------------------------------------------------------------------------------------------------------------------------------
开发日志
Halo V2.0 开发日志
20080104
发布V2.02版本,添加的功能或者修正的bug如下:
1,纠正预校验的bug。
20080103
发布V2.01版本,添加的功能或者修正的bug如下:
1,纠正了重新打开工程类编辑器未初始化的bug。
2,纠正了异常表为Throwable的时候无法正常识别的bug.
3, 纠正了对wide指令的处理。
4,纠正了对跳转表指令的处理。
5, 纠正了7zip压缩的bug。想jar更小的朋友可以多尝试它。
Halo2.0系列教程[目前更新wap修改,图片字修改,键值修改,bt属性修改]Halo2.0系列教程[目前更新wap修改,图片字修改,键值修改,bt属性修改]
一,XXwap收费或者gprs收费教程。教程选用游戏《鬼面劫》。类型:wap收费。难度:中等。6r5O
步骤:
用halo打开鬼面劫的jar。废话。。。。附随便找个正版游戏网站下载JAR吧!
接下来在class editor窗口!一定要在这个窗口搜索。不然搜索会根据当前界面来搜索。通过工具->全文搜索。首先我们先搜索 "HttpConnection", 不包含双引号. 记得选择搜索模式是"total class", 为什么要搜索这个关键字呢,因为目前的wap或者grps收费都是通过http连接来进行收费的,通俗的来讲,也就是手机通过登陆移动梦网访问页面进行业务的订购。如图所示:http://hiphotos.baidu.com/feijiangbin/pic/item/852bb2a11770eba9471064cb.jpeg
由于对所有的class文件进行搜索的数据量较大,可能需要消耗几秒中:),在几秒的YY后,搜索结果如下图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/dfffbb1caf6038a987d6b6cb.jpeg
http://bbs.***/images/attachicons/attachimg.gif我们发现在h.class和o.class里面都含有HttpConncetion这个字段,那也就是说在这两个类里面都出现了要进行http的联网。这个游戏有些特殊,实际上h这个文件是一个所谓游戏用来下载关卡的,实际上实际上是用来给他们的论坛发送消息用的,不是真的下载关卡,具体怎么知道,这里我就不细说了。所以o.class这个文件才是真正要想网络收费的实现。搜索一共有四个结果。那么现在我们来缩小搜索的范围,这次我们搜索选择“current class”,记得这时候已经在搜索结果中双击o.class来打开o这个文件。我们这时候输入搜索条件"Connector/open", 这时候是不是只有了一个结果,如下图所示:
搜索结果如下:
也就是在o文件中的for方法中进行网络的连接,那是不是代表就是要修改这里了呢,先别着急。根据经验,我们要找到是谁调用了o文件的这个for方法。接下来我们搜索“invokestatic o/for”,发现一共有三个结果,我们继续往下搜索,第一个方法调用的地方,也就是"invokestatic o/try",这次采用total class搜索。一个有两个结果 ,我们搜索第二个“invokestatic o/do”,如下图所示:
出现了一个结果,双击打开n文件,发现出现的地方是run方法,这里说明一个小技巧,wap收费的方法一般都是run。根据经验判断,wap收费的一系列动作应该都在这个方法里了,也就是n文件的run方法中了。之前的一系列搜索,需要用户自己根据经验一步步来摸索
我们用DJ Java Compiler来反编译n文件,发现这个文件很简单,基本上就一个run方法。而且我们也发现了一些很有趣的东西。我们是不是看到了smsmoney, 还有什么+ 200 , + 100,联系之前游戏所看,是不是有影响,也就是花2元可以得到200增值币,如果一下子花6元,除了得到600增值币以外,还会得到100的增值币。有些编程经验的朋友可以看到,这个run方法实际上是个循环,初步猜想每次扣费2元,通过选择的方式是否一次扣费,还是多次扣费。而我们刚才知道,o这个文件是用来联网收费的,那么我们的修改方案就是把o文件所有相关的地方去掉,直接让其默认收费成功。所以以下的代码段我们应该都要删除:
http://hiphotos.baidu.com/feijiangbin/pic/item/120801f7c2330100720eeccb.jpeg
http://hiphotos.baidu.com/feijiangbin/pic/item/de386b2723b16e21918f9dcb.jpeg
我们知道要删除哪些代码呢,那么我们在halo里面怎么做到呢。这时候我们在DJ里面中的setting选项,设置Decompile Setting,把Generate JVM instructions as comments打勾。如图:http://hiphotos.baidu.com/feijiangbin/pic/item/83016859434c4d082834f0cb.jpeg
这时候我们发现: http://hiphotos.baidu.com/feijiangbin/pic/item/ea226363aaa5f2420c33faab.jpg
这段是从12行开始的,在DJ里面行数是0开始的,而在Halo里面是从1开始的,那么这行对应在halo应该是从13开始的,如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/e22b32f348e67072352acccb.jpeg
恩,都是aload_0这个指令。那么就没错了。接下来我们找结束的地方。
http://hiphotos.baidu.com/feijiangbin/pic/item/c3f6a9442f55c0a0b2b7dccb.jpeg
107!!!那么对应halo就是108,我们去验证看看。呵呵,halo的108和109行跟DJ的107和108的代码都是一样的,都是一样的:
http://hiphotos.baidu.com/feijiangbin/pic/item/1f1da4afa2bc3aee7cd92acb.jpeg
那么最后,我们知道了,我们只需要删除从halo的13行到109行的代码段就可以了。打开代码标编辑。选择,然后删除。
http://hiphotos.baidu.com/feijiangbin/pic/item/79dee8fe374425135c6008cb.jpeg
ok,就是这样,最后别忘记点击上方的保存方法。
http://hiphotos.baidu.com/feijiangbin/pic/item/67d18a8b607f31f1fd1f10cb.jpeg
然后通过halo的编译打包出jar,那么就是XX的了。我们怎么去验证时XX的呢。第一步,我们还是用DJ打开已经处理过的n文件,打开来看看run方法,是不是少了很多东西。就剩下直接+200和+100了。 第二步,我们放到手机上去试验一下。呵呵,的确是XX成功的。
http://hiphotos.baidu.com/feijiangbin/pic/item/3322c13da4aea2e59f3d62cb.jpeg
http://bbs.***/images/attachicons/attachimg.gif
http://hiphotos.baidu.com/feijiangbin/pic/item/ca040f0806598612e92488cb.jpeghttp://hiphotos.baidu.com/feijiangbin/pic/item/3a2d15953c1a9b2a7bf480cb.jpeghttp://hiphotos.baidu.com/feijiangbin/pic/item/a328998fe48d91d8513d92cb.jpeg
这次教程将告诉怎么消除图片字,选用的是DC的《Christmas_Toy_Land》。难度:容易。为什么要选用DC的游戏,因为DC的来修改图片字是最简单的,其在绘制文字的时候还保留着系统字绘制的方式,而采用图片字还是系统字进行显示是通过开关来控制的。也就是找到这个开关,就相当于可以让游戏绘制系统字。而目前我了解得DC的游戏基本上的开关都是在某个类里面,而这个类一般来说都是一开始的构造方法中(只有一两个特殊,在方法中)。而这个开关的代码描述就是如下:
if(image != null)
http://bbs.***/images/attachicons/attachimg.gifhttp://hiphotos.baidu.com/feijiangbin/pic/item/084b3ca8ecb91493cb130cd0.jpeg
对,就是以上这段简单的代码。翻译成大家了解的语言就是,如果图片字所有的图片存在的话,那么就用图片字进行文字绘制,反过来说,如果这个图片字初始化不存在的话,那么就会用系统字体来进行绘制。所以我们修改的思想就是让在进行图片字所需要的图片初始化存在判断之前让其这个条件不成立。也就是如下的代码段:
image = null; // 这是在其之前添加的。
comif(image != null)
那么(image != null) 这个条件肯定不成立。在这里说明给不会编程的朋友以下 "!=" 的意思就是不等于。
那么记下来我们就要去找在jar里面那个类有这个特征,DC的游戏很有规律,几乎所有的游戏都这个规律。了解一个,以后的修改就很简单了。而且对应的文本插件HaloV1.0就开放出来了。也就是黑帮3的插件。
那么我们采用笨方法,用DJ一个个的反编译所有的类,幸运的是类不多,一会就能反编译完了。我们上面说了规律都出现在构造方法中,不会编程的朋友可能会问,什么是构造方法,这里就说一个规律把。大家记得就好了。不过还是希望有心搞修改的朋友学点专业知识。
如何识别构造方法:
假设反编译的文件名字是a.class,那么构造方法就是以一般都是以如下的方式开始的:
public a(或者
private a(
或者
protected a(
这里的a就是文件的名字。
一般我们在DJ里面搜索public a(,这个用的较多。
在经过几分钟的依次反编译后,我们发现了Christmas_Toy_Land的这个jar的b.class含有这个规律。
实际上在这个图上我们也看到有一个单词是font,这个中文就是字体的意思,也就是系统字绘制的意思。如果我们看完这个函数,我们会发现如果image != null这个条件不成立的话,那么就会使用到font.
好了,我们现在知道这个开关在那里了,我们怎么去修改了。也就是如何在之前添加代码段,也就是:
comimage = null;
下面我们就打开halo,打开这个jar。在b.class这个文件中,右键->edit class. 如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/dfffbb1caf6738a987d6b6d0.jpeg
打开以后会转到"class editor"窗口。在这个窗口会分析这个类结构,并且显示出来。我们在左边的属性结构图中找到b。class这个文件的构造方法。其在方法这个节点上,而构造方法的名字是"<init>", init是初始化的缩写。也就是初始构造的意思 。如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/bd0fb0999b67d52a6e068cd0.jpeg
双击"<init>"这个节点来打开它。然后会弹出“code”,点击其,会出现左边相关的代码段。如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/05162e971188a44f55fb96d0.jpeg
下面我们来确定if(image != null) 在halo中所在的位置,用DJ打开b.class文件,记得设置里面打开genernate jvm instructions.
如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/01d0bafb0f70f4004f4aead0.jpeg
对应的halo所在代码如下所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/0524d1f9b34cf97b252df2d0.jpeg
现在我们已经找到了其位置,那么我们开始添加修改代码段,也就是
image = null;
其对应的halo中的代码如下:
aconst_null
astore_1
这个代码段比较机械,大家可以记住。如果要了解原理的话,可以看虚拟机指令。需要注意的是astore_1中的这个“1”是根据之前的if(image != null)而定的。我们看第三行是aload_1,这里是1,那么astore_1,也就是要是1。依次,如果是aload_2,那么就应该是astore_2.依次类推.
选中第三行,点击“新建”按钮,初学者建议使用新建按钮,而不用采用“新建(高级)”。点击“新建”按钮后出现如下窗口:
http://hiphotos.baidu.com/feijiangbin/pic/item/62f8dd39c666a3d13a87ced0.jpeg
选择aconst_null,这个意思是说添加常量,因为我们现在要添加第一个代码段.也就是aconst_null.确定后我们会发现在halo里面第三行变为了aconst_null. 那么我们成功了第一步了.接下来我们添加astore_1这个代码段.还是点击"新建"按钮,还是弹出刚才的窗口,这次我们选择,如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/5ddc9852cb44eb2c0cf3e3d0.jpeg
这个指令在LocalVariableInstructions的节点下.选择后出现如下窗口:
http://hiphotos.baidu.com/feijiangbin/pic/item/55c23101b359212c7bec2cd0.jpeg
在上面我们说了索引为1 ,那么在右边的输入框输入1,确定.这时候再halo的第四行就会出现astore_1
ok,我们就完成了所有的添加,不要忘记保存方法.编译打包.然后我们去汉化,怎么样,是不是之前出现乱码的地方都能正常显示中文了.
也可以用DJ打开修改后的b.class进行验证.如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/a9d1a75155b82dad8c5430d0.jpeg
http://bbs.***/images/attachicons/attachimg.gif
http://bbs.***/images/attachicons/attachimg.gif
http://bbs.***/images/attachicons/attachimg.gif手机游戏XX攻略之【BT属性修改】
选用游戏:《英雄传说》。难度:容易
这个教程将告诉大家如何修改游戏中的属性,当然只限制于属性都写在class里面的。至于写在资源里面的,那就要具体分析了。我们选用《英雄传说》这个游戏来作为例子,主要是因为最近很火。那我们开始我们的旅程吧。
还记得游戏一开始各个任务的属性吗?如图:
http://hiphotos.baidu.com/feijiangbin/pic/item/a93449345d69a96c251f14d5.jpeg
看到了吗,一开始的钱是300,然后各个属性下来时什么8,5,3,4
那么我们开始在搜索300这个关键字吧。(有人问为什么不搜索8,5,3,4。。。我不想回答了),如图
http://hiphotos.baidu.com/feijiangbin/pic/item/afd9ba11e970295cca80c4d5.jpeg
非常幸运,就得到一个唯一的结果。如图:
http://hiphotos.baidu.com/feijiangbin/pic/item/72bc51ee740eccd9b2fb95d5.jpeg
赶紧双击带来它。high啊high。在代码表编辑里面找到了那个性感红色的300,极度高潮中,请勿打扰。。。。如图:
http://hiphotos.baidu.com/feijiangbin/pic/item/9fc47e09c155358d2eddd4d5.jpeg
那么我们接下来就要去修改它了。选择300那行,然后编辑它。如图:
http://hiphotos.baidu.com/feijiangbin/pic/item/ed139350d5a14c40853524d5.jpeg
在弹出的框框里面选择为int(整形),输入我们想要暗爽的数字。。。如图:
http://hiphotos.baidu.com/feijiangbin/pic/item/a7f5bc8f24370dccf01f36d5.jpeg
改完了!,就改完了。。。这么简单,不是吧。。。。那8,5,3,4这些值呢,别着急我们,在代码上上下找找看,果不然,发现了性感的小内衣居然在这里,如图:
http://hiphotos.baidu.com/feijiangbin/pic/item/0768f3f2cb720a31b07ec5d5.jpeg
既然发现了,我们还不SM它。那开工吧,在连续四次SM后,小内衣被撑暴了。如图:
http://hiphotos.baidu.com/feijiangbin/pic/item/98946481406980fabc3e1ed5.jpeg
保存方法,测试。完美!
手机游戏XX攻略之【进行移植时候进行改键值】
选用游戏:
《7th_Space_SE_K700_176x220.jar》。难度:容易。
在这个教程里,我们将看看如何进行键值的修改,这种修改是最省内存,而且也很简单,基本不会出错。我们做一个SE176X220的机型移植到moto E398的一个过程。
用halo打开7th_Space_SE_K700_176x220.jar。。。又是废话。
因为halo2.0没有提供对方法名字的搜索,所以我们需要挨个打开每个class,以便找到方法名字为keyPressed, keyReleased, keyRepeated这三个关键方法的名字 ,从英文的字面上来看,我们可以知道这三个方法实际上是代表的意思是:有按键按下,有按键松开,有按键重复。是的,这就是我们这个教程要做文章的地方,也是按键修改的思想所在:
我们可以这样去理解一件事情,当se的游戏要跑在moto的机型上,我们去按键的时候,这时候的键值是moto的,而游戏里面处理的却是se的键值,所以我们需要在这个过程中去拦截键值,也就是如下的流程:
我们在moto手机上按键把moto的键值改成SE的键值 --> 这里就是我们需要拦截和处理的地方。
游戏处理SE的按键
--------------------------------------------------------------------------------------------------------------------------
在挨个打开class后,我们发现在GEngine.class里面有keyPressed, keyReleased,,如图所示: http://hiphotos.baidu.com/feijiangbin/pic/item/8522bbde20e7487accbf1ad7.jpeg
通过代码表编辑来编辑keyPressed方法,选中第一行,然后点击 “新建(高级 )”。如图:
http://hiphotos.baidu.com/feijiangbin/pic/item/44135b4383972b339313c6d7.jpeg
记住了,在halo里面插入代码段,都是在当前选中行的上一行插入的。在弹出的窗口中,我们复制粘贴以下代码:
iload_1
lookupswitch -22: 6, -21: 3, -20: 21, -6: 12, -5: 18, -2: 15, -1: 9, default: 23
bipush 250
istore_1
goto 23
bipush 249
istore_1
goto 23
iconst_m1
istore_1
goto 23
bipush 254
istore_1
goto 23
bipush 253
istore_1
goto 23
bipush 252
istore_1
goto 23
bipush 251
istore_1
复制粘贴后如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/f91f518236d249800cf4d2d7.jpeg
按确定完成,是不是看到在halo里面已经插入了以上的代码呢,ok,那么我们保存方法。
现在我们去验证以下,我们是否插入代码成功,用DJ 来反编译该类,发现在keyPressed这个方法中加入了如图的代码:
http://hiphotos.baidu.com/feijiangbin/pic/item/28f28510918ca023213f2ed7.jpeg
看起来是不是很熟悉,-21,-22等等,这不就是键值吗?上面的代码很容易看明白,就是当键值等于-21的时候我们就让它等于-6,这就是拦截思想的实现了。
有些朋友会问,为什么在halo里面怎么没有看到-6,-7等等的键值呢,实际上不要着急,因为-6实际上是等于250的。
我们在 comlookupswitch -22: 6, -21: 3, -20: 21, -6: 12, -5: 18, -2: 15, default: 23 这行上,点击编辑,如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/22edafef6c7e0434fdfa3cd7.jpeg
左边的值是不是很熟悉,如果我们要移植到别的机型,我们可以修改这些值,当然我们也可以高级编辑它。
接下来我们在bipush 250这行点击编辑,如图所示:
http://hiphotos.baidu.com/feijiangbin/pic/item/cd0eb431ec05ad8a5edf0ed7.jpeg
是不是-6出来了。我们可以修改成任意的值。例如我们修改为-7,那么就左右软键颠倒了。
而接下来的keyRelease,也是同样复制代码就可以了。是不是很简单!
HALOV2.12下载地址:
http://bbs.****【屏蔽过滤词语】****.com/viewthread.php?tid=3456187&page=1&extra=page%3D1#pid47956749 上面的链接不行的话 我上传了附件 这是halo 感谢楼主分享,只可惜图都挂了!
页:
[1]