用2048游戏练习smali修改与重打包

本文详细介绍了如何使用jadx和apktool等工具反编译、修改并重打包一款简单2048手游的流程,目标是使游戏直接生成2048方块,涉及代码查找、Smali语句修改及重签名过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看完了《游戏安全-手游安全技术入门》,里面的样例破解了一个2048,遂上网挑了个简单的2048的APP,开始尝试。

 

挑选的APP是无壳、无反调试,且代码量非常少的一款2048。破解的目标定为直接生成一个2048。

首先为了能方便的查看源代码,使用jadx这款工具进行反编译。

 

 

搜索score关键字,发现生成逻辑在com.cloudy.game.logic.world。

 

 

查看生成方块的代码,发现生成逻辑是,随机生成2或者4的方块,2的概率大,2的方块对应的资源文件是0.png 4的方块对应的资源文件是1.png ,2048对应的资源文件是10.png

为了达到预期效果,return值一律设置为10。

 

同时为了将2048重打包,需要在apktool反编译出的smali文件上的对应语句处修改,执行反编译命令apktool.bat d -f 2048.apk -o 2048 

 

此处Smali语句改为const/16 v1,0xA

 

 

然后执行重打包命令apktool.bat b 2048

 

执行重签名命令java -jar signapk.jar testkey.x509.pem testkey.pk8 2048.apk 2048_signed.apk

 

测试效果如下↓

 

参考链接及感谢:

Smali修改和重打包

https://blog.youkuaiyun.com/sxk874890728/article/details/80486223

 

Apktool使用

https://blog.youkuaiyun.com/qq_27292113/article/details/79931268

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值