好友
阅读权限 10
听众
最后登录 1970-1-1
本帖最后由 hzw320 于 2018-8-8 13:46 编辑
常用工具下载链接: 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
本文章转载来着独立团论坛:http://bbs.dult.cn
免费评分
查看全部评分
发帖前要善用【论坛搜索 】 功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。