吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 66451|回复: 435
收起左侧

[Android 原创] 【XXXX】0.7.31版修改思路【二】(无敌+无限cost+全图放置+干员无敌)附0752成品

    [复制链接]
我是大哥陈 发表于 2019-5-13 12:45
本帖最后由 我是大哥陈 于 2019-8-28 12:37 编辑

上一篇:https://www.52pojie.cn/thread-954800-1-1.html
上一篇介绍了无限生命和无限cost的初次实现,但悲剧的是第二天就被封号了,这次来仔细搞一下。
*本篇是本人亲测安全运行7天且未被封号后放出的,请谨慎使用,如被封号后果自负哦。
2019.8.28
-更新0752版,去掉了无限生命,保留无敌、无限cost、全图放置、可重复放置干员。
-再次修改了无敌的判定为get_side,感谢@NewsJai 的帖子


2019.7.15
-修改了敌我判定逻辑,不再根据SP判断(看到大家反馈新本带SP的BOSS打不死),改为用get_isPlayerCharacter(感谢198楼老哥的提示),现在敌我判断应该正常了。
-关于倍攻倍防的问题,我暂时没找到好的修改方法,另一位兄弟的旧的倍攻倍防修改版加固了,没法比对,只能等他更新了。


2019.7.9
-发现居然还有人存活,那就更新一下最新版吧,去掉了无限生命,也就是漏怪的话基地会掉血,以降低封号概率。下载地址在最底部。

2019.5.16.
-第9天,官服已挂,谨慎下载。

QQ图片20190516093130.png

2019.5.15.
-已更新0728的修改版成品,下载地址在底部。



1.无限生命
打开IDA,在get_lifePoint()上按X寻找调用该方法的地方,逐一分析
QQ截图20190513114628.png
发现OnEnemyReachedExit这个函数在0x01A2DAD8处调用了get_lifePoint(),看起来像是个突破口,手动填补前后范围内的函数后进行分析:
QQ截图20190513115119.png
意思很明确了,在敌人到达出口的时候,会获取当前的lifepoint,如果敌人不等于0,就获取敌人会降低多少lifepoint,然后相减,再调用set_lifePoint设置新的生命值,完成扣除生命的操作。
这里修改的思路也很简单,将:
00 10 46 E0                 SUB             R1, R6, R0
改成
06 10 A0 E1                MOV            R1,R6
即直接把当前的lifepoint赋给新的生命值,不做相减操作。
进入游戏测试,发现敌人到达终点后同样不掉血,修改成功。

2.无限cost
同样,在IDA上逐个查看调用get_cost()的地方并手动解析,最后发现两处感兴趣的地方:名为get_readyToSpawn()和SpawnCharacterOrToken的函数调用了它,先看get_readyToSpawn
QQ截图20190513124109.png
这是一个bool型函数,返回的值应该就是判断每个干员的cost是否足够,不够的话会显示黑色,够的话才会高亮显示,所以改成一直返回1应该就好。直接暴力修改圈出来的两处,强行使其跳转:
修改前:
.text:0207171C  10 00 00 BA                 BLT             loc_2071764
.text:02071764  05 00 A0 E1                 MOV             R0, R5
修改后:
text:0207171C   10 00 00 EA                 B                loc_2071764
.text:02071764  01 00 A0 E3                 MOV             R0, #1

再来看SpawnCharacterOrToken
QQ截图20190513122620.png
经过简单分析,应该是在放置干员的时候会作出判断,如果花费大于目前cost的话就放置失败,否则就放置成功,以R7是否等于0来判断,R7等于0的话就算放置成功。
于是作出修改,将0赋值给R7即可,将:
01 70 00 C3                 MOVGT           R7, #1
改成
00 70 A0 E3                 MOV             R7, #0
进入游戏后测试,发现即时cost不够也能放置干员,cost会正常扣除。
重要的是,账号已经安全运行5天,暂时未被封号!这也是我其实之前就做出来了,现在才发出来的原因。我们修改的宗旨安全第一嘛。
QQ截图20190513123357.png

3.全图放置
在搜索过程中还发现很多名为checkbuildable的函数:
QQ截图20190513130118.png
在IDA里逐个分析后,发现这些函数最后都指向同一个地址为0x205DA8C的不知名函数:
QQ截图20190513130252.png
不管三七二十一,先改成直接返回1试试看再说:
QQ截图20190513130322.png
将红圈处直接改为:
01 00 A0 E3         MOV   R0, #1
进入游戏后发现。。。所有干员都能全地形放置了(飞龙骑脸怎么输)
QQ图片20190513130655.jpg

同时还有一个意外发现,就是干员撤退或死亡后,重新放置的话卡片还在,也就是说可以重复放置干员
QQ截图20190513125659.png
敌人:
QQ截图20190513131000.png

4.干员无敌
光是老家无敌也不行啊,我们没法愉快滴刷剿灭400杀,因为干员不是无敌的QvQ
这块比较麻烦,因为测试下来,所有人的扣血判定都是用的同一个函数,所以如果不区分敌我的话,所有人都会变成无敌。
而游戏里又没有区分敌我的判定,只能自己找出己方和敌方有哪些不同之处,再进行区分。
经过我两天的测试,参考了贴吧别人的拆包数据:https://tieba.baidu.com/p/6124319585
从移动速度、HP恢复、甚至是阻挡数量来判断,都无法作出区分,最后在maxSp,也就最大能量值上找到了突破口。
也就是说,敌人是没有能量的,而我方干员基本都是有能量条的(辣鸡干员除外),所以我们修改成有能量条的角色都无敌就行了。
无敌的判定有很多种,这里我从get_isUndeadable这个函数下手:
QQ截图20190513135839.png
在IDA中找到该函数,发现只有一处SetHpInternal调用了了它:
QQ截图20190513141111.png
分析结果:先获取get_isUndeadable的值,如果为0,则S16=0.0,否则S16=1.0。很明显,这里的S16就是血量,如果对象不是不死的,则血量改为0,如果对象是不死的,则将血量改为1。
修改思路:改为获取get_maxSp(),如果最大能量大于0,则将血量改为1,否则的话血量为0,这样就从能量上将敌我区分开来,有能量的人变为无敌,没能量的人除外。
修改后:
QQ截图20190513141840.png
关于如何取得跳转地址的OPCODE,在上一篇已经作了介绍,这里就不细说了。
需要说明的是这里的给浮点寄存器S16赋值的时候,不像给通用寄存器赋值那么简单,其中0.0小数是存在函数尾部,并根据偏移量调用的:
QQ截图20190513142229.png
而1.0这个小数可以直接用:
00 8A B7 EE                 VMOV.F32        S16, #1.0
原样复制OPCODE来实现。
最后进游戏测试,发现有能量的角色的HP只会将为1而不会死亡:
QQ截图20190513142433.png
于是干员无敌就达成了,剿灭400杀达成!
但是还有个遗留问题,如果以后出现了有SP的敌人,那该敌人也会无敌,所以如果大家发现更好的突破口可以告诉我哈。
关于根据Cost来判断,我已经试过了,我也以为干员都是有cost的敌人没有,但是测试结果并不是这样。。。测试下来发现敌人的cost也是大于0的,区分不出来,阻挡数量也是如此。


5.关于加速
有人问游戏自带的2倍速太慢了能不能加速,实际是可以的,可以自行修改里面的timescale来达到修改倍速的效果,这个也是U3D自带的功能,具体可以百度U3D的相关文档。
而且游戏里其实有3倍速的选项,但是目前没开放,不知道什么原因。
但是通过抓包发现,每次战斗后都会上传战斗时间,其他的战斗数据都加密了不知道还上传了哪些,所以战斗时间如果太短的话很可能就直接被封号了,故没做修改。
QQ图片20190513151533.png

最后附上成品so文件,so使用方法(官服和bilibili服通用):
手机:
Root用户可以直接替换data\data\com.hypergryph.arknights\libs下的同名文件即可。
非Root用户需要将该so放入APK中的lib\armeabi-v7a下替换原文件,再自己重新签名安装。

模拟器:
模拟器比较特殊,因为会用x86的运行库,所以需要自己改。
Root用户:手动打开原版apk,复制其中的lib\armeabi-v7a到data\data\com.hypergryph.arknights\libs下覆盖同名文件;再用该so替换。
非Root用户:手动打开原版apk,用该so替换其中的lib\armeabi-v7a,然后删除其中的lib\x86文件夹,重新签名安装。



顺便发个成品直装版APK:
官服版(已更新2019.5.14):
B服版:


2019.5.15更新0728版:
单独so文件:
单独so文件.0728.(官服B服通用).txt (66 Bytes, 下载次数: 200)
官服: 修改版APK.0728.(官服).txt (66 Bytes, 下载次数: 635)
B服:
修改版APK.0728.(B服) .txt (66 Bytes, 下载次数: 293)


2019.7.9更新0731版:
单独so文件:
单独so文件.0731.(官服B服通用).txt (66 Bytes, 下载次数: 65)
官服: 修改版APK.0731.(官服).txt (66 Bytes, 下载次数: 158)
B服:
修改版APK.0731.(B服) .txt (66 Bytes, 下载次数: 74)
单独so文件: 单独so文件.0731.(官服B服通用).20190715.txt (66 Bytes, 下载次数: 145)
官服: 修改版APK.0731.(官服) .20190715.txt (66 Bytes, 下载次数: 488)
B服:
修改版APK.0731.(B服) .20190715.txt (66 Bytes, 下载次数: 211)



2019.8.28更新0752版:
单独so文件:
单独so文件.0752.(官服B服通用).txt (71 Bytes, 下载次数: 188)
官服: 修改版APK.0752.(官服).txt (71 Bytes, 下载次数: 480)
B服:
修改版APK.0752.(B服).txt (71 Bytes, 下载次数: 210)


QQ截图20190513124109.png

免费评分

参与人数 134威望 +2 吾爱币 +139 热心值 +124 收起 理由
milan + 1 + 1 我很赞同!
rjj0314 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
w516258928 + 1 谢谢@Thanks!
深秋残枫 + 1 + 1 大佬66666666
雪霁前村 + 1 谢谢@Thanks!
attraction98 + 1 + 1 我很赞同!
kelisi + 1 我很赞同!
vl1137 + 1 + 1 谢谢@Thanks!
霍利亚 + 1 + 1 666666,巨佬居然跟紧持续更新
walkmankaka + 1 + 1 谢谢@Thanks!
夏季八画 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Nachtacht + 1 + 1 谢谢@Thanks!
mik8316771 + 1 谢谢大佬!
zrtyuio + 1 + 1 谢谢@Thanks!
DanK + 1 + 1 必须吹爆,麻麻再也不怕我打不来三星了
534590526 + 1 + 1 对汇编语言的解释对我帮助很大
大腿粉碎机 + 1 + 1 大佬牛批
wrnmd + 1 + 1 谢谢@Thanks!
0mogul0 + 1 我很赞同!
qwe30245868913 + 1 热心回复!
四月是你的謊言 + 1 + 1 谢谢@Thanks!
incubus + 1 + 1 谢谢@Thanks!
Marshmallowqwq + 1 + 1 谢谢@Thanks!
tntd + 1 + 1 谢谢@Thanks!
zellsquall + 1 + 1 谢谢@Thanks!
Hchien + 1 + 1 我很赞同!
TYTNT + 1 + 1 谢谢@Thanks!
taotie2017 + 1 + 1 我很赞同!
luogang0709 + 1 + 1 我很赞同!
illyawolaopo + 1 + 1 谢谢@Thanks!
黄狼 + 1 + 1 求楼主做一版不带倍攻的
a5687632 + 1 + 1 谢谢@Thanks!
Dove丶 + 1 + 1 热心回复!
Akizuki + 1 + 1 谢谢@Thanks!大佬牛逼
wab6234033 + 1 + 1 感谢楼主!
timewl + 1 + 1 我很赞同!
YuriBrightan + 1 + 1 我很赞同!
898522783 + 1 + 1 求改个单2倍攻击3倍防御的
yklwdd + 1 大佬。能改成原来的2倍攻击 三倍防御吗?那样不会封号的。谢谢你了
Goin15280 + 1 + 1 热心回复!
18075276321 + 1 我很赞同!
shadow0307 + 1 + 1 谢谢@Thanks!
midyjeck8414 + 1 + 1 能改双倍攻击和3倍防御吗?
Doraemoe + 1 + 1 能改双倍攻击和双倍防御吗?
wutou + 1 + 1 大佬牛逼
拥白吃黑 + 1 + 1 谢谢@Thanks!
sinfultn + 1 谢谢@Thanks!
维斯 + 1 + 1 感谢大佬及时更新。
MGCWM + 1 + 1 感谢大佬更新
Alertester + 1 + 1 一直用到更新,很强的了
209566436 + 1 + 1 谢谢@Thanks!
CWJYBB + 1 + 1 热心回复!
cp5670681 + 1 热心回复!
cuiyuxuan1105 + 1 是个大佬
zzy1995 + 1 翻车了。。。。。
Souipp + 1 + 1 我很赞同!
苦逼人生 + 2 + 1 已翻车弃坑~
fei8255 + 1 + 1 用心讨论,共获提升!
冥墨幽 + 1 + 1 确认过眼神是大神
零食的逆转 + 1 + 1 我很赞同!
yurizeras + 1 + 1 我很赞同!
落日青云 + 1 + 1 谢谢@Thanks!
tjx199802 + 1 + 1 我是来看翻车的><
奶昔啊 + 1 + 1 我很赞同!
bc001 + 1 + 1 谢谢@Thanks!
wuyucannba + 1 + 1 可惜已封号
吾妻十香 + 1 + 1 我很赞同!
winer + 1 + 1 谢谢大佬,这篇真的学到了些东西
唐宋书生 + 1 官服永久封禁了
紫悦 + 1 + 1 今日已被封号)
千珏... + 1 + 1 已翻车
ocq110 + 1 今天翻车了,永久
繁城徙客 + 1 鼓励转贴优秀软件安全工具和文档!
zhshazi523 + 1 + 1 最好添加一个无限放置角色配合角色无限cost
yetong541 + 1 + 1 我很赞同!
霞之丘诗羽 + 1 + 1 谢谢@Thanks!
郁金香de唯美 + 1 + 1 闲鱼出现倒卖!
kuroshio + 1 + 1 热心回复!
Aihys + 1 + 1 作者你是真的牛pi哈
lanla665 + 1 + 1 我很赞同!
wsxmh1993 + 1 + 1 我很赞同!
瑾世年华 + 1 + 1 谢谢@Thanks!
qtfreet00 + 2 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
davidsp6 + 1 + 1 谢谢@Thanks!
killoror + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
柒小轩 + 1 + 1 谢谢@Thanks!
宁采成 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
NO‘XIAO5 + 1 今天更新估计修复了
77153575 + 1 + 1 用心讨论,共获提升!
柒式灬柒木杉 + 1 + 1 用心讨论,共获提升!
请叫我冬菇0_32 + 1 + 1 我很赞同!阿米驴,冲鸭!
灯山远 + 1 + 1 我很赞同!
xiaoxinmm + 1 + 1 鼓励转贴优秀软件安全工具和文档!
qq27167782 + 1 + 1 谢谢@Thanks!
崛川雷鼓 + 1 + 1 谢谢@Thanks!
key81 + 1 + 1 用心讨论,共获提升!
iokl12003 + 1 + 1 成品官服 链接挂了,补个链接啊?
fanjingyu000 + 1 + 1 谢谢@Thanks!
荭颜祸水 + 1 + 1 谢谢@Thanks!
CrazyNut + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yukunbaba 发表于 2019-5-16 17:58
今天测试了一天,大概猜测必封的机制有两个:召唤石数量和基地血量。
1、每把结束以后,会保存代{过}{滤}理指挥数据,代{过}{滤}理指挥是有数据检测功能,所以布置的不好会报警,报警机制应该是计算敌人行进路线中无友方阻挡且不在我方攻击范围内,若这样的敌人个数超过基地血量就会报警,因此基地血量是一定不能修改数值上限的,楼主把基地血量改成无敌不掉血,理论上是没有问题,但可能后期服务器会通过捞取代{过}{滤}理指挥的数据从而判定你作弊。
2、召唤石上限是99个,正常的一局结束以后不,可能超过50个,所以剩余召唤石太多肯定是作弊。
3、目前来看,全图放置、干员无敌暂时不会被判定作弊。
4、如果以该修改版本玩,建议大家每把认真布置干员,当作正常游戏玩,保证基地掉血<10,召唤石<20,可以全图放置干员,隔十几秒就要让干员撤退和放入,新版本我这样玩了3天了,没有被封。
5、希望大佬能重新出个版本,修改功能就是:全图布置、召唤无CD,召唤干员费用1/2或1/3,这样应该不容易被封,且加强游戏趣味性。
再次感谢大佬的详细教学。
JemmyloveJenny 发表于 2019-7-13 19:50
本帖最后由 JemmyloveJenny 于 2019-7-13 19:51 编辑

@我是大哥陈 给你一个区分敌人和干员的思路
干员都属于Torappu.Battle.Character,而敌人属于Torappu.Battle.Enemy
在C#里面只要用 variable is <Type> 判断一下就行了
我不太清楚il2cpp里面Class的结构,如果Class结构里面有Class的ID那可能还比较好判断
没有ID的话,不清楚直接调用特有方法能否判断,比如

void func(Entity *entity) {
    if(Character$$get_data(entity) != NULL) {
        DoSomething();
    }
}

不知道这样能否区分敌友,也不知道运行会不会出问题

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
u223110 + 1 + 1 我很赞同!

查看全部评分

yukunbaba 发表于 2019-5-16 11:21
再次感谢大佬分享优秀作品,目前还没被封,谈下自己的建议,每次通关完成后,应该是会上传基地剩余血量和召唤石的数量,这两点一定不能改数值。建议将游戏修改成召唤石获取0CD,费用部署减半,干员任意部署位置,这样可以增加通关成功率,又不容易封号。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
瑾世年华 + 1 + 1 我很赞同!

查看全部评分

GMei 发表于 2019-9-15 12:50
理智系统和源石能破就好了
fhxylang 发表于 2019-8-20 09:40
大佬挖空心思为这个游戏做贡献,真是操碎了心又封了号,一举两得啊,在下佩服佩服
morningtea 发表于 2019-7-24 14:28
研究了一下,攻速是可以修改的,我方和敌方计算攻击间隔的函数都是Torappu.Battle.BattleFormula.CalculateAttackInterval(),稍微暴力一点改法就是直接让它返回0,这样攻速直接无限快。唯一缺陷就是此时敌人攻速也会加快,但凭借我方狙击干员的射程,可以让敌人在家门口出不来。以后可以尝试加入敌我判断。
修改前:

修改前

修改前

修改后: 修改后.png
渣渣豆 发表于 2019-5-23 09:59
已失效。请吾友别再下载附件了。会弹502
吾爱-宿命 发表于 2019-5-13 12:54
一楼!!!感谢大神分享
zxy19970921 发表于 2019-5-13 13:06
大神的意思是不是 如果前期放的太快 数值溢出就会被检测异常?
kgdqqq 发表于 2019-5-13 13:20
我按照你第一个文章修改。。不用第二天。下线再上线就被封了。
Xenon 发表于 2019-5-13 13:38
施工现场
北冥愚公 发表于 2019-5-13 14:20
萌新近距离膜拜大神
养猫盼她成仙 发表于 2019-5-13 14:56
马克一下,大佬刘辟
KamiDaze 发表于 2019-5-13 15:00
6666666666期待大哥成品
starzero 发表于 2019-5-13 15:09
这是大佬
莫纯皓 发表于 2019-5-13 15:11
感谢大神
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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