sd9918 发表于 2023-11-30 15:25:41

8年了我终于摸清了magic_Linux32和o文件!!

本帖最后由 sd9918 于 2024-12-24 09:25 编辑

标题有点夸张,从8年前我就开始关注问道服务端的原理了,直到最近我才有一点点成果,远远算不上摸清。现在基本了解了o文件的结构和magic_Linux32的基本原理,所以我可以构造如下代码让magic_Linux32运行我的源码,源码里调用了PAK中的其他函数。
有感兴趣的一起学习,需要一定的逆向基础。



---------------------- 2024-12-24更新 ---------------------- 没想到有这么多伙伴也有兴趣研究问道服务端背后的原理,我这里简单说下我当时的研究思路但因为很久没接触了可能有不准确的地方。
相关的源代码肯定是不会放的,不仅是自己和朋友的心血也是怕引来不必要的麻烦。
正文:
o文件用编辑器使用十六进制模式打开可以看出来不是一般的c文件编译中间产物o文件,而是一种未知的二进制文件。
通过反编译magic_linux,可以看出由于是服务端文件基本没有做混淆,很利于我们研究背后原理。
通过一步步的调试,发现有个load_binary函数用来解析o文件,由于我自身有一定的编程基础,所以在这里大胆猜测o文件其实是一种光宇自己的脚本语言。
*****这里是漫长枯燥的调试过程,具体细节忘记了*****
最后大概梳理完思路后,通过hook的方式把o文件输出成了汇编形式的代码,虽然没做到修改o文件但是已经能读懂逻辑了。

彩蛋:
其实magic_linux32自带了反编译的函数,用心去看去找吧,就在启动函数那块。

zzjzzj 发表于 2023-12-6 20:31:16

论坛不能没有像楼主这样的人才啊!我会一直支持GM问道单机论坛。

w346381843 发表于 2023-12-7 00:28:06

O文件现阶段也就该些常量和调用其他O文件仅此而已可定制空间太小了,要是能自己写源码调用游戏函数的话那能实现的功能就很多了,可以一起研究下

ppp7758520 发表于 2023-12-9 03:40:17

可以加个好友吗

zhb123 发表于 2024-1-19 23:57:22


楼主太厉害了!楼主,I*老*虎*U!我觉得GM问道单机论坛真是个好地方!

sd9918 发表于 2024-1-20 10:39:45

有兴趣的可以加我Q452624943,备注gmwendao
页: [1]
查看完整版本: 8年了我终于摸清了magic_Linux32和o文件!!