某捕鱼游戏PC端Assembly-CSharp.dll的解密U3D
本帖最后由 wojiaoz71 于 2018-2-8 20:30 编辑首先运行游戏主程序,附加上去,跳到mono.dll,然后查找当前模块中的名称。在mono_image_open_from_data_with_name处下个断点。
发现游戏并不会在这个位置断下。因为已经执行了这个函数。我们不要取消断点,关闭游戏,OD直接载入游戏的主程序。运行起来。发现游戏断下了。运行游戏直到堆栈出现Assembly-CSharp.dll
使用ExeinfoPE查看Assembly-CSharp.dll文件大小,和入口字节。
继续OD分析。这里出现了文件名,原始的大小和文件数据。
继续向下跟。发现经过这个CALL,dll就被解密了,向下发现了解密后文件的大小。
这样就可以dump出来解密后的dll了。然后我们把解密后的dll直接替换发现进入游戏黑屏,难道修改完毕之后必须要加密回去吗?
发现mono_image_open_from_data_with_name这个位置载入的也有未加密的文件。那我们可不可以跳过呢。
OD重新载入这个EXE分析。经过分析发现了一个CALL通过文件名对比是否DLL需要解密。
那我们直接把这个跳转改成jmp,也就是所有都不经过解密。保存修改
替换原本的mono.dll再重新打开一下游戏。OK! 来夜 发表于 2020-6-26 10:19
楼主有成品嘛?单机无限biubiubiu~bongbongbong的那种,单纯的体验快感,谢谢了!授人与渔,可是我不会钓鱼 ...
我竟然看懂了{:1_918:} 楼主有成品嘛?单机无限biubiubiu~bongbongbong的那种,单纯的体验快感,谢谢了!授人与渔,可是我不会钓鱼啊,这个太深了{:301_1008:} 谢谢分享方法 水平有限,看不懂,能否解释解释! 等我慢慢研究! 只是来看看技术有限 谢谢分享 留名慢慢研究
水平有限,看不懂,能否解释解释! 楼主辛苦了 感谢分享!
谢谢分享