看流星社区

 找回密码
 注册账号
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
查看: 470|回复: 2

教你学习破解安卓手游apk文件技术

[复制链接]

该用户从未签到

发表于 2020-3-22 21:59:36 | 显示全部楼层 |阅读模式

常用工具下载链接:
http://www.androiddevtools.cn/
本文主要用到的工具:MT管理器

破解思路:
拿到一个游戏一定要先进行试玩  看看有没有什么关键的字符串 并观察布局特征
当破解没有思路的时候   可以adb连接   打印log进行分析
DDMS也很好用  适合于快速定位

要破解APK,首选我们要搞清楚APK文件包的结构,这也是教程里黑色老师经常说到的,要分析一个游戏,得先会玩那个游戏,才能写好辅助
APK文件结构分析:

实际上可以算作一个zip压缩包   解压后会得到
AndroidMainifest.xml :   配置清单(二进制格式)
assets  : 是资源目录,一般存放图片什么的
lib :是动态库目录 一般存放so文件
res :资源库目录 一般存放xml布局文件和图标
classes.dex:  安卓系统上的可执行文件,也是我们逆向的主要的文件,源码都被编译在里面,如有多个是因为每个dex里最多存放65535个方法,而项目的方法数超出了这个数量,所以被分成多个保存
META-INF:签名文件目录
resources.arsc :资源索引文件,包含语言包,汉化的话一般是反编译这个文件

结构大概我们清楚了,接下来就是还有知道一些分析安卓程序代码的相关关键词
内购关键词:
和游戏搜索方法名
onResult,onchinabilling,resulton,Paycenter,Callback
联通游戏搜索方法名
OnPayResult,PyaResulton,Activity,result,callback
电信爱游戏搜索方法名
paySuccess成功,payCancel取消,payFailed失败
移动mm搜索方法名
onBillingFinish,Billing,CallBack
支付宝和银行卡方法名
handle,message
支付宝搜索字符:9000
360支付
onfinishedon,Activityresult
发送短信上限:android.permission.SEND_SMS
发送短信锁定支付式关建字符串

运营商网络特征码备注
中国移动46000、46002、46007、46020return 0 getMobileType
中国联通46001、46006、46010return 2 getOperatorType
中国电信46003、46005、46011return 1 getSimType

举例分析:
if-eqz v6 :label_104 意思是判断v6是否等于0 如果等于0就跳转到 label_104
所以当label_104对应为失败代码时 直接删除该跳转语句也就是if-eqz v6 :label_104
if-nez v3 :label_86 意思是如果v3不等于0就跳转到label_86 而他的代码是
label_86:
return_void
所以是正确代码 必须让他直接跳转到这里来 所以将if-nez v3 :label_86改为goto :label_86
如果有取消支付选项 可以将该选项加入最后的*switch中
move v1 v6意思是将v1的值传给v6
const/4 v1 1意思是将v1设置为1


4399游戏破解攻略http://a.4399.cn/(4399手机游戏官网)
1. 搜索两次单机(方法名)
2. 搜索两次侵权(方法名  有的游戏不需要)
3. 签名

(1) 街机大富翁
直接修改初始金币和经验
字符常量池直接过滤gold 找到player_gold 直接搜索 进入get_gold
Const/16 v2 0x64  保存后再看发现变成了负数(因为超过了最大范围)
所以直接改进制 去掉/16
将升级所需的经验值该小 进入assets资源文件夹 进入data 找到相应文件 以文本编辑器打开

分析过其他游戏关键词我给大家参考下吧:

1. 如果游戏是咪咕游戏http://g.10086.cn/(官网),就用onresult
(1)格斗三国志
如果看着不太对 没有正确错误什么的,就找路径
三网锁定 把if都删了

(2)猪猪侠之传奇射击
进入之后发现啥都没有 可以搜索一下字符串 看看正常不 有没有什么.so文件之类的  看看classes.dex文件大不大 700多kb就算大 一般可能会加密而不会是加壳
直接搜payrSuccess   想弹窗题诗就直接吧paySuccess里边的代码全部粘贴到payFaile里   把方法路径改一下

(3)火柴人联盟
盗版验证弹窗  按钮事件    1就代表成功 0失败 2取消
常量搜索setPositiveButton  按钮事件触发check 看代码最后调用的是 popKuangInfo
直接搜索他 让其他调用他的直接return_void
去除短信权限  进入字符常量池 过滤sms  将android.permission.SEND_SMS删去
(4)3D狂野飞车3-极速前进官方

发现有作弊应用某修改器 弹窗提示让我们卸载
2. 如果游戏是爱游戏http://www.play.cn/(官网),就用paysuccess
3. 如果游戏是mm游戏http://mm.10086.cn/(官网),就有 onbillingfinish
4. 百度手机助手 天天格斗

搜索onresult 发现没有支付相关的代码
接着搜索paysucess 后边带有listen的是说明
将成功的代码分别粘贴到取消和失败哪里  接着去掉短信权限
签名后安装购买道具还是会显示支付失败!!!
接着搜索paysucess代码里最后调用的那个方法名

5. 脑电波
支付宝内购  搜索9000 删除某跳转
微信内购   搜索onresp

新手必读背部分语法的意思(必背):
“if-**”条件判定
“goto :label_**”直接跳转到:label_**
"label:**"用于跳转的,就是执行它下面的一串代码
"if-eq vA, vB, :label_**" 如果vA等于vB则跳转到:label_**
"if-ne vA, vB, :label_**" 如果vA不等于vB则跳转到:label_**
"if-lt vA, vB, :label_**" 如果vA小于vB则跳转到:label_**
"if-ge vA, vB, :label_**" 如果vA大于等于vB则跳转到:label_**
"if-gt vA, vB, :label_**" 如果vA大于vB则跳转到:label_**
"if-le vA, vB, :label_**" 如果vA小于等于vB则跳转到:label_**
"if-eqz vA, :label_**" 如果vA等于0则跳转到:label_**
"if-nez vA, :label_**" 如果vA不等于0则跳转到:label_**
"if-ltz vA, :label_**" 如果vA小于0则跳转到:label_**
"if-gez vA, :label_**" 如果vA大于等于0则跳转到:label_**
"if-gtz vA, :label_**" 如果vA大于0则跳转到:label_**
"if-lez vA, :label_**" 如果vA小于等于0则转到:label_**
A,B指数字,**也是指数字

代码就这么多,要想学好破解一定要熟记每一个代码并知道其中的含义

分析一些常用的代码:
弹窗的关键词: oncreate
成功代码:invoke-interface {v3,v2} Lcn/egame/terminal/paysdk/EgamePayListener;->paySuccess(Ljava/util/Map;)V
return-void
支付上限用到的代码:carrier_pay_out_limit              
这个是在文件里面搜索的代码:no_propriate_pay_method
破解盗版验证用到的代码:dialog_initconfig_msg

该用户从未签到

发表于 2020-3-26 12:54:30 | 显示全部楼层
支持楼主,支持看流星社区,以后我会经常来!
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2020-7-17 00:17

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表