本帖最后由 littlewisp 于 2018-5-31 09:29 编辑
滚动的天空破解笔记
模拟器采用的是夜神模拟器
Apk名称滚动的天空_1.1.0.140_内购版
Android killer打开apk一种思路是从java层搞,参考,通过把支付失败的代码替换成支付成功的代码。https://www.52pojie.cn/thread-632178-1-1.html
本文换个思路Android Killer反编译后发现是基于unity3d的。
1. 解压apk,找到Assembly-CSharp.dll,位于路径滚动的天空_1.1.0.140_内购版\assets\bin\Data\Managed
2. Dnspy打开Assembly-CSharp.dll, 搜索字符串 balls,找到球的初始个数位15
getInitNum函数
Dnspy编辑代码,将初始值修改为1500
Dnspy保存模块,
3. 将android killer反编译目录下Assembly-CSharp.dll替换AndroidKiller_v1.3.1\projects\滚动的天空_1.1.0.140_内购版\Project\assets\bin\Data\Managed 编译apk文件
4.购买无限球函数private void PayInfiniteSuccess()购买护盾成功函数public void Pay100shieldsSuccess()将无限球函数和加护盾的函数部分代码直接编译到getInitBallNum()中
public static int getInitBallNum()
{
PlayerProfiler.OnPremiumModePurchase();
GameHud.AddBalls(GameManager.StartingLives);
Singleton<EventSystem>.GetSingleton().DispatchEvent(new EventObject(13, null));
PropsShield.AddShield(65536);
return CloudUtils.getIntValue(CloudUtils.KEY_INIT_BALL_NUM, 1500);
}
|