2018-01-24 7,983 ℃
开始码字后突然不懂标题应该怎么取,原本想像隔壁一样来个什么“关于Unity的xxx保护(1)”,不过目前只打算写写这一个例子,估摸着也没有下篇,还是别挖坑了。
至于为什么写这个东西呢?最近突然遇到好多游戏用上了某些加固,里面都用上了这个东西,但是这玩意对我来说其实已经算是“玩剩下”的东西了,最早遇到的时候是2016年在androidrepublic的一款游戏上,第一次遇到的时候还感觉非常有意思,但是在恶补了.net的PE结构后顿时索然无趣,因为,这玩意的强度实在太弱了,以至于我当年写的这东西的加密解密程序现在都可以直接用
使用工具:
010 Editor 或其他16进制编辑器
CFF Explorer
dnSpy
以下按照修复顺序介绍可破坏的点
0x1 Nt Header – Signature
固定偏移:0x80-0x83
原始值:0x50 0x45 0x00 0x00
效果:不被识别为PE文件
0x2 Optional Header – NumberOfRvaAndSizes
0x3 MetaData Header – NumberOfStreams
固定值:正常情况下为0x5,某些混淆程序会影响该值
效果:如图
0x4 Storage Stream #~ – Tables Stream – m_rows
所有元素长度为4字节,前两个字节可编辑
如图,删除红框内数据即可正常反编译
0x0 题外话 关于Unity下的DLL应该如何有效的保护
首先,把il转为本地代码(il2cpp)来避免il的易读性和易修改性肯定是最佳的选择,而且转换后能玩的花样也多了起来。如果由于某些原因无法使用il2cpp,混淆也是首选。Unity下因为环境和MonoBehaviour等等的限制,混淆看起来强度不强,其实最主要的是避免使用主流的混淆软件,因为网上大多都有解决方案,把ConfuserEx的源码拖出来改改能达到极好的效果,其中最主要的就是流程混淆和引用代理了,能不能让别人看见流程图就丢回收站就靠它们了。
混淆之后才再考虑加密,由于Unity需要DLL常驻内存读取代码,所以大多数保护直接dump就能搞定,再复杂点根据mono的读取流程分开解密,但是本身mono也是开源的,可以通过对比源码找到相关函数,而且大部分加固使用的都是Hook的形式进行加密,导致扫一遍text段就能很容易找到被Hook的点。其他还有一些奇技淫巧向的保护方式,比如替换opcode,重新定义PE文件结构之类的,这类特征比较明显,照着源码也还是能找到位置的,就是很费时间,总的来说加密在保护代码上并没有混淆有用。
以上只是关于代码的保护,也可以从一定程度上使游戏不被修改,但是真正想不被修改的话,还是需要其他方面的东西。
大神,用你的方法类名函数名反编译出来了,但是方法里面的代码不行,能给我一个提示吗?
我遇到过 方法都被抽成nop了,需要找到重新填回去
请问你知道怎么恢复方法里面的代码吗?
谢谢楼主的分享,我成功的反编译出一部分代码,但是函数代码没有反编译成功,能教一下我吗?
Perfave’s大佬能否出一个《魔灵召唤》的破解教程?
谢谢大佬
P大好像很久没更新文章了
直接检测程序完整性修改就没辙了
某个麻辣土豆(MLTD)动用nProtect APPGuard来搞…
0x4 Storage Stream #~ – Tables Stream – m_rows 在cff里找不到啊,是否需要特殊设置? P大能否发个图给我,多谢!
确实找不到,不知道在哪里,求楼主赐教
我这里有源码52pojie.cn/thread-698450-1-1.html
3月25日更新之后fgo_1.20.0_3_1_bili_253531.apk,失效了,我试着还原,只能还原目录结构,里面代码竟然无法还原,不知道大大有没有办法搞定
大哥,你有没有解决?
大哥,有没有解决的?
解决了吗?我也遇到了!修复后里面没有代码
放度盘了pan.baidu.com/s/1dGd0DJ7
可惜不会用,下了VS一堆错误 ,希望有exe的还原和加密
我也没找到,求教
大佬,幻想神域手游能弄么?解压后,看到的资源都是.png格式,还有什么MD5。美术一个,对程序搞不懂···网上查了一堆加密,都没有什么教程,搞得头晕。。
size 1(dword) #blop
size 1(dword) #guid
该如何修正为正常size/offset的guid 及 blob
这种不仅破坏了而且还自定义了吧 大佬你看这个图,右边是原版,左边是被破坏的https://i.loli.net/2018/01/25/5a69fd7b80205.png
正好最近遇到了这种的加密,androidrepublic。platinmods 。mgame,现在都是这样而且后两者都有对游戏进行了可视化菜单的修改开关。也是最近国外比较流行的形式了
mod menu 很易的, 相对而言也很便利修改者改不同版本及使用者操作
采用u3d自身的样式出来的菜单很丑且不易操控,自定义的多功能菜单platinmods 是做的非常好看且实用的了。
p大能弄个Vainglory(虚荣)的资源提取工具吗?
感谢p大!让我的逆向之路有所指引!