Android 游戏破解修改金币

这里是通过AndroidManifest.xml中的allowbackup属性去盗取手机中存储的信息,只要有信息存储在本地都可盗取出来(前提是你能拿到手机)

为什么研究这个技术:1,应用市场上修改游戏金币的软件很多,但是大概都需要root权限,所以就想能不能在不root的情况下修改金币和血量,2预防被盗信息

原因:当 AndroidManifest.xml中的allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险

首先先介绍介绍一下allowBackup这个允许adb backup通过usp连接手机,去备份到电脑上,在电脑上生成.ab的文件,但是我们还需要借助一个工具来解析这个ab文
件这样我们就能拿到任何一个在 AndroidManifest.xml中设置allowbackup属性为true的app数据,再修改该数据后还原回去,这样就实现了,修改金币的目的

废话不多说先上项目

首先这里我选得是一个<魔塔大冒险>的这样一个Android游戏(为啥选这个那,当初被虐的被)
我们可以反编译去得到apk的信息

<application android:icon="@drawable/icon" android:label="@string/app_name" android:name="com.pt.MoTa.MyApplication">
  <meta-data android:name="agentid" android:value="2168-2173-79"/>
  <meta-data android:name="leancloud" android:value="xiaomi"/>
             <activity android:configChanges="keyboardHidden|orientation|screenSize"
                    android:label="@string/app_name"
                    android:launchMode="singleTop"
                    android:name="com.pt.MoTa.newMoTa"
                    android:screenOrientation="portrait"
                    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
                 <intent-filter>
                     <action android:name="android.intent.action.MAIN"/>
                     <category android:name="android.intent.category.LAUNCHER"/>
                 </intent-filter>
             </activity>
  <service android:name="com.pt.gamesdk.common.MQTTService"/>
  </application>

我们可以看到这个并没有 allowbackup属性,所以这里我们需要自己添加上以后再重新打包签名,可能签名和之前不同,但是没关系我们这里只教改金币

我们用数据线链接上手机以后,通过

第一步:使用adb backup -f applock.ab com.pt.MoTa.mi 进行数据的备份(别问我这个包名怎么来的,自己反编译找去)
adb backup [-system|-nosystem] -all [-apk|-noapk] [-shared|-noshared] -f <档案名称> [需要备份的应用包名]
详解

[-system|-nosystem]
这个指令是告诉adb 在备份时是否要连同系统一起备份
如果将系统一起备份的话,当还原的时候会将系统一起还原,目前对非root用户不会有太大影响,不过建议还是加上

2> -all
这个指令除非只是要备份单一APP 不然是一定要打上去的
这个是问你是否要备份全部的APP 若有加上-nosystem的指令
那么他就只会备份你目前已经安装上去的APP 而不会连系统APP一起备份


3> [-apk|-noapk]
默认是-noapk 这个的意思是是否连安装的APK一起备份
若为-noapk 则只会备份APK的资料档(像是游戏存盘 设定 之类的)


4> [-shared|-noshared]
默认是-noshared 这个会问你是否连手机储存空间或是SD卡的档案一起备份
 
5>包名
既然都会反编译了,获取个包名应该对你来说不是啥问题吧

通过cmd控制台调用adb backup -f applock.ab com.pt.MoTa.mi
会在手机上出现一个问你是否备份界面,并让你输入密码,这里为了方便密码我设为空(不填)
会在生成一个 applock.ab的文件,下面,我们还需要借助一个工具来解析这个ab文件。
第二步:使用android-backup-extractor( abe)工具来解析ab文件
把 备份好的 applock.ab移动到abe文件夹下
通过cmd  cbe> java -jar abe.jar -help就可以查看指定方法了

看到我们使用unpack参数来将ab文件转化成tar文件:
java -jar abe.jar unpack applock.ab applock.tar

推荐个软件,通过7z.exe这个软件打开tar文件比较好,因为这个可以直接修改

通过修改sp的文件中的值,达到修改血量的目的,以此类推我们可以修改其他app的值,db的文件也适用

通过7z这个软件我们不用解压就可以修改里面的文件,然后通过
>java -jar abe.jar pack applock.tar applock.ab 反生成ab文件,
再通过adb命令adb restore applock.ab
还原到手机中就OK了

但是最后说两句,想用这个技术盗取别账号密码的就别懂心思了,顶多能破解个手势密码,一般app的密码都不会存在本地,都存在服务器



通过进一步的学习学会了另外一种查看apk资源文件的方法

我们下载apk,之后使用aapt查看他的AndroidManifest.xml内容:
aapt dump xmltree applock.apk AndroidManifest.xml > D:\demo.txt
注:我们在拿到一个apk的时候,如果想知道apk中的一些资源和配置信息,aapt命令是个不错的选择,同时,他能够删除apk中的一些资源,添加一些资源到apk中都是可以的。



题外话,各位最好学会反编译和从新打包技术,这样可以随意破戒app的信息,不然一但allowBackup属性设置为false的话那就不能通过这个方法破解修改信息,曾经可以通过这个方法去获取微信的聊天记录,但是现在已被修复


附上截图,不过不小新给改死了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值