植物大战僵尸2付费分析

继续整理以前的文章,对新手可能有点思路的启发吧,直接放博客了...

----------------------------分割线---------------------------------

这两天看到网上有人发了关于移动手机卡内购的的教程,直接把解包后的文件ChinaMobilePurchase$PurchaseCallBack.smali里面的onUserOperCancel内容改成onBillingSuccess的内容,用移动支付点击取消就相当于支付了。刚好现在手头的测试卡是联通的,好吧,重新开始分析联通的支付过程。

第一步:游戏试玩


我们首先安装软件到手机上,在百度搜索下载apk进行安装即可。
将游戏打到第二关,我们打开Eclipse的DDMS查看Log内容。


然后在第二关中点击加速按钮,然后点重新开始,再次点击加速按钮,会弹出提示






这个时候我们看DDMS中的Log日志,然后发现相关的内容,找到关键字tag的xyf,然后我们添加一个Filter,tat设置为xyf即可




这个时候,我们先点开手机的飞行模式,看一看支付失败的效果是什么样子。Log如下





第二步:开始思考
经过了第一步的分析,我们有了大致的操作方向。
①.根据提示的内容寻找相关代码.
②.短信购买,我们直接修改短信.
③.如果能搞明白②,那么我们可以去掉短信发送过程.

第三步:开始分析
搜索‘s31:’看其出现地方的上下文,在
zhiwudazhanjiangshi2gaoqing_1\smali\com\multimode_billing_sms\ui\IIlIlIIIlIIlIIll.smali
发现有s31所在的地方:






Utf-8转码后为:
S31:用户确认选择,准备发送短信
然后在这个类里面,向上翻看





Utf-8转码后为:
S31:用户确认选择,准备发送短信
然后在这个类里面,向上翻看





S31所处在这个if语句下,也就是点击事件的判断,即确定或者取消。即我们找到了点击确定后所进行的事件。知道这个以后,我们开始寻找发送短信的入口在哪里,首先看s31的下文,因为s31的内容就是准备发送短信 ,于是我们找到下面这个类.
Lcom/multimode_billing_sms/ui/MultiModePay;





由于我们现在寻找的就是发送短信的入口,所以,我们现在这个类搜索sendtextmessage关键字,看是否能找到,能找到的话,我们的工作就很简单了。







找到这个后,豁然开朗,准备测试,我们将手机号修改发到另外一个卡上,看是否能收到短信,如果能收到,说明我们修改成功,这段代码就是付费代码。
回编译,签名,安装,测试......
效果图如下:




手机上显示购买成功,OK,到这里我们明白了联通卡的支付流程。然后我们事先第二步思考的内容.
思考②.我们可以想到,最简单的方式就是修改这里的手机号,修改短信内容,短信发送号码。
也就是sendTextMessage中的内容,修改v1(短信号码),v2(短信内容)也就是发送个查询短信到10010即可。
---------------------------------分割线--------------------------
invoke-virtual/range {v0 .. v5}, Landroid/telephony/SmsManager;->sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V
---------------------------------分割线--------------------------
    在此代码上方编写
const-string v1, "10010"
const-string v3, "10010"
即可。
思考③.删除这段发送短信的代码,也就是上文提到的sendTextMessage的方法,我们查看下效果看是否可行。
删除,回编译,签名,测试,看Log






到了这里,通过Log反馈的内容,我们也可以知道已经购买成功,然后我们看游戏里面是否正常,如下图:




第四步:测试完成
好了,到了这里我们已经测试完毕,联通卡的支付已经搞定,可以开开心心地玩游戏了~
这个时候,我们继续思考,如果以后碰到的游戏还是短信付费,我们就可以直接搜索关键字sendTextMessage,然后查看上下文修改进行测试,最后删除测试即可。

原软件下载地址:
链接:http://pan.baidu.com/share/link?shareid=711418096&uk=3659465571 密码:1shi




### 寻找Python植物大战僵尸游戏素材库 对于想要开发基于Python的《植物大战僵尸游戏,获取合适的素材库至关重要。这些素材不仅限于图像资源,还包括声音效果和其他多媒体文件。 #### 图像资源 为了使游戏视觉上吸引人,高质量的图像资源必不可少。通常这类资源可以从开源项目中获得,也可以自行设计。如果选择使用现成的素材包,则建议访问专门提供免费或付费游戏资产的网站,如Kenney.nl、OpenGameArt.org等[^1]。 #### 声音效果 适当的声音可以极大地提升用户体验。开发者可以在Freesound.org这样的平台上找到各种适合游戏使用的音频片段,包括背景音乐和特殊事件触发时播放的效果声[^2]。 #### Pygame特定资源 由于提到利用Pygame库来进行开发,在GitHub上有多个公开仓库包含了完整的《植物大战僵尸》风格的小型游戏实例及其关联的数据文件夹。通过研究这些项目的结构,能够更好地理解所需的各种素材应该如何组织并集成到自己的作品当中[^3]。 ```python import pygame from pathlib import Path # 加载图片函数示例 def load_image(image_name, colorkey=None): fullname = Path('data') / image_name try: image = pygame.image.load(fullname) except pygame.error as message: print(f'Cannot load image:{image_name}') raise SystemExit(message) if colorkey is not None: if colorkey == -1: colorkey = image.get_at((0, 0)) image.set_colorkey(colorkey, RLEACCEL) return image.convert_alpha() ``` 此代码展示了如何定义一个加载图片的方法,并处理可能遇到的问题。实际应用中还需要考虑更多细节,比如路径管理、缓存机制等以提高效率[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值