BanG Dream修改相关

2017-03-26 16,235 ℃

版本:1.1.0

好久没有写游戏修改的文章了,最主要的原因是没有感兴趣入坑的游戏。这次新出的BanG Dream个人还是挺喜欢的,除了上拉note感觉有点反人类。然后嘛,EX的曲子能不死的都没几个,所以接下来就是你懂得的啦。

按到就是Perfect

il2cpp的游戏,所以直接上Il2CppDumper,然后搜索关键字“Perfect”,因为是音游嘛,很容易就能定位到NoteResultType,接下来就是搜索这个类名,看看有哪些函数的返回值是这个,配合在ida里看看代码,就能找到NoteFrontBase下的GetNoteResultType这个关键函数。其中NoteFrontBase是各种note的基类之一,在算分阶段就会调用这个函数来获取最终结果,所以直接修改函数的返回值就行,NoteResultType作为枚举类型实际上就是表示int的值,所以修改就简单的两句话

mov r0,#0x4
bx lr

不过有个严重的问题,游戏中会miss的还是会直接miss,对于我这个手残党来说并不能改变打不来EX的问题,所以还得进一步修改

解放双手

经过仔细观察代码后找到NoteSpecialBase下的miss函数和NoteFrontBase下的judgeFrontNote函数,这两个函数分别在按和不按的时候执行到,并且根据上下文来看这两个函数是可以互换的,所以接下来的修改思路就是,修改miss函数使它调用judgeFrontNote函数,这里就直接贴修改好的代码了

其中使用Random.Range来生成随机数使它能够变成97% Perfect而不至于太假,其实也可以做成像cgss用音量之类的开关来控制,不过我懒得找变量位置了,就这样吧。
不过又发现个问题,技能note无法触发,往上翻代码发现会在NoteSpecialBase.onMiss里处理掉技能note,所以在这个函数开头直接返回即可。这下就修改完成了~

成品,未签名

百度云

简单绕过BanG Dream校验

2.2.0 上周去参加CP22,炸梦演出时的人比想象中的要多,给我一种国服能很火的感觉,于是我决定下回日服顺带摸鱼一篇文章 游戏不懂什么版本开始加入了一点校验...

阅读全文

94 条评论

  1. 我尝试用这种方法修改现版本b服(3.9.2),发现并找不到GetNoteResultType函数,可能是我太菜了吧。但我发现上版本的b服(3.9.1)有相同的修改包,也可能是函数变了?毕竟过去几年了唉。。。如果大佬有时间和兴趣的话请研究一下
    如果有新思路的话
    qq:2016526278
    非常感谢

    1. 我看出来了,就是提醒一下伸手党们不能拿来就用。
      文章还是很好的,我曾经打算用另外的思路做,最后发现还是得回到您这个方法。
      谢谢分享。

  2. 请问下P大,现在还有可以改分倍率的方法呢,你之前说的这个“修改传入InGameManager.RegisterCallbackJudgeNote的第3或者第9个参数”好像不能用了呢。

    1. P大那个我没改成功过,我一直是改某某rate,自己研究下就知道我说的到底哪个了这里就不点透了免得某些卖家又有卖点了
      反正改这个基本必死,已经拿十多个小号试过了我也不玩了

    2. 问下dalao你这个方法是秒死(就是打歌结算就死)还是活动结束后死的啊,或者方便加个好友么,我暗号一四七七七六六八八,感谢(鞠躬)。

    3. 我那会是打歌打完结算就如图:https://puu.sh/xZaVt/59bf3955b2.png
      然后活动一完那个维护过后就封 没区别
      记得当时是200w还是210w的分数上限,高过这个值必死 现在不知道
      反正不要试图去试底线,我试过开打就断网或者直接强退游戏 下次启动还是一样把分数上传上去了继续封

    4. 一直都是改倍率,不过这次新版本之前改的是calcscorerate,现在改的是calcscoreuprate。官方估计也注意到了改分的问题导致这个版本分数有点不好控制了,建议去看一下博主友链的另一个大大的帖子。

  3. 博主菜鸟一个看国外某个论坛的修改然后对比原文件,知道修改那个位置,然后会用一个工具

  4. 博主能否测试下到底是我个人问题还是此修改方法已经不再安全不建议继续使用
    最近连续死了几个号即便不改分数只按照教程改自动打歌每次活动结束必被封号??

    1. 想改%數自己改

      以HEX編輯器開啟libil2cpp.so(APK)
      接著(ctrl+F)以十六進位搜尋000050E30100008A0410A0E3
      開頭的00就是機率
      如果60在十進位表示96
      即代表約97%Perfect
      63即代表約100%Perfect

    2. 不是这个问题,改P率的方法博主也写了而且我还有更好的办法直接绑定某个选项。而且你这修改方法是从隔壁apktw改cgss那边的复制过来的吧?也不如直接绑选项。。
      改分现在肯定会死(其实是改得分倍率而不是改结果),改自动打歌封号问题现在我觉得没足够样本前没法下定论,就不知道现在这里其它还在用的人如何了

  5. Perfare, pls update to v.1.1.1, i tried to update myself, but for some reason when i finish a song gets on that screen before appear the points for the event and i need to restart the game everytime :(
    Sorry i cant understand your language but hope u can read this :???:

    1. I’m not author but still want say:
      Don’t request this anymore because there’s too much cheat reseller in his(or should be my?) country, those people really suck you know? I’m also think he won’t do it too.

      麻烦作者你博客加个IP检测或者MAC检测吧,我怀疑这些人在反复开小号找你要更新 呵呵

  6. 请教一下( il2cpp的游戏,所以直接上Il2CppDumper)这里我下了U3D但是不会使用请问如何启动il2cpp呢 是mono吗,(然后搜索关键字“Perfect”,因为是音游嘛,很容易就能定位到NoteResultType,接下来就是搜索这个类名,看看有哪些函数的返回值是这个,配合在ida里看看代码,就能找到NoteFrontBase下的GetNoteResultType这个关键函数)。 这里我在ida看了下代码发现 代码被修改了 还是隐藏了呢 跟教程的不一样请问要如何解决呢

  7. 按照方法修改成最新1.11客服端后,在新活动结算界面会一直转圈,只能重启,换回官方版本却没有问题

  8. 感谢指引,已另辟捷径解决问题同时解决dsl这首歌的问题
    不过还是想问下,如何正确地写一定几率p和gr? 现在实现出来的只能全P
    puu.sh/v9QYt/95debb95fd.png

    1. 我能看懂您使用的是调用random方法然后判断是否大于自己设定值来设定是P还是GR,但是现在有个问题:
      因为我是直接修改NoteResultType设置为P的值,能不能给个类似的例子,在NoteResultType那会直接进行判断 感觉我不会写跳转。。

  9. 非常感謝您的教學,試了一個上午總算是成功了,不過還是有幾個問題想請教:

    像是 “BL sub_F25CB8” 這樣的指令 我查到了最新版APK同樣函數的位置

    不過我現在只能一直慢慢試出用代碼拼出新位置 不知道有沒有什麼方法可以看位置就知道代碼的呢?

    不知道您有沒有辦法理解我想問的問題

    1. 您好
      請問要如何把 BL sub_xxxxxx修改成像BL sub_F25CB8這樣?

      看位置的話用Il2CppDumper就可以了,會有dump.cs依照函數名稱就可以找到位置。
      public static int Range(int min, int max); // f25cb8

    2. 不好意思,還是沒搞懂
      現在V1.1.1 版本
      轉跳地址是 F26C48
      代碼所在地址是 472038

      我在小算盤相減後得到的是 F2 6C48
      但是跟我修正過後的代碼我還是看不出關聯
      是我理解錯誤 哪邊做錯了嗎?

      組合語言小弟真心不太懂.. 還請賜教 Orz

    3. 正解是這樣沒錯

      不過我現在想知道 下次位址又改變時 我該怎麼得出新的代碼

      我這次是暴力破解慢慢試出來的

  10. 不好意思,教學能不能再詳細一點呢 資質不好 看完之後還是有很多搞不太懂的地方 :!:

  11. can someone explain the steps in english so i can update myself to v.1.1.1 ? I cant really understand the steps :cry:

  12. 把1.1的so替换回去的莫不是在逗人笑? 还是先了解下汇编吧
    我更建议博主还是把这文删了吧现在滥用程度太高了 :evil:

  13. 大大 希望能夠指導一下小弟

    .text:00470A84 STMFD SP!, {R4-R7,R11,LR}
    .text:00470A88 MOV R4, R0
    .text:00470A8C MOV R5, R1
    .text:00470A90 MOV R1, #0
    .text:00470A94 MOV R2, #0x64
    .text:00470A98 BL sub_F25CB8
    .text:00470A9C CMP R0, #0x60
    .text:00470AA0 BHI loc_470AAC

    之前大大您的文章有提到 MOV R2, #0x64 這種可以用arm線上轉換,不過 BL sub_F25CB8 這種的轉換完跟IDA裡面的Hex不一樣,是不是有別種修改方法?
    可以的話,希望能教學,謝謝!

  14. 大大能否更新一下最新版呢,又或者说教程里的从apk解压出libil2cpp.so和global-metadata.dat 这个该怎么解压呢

  15. 感谢大佬的博客,为我解包少女前线提供了新思路。另外也特别感谢之前文章里那个提问少女前线的人,如果没有他的提问我还真关键词搜索不到大佬博客

  16. 大大,这个博客搭的特别漂亮,简洁洒脱,是用的主题还是什么的?也想搭一个类似的,求教! :?: :?: :?:

  17. P大 想問下成品裡的是按了就P 還是 解放雙手版本的?
    因為安裝之後效果是按了就P 可是字眼卻是 97% Auto Perfect :?:
    求指教

    1. 這版本只支援x64

      如果你是用模擬器的話,先把APK用WinRAR或7z開啟,把lib裡面的x86目錄整個刪掉,再重新安裝APK應該會有效
      我是用夜神模擬器玩的,其他模擬器我就不清楚了

    2. 你好,我按照你的方法做了,也是用的夜神模拟器,提示说”Failed to extract resources needed by Il2CPP”不知道怎么回事。
      是直接用删掉x86目录的后的apk安装,还是说在原本已经装着程序的模拟器里再用这个apk更新?谢谢

  18. 感謝大大的教學
    之前不管怎麼改都沒反應,原來是改錯地方orz

    有個問題想請教,有沒有辦法將解密完的dll不用再加密,即可運行遊戲的方法?

  19. 不知为什么 Don’t say Lazy 的 Expert 难度 每次快要到最后的时候都是出问题 (。_。)

    不知道每个人都会这样的问题吗?

  20. 能不能问个作死类修改的问题?
    得分倍率之类的东西好像有不少人实现了但是自己试过很多方法都不行,比如协作里fevertime有个得分倍率虽然的确可以修改,但是会造成游戏结束后你的分是0而且别人能看到(我见过别的最后是0分的人所以我确信改这个会造成问题),有办法解决么?

    1. 谢谢!再顺便问一下一些软修改有找到正确的方法吗?例如修改每个乐队的加成特效一类的,试过比如MasterBondsEffect结果完全无效,或许是我改错地方了?

欢迎留言

4 + 1 =