→ twn65w65: 先拆包~再看达成条件比较快~ 04/02 07:18
推 ClawRage: 查程式最完整啦04/02 07:27
→ ClawRage: 一个礼拜被摸透又不是大事04/02 07:28
→ a25785885: 翻程式码04/02 07:32
推 Lex4193: 程式码拆包其实也有看不出来的东西04/02 07:42
推 zxcmoney: 拆程式码容易看出来通常是秘密,但特定操作方式就不容04/02 07:50
→ zxcmoney: 易看出来。04/02 07:50
→ zxcmoney: 错字,秘密(X) 密码(O)04/02 07:51
推 Lex4193: 程式码要看是监控内存还是看原始码,这里面就有差别04/02 07:52
哇,想不到是云端工程师
我先讲程式码好了,商业Game要拿到程式码有两种状况:
1. 你要外泄
2. 是用脚本控制游戏逻辑
所以,不是1你就是要作拆包,拆包从哪里作?
先来作反组译,你有钱一点也许可以用反编译器(hex-rays一套2XXXUSD起跳),不过
大部分专家都还是习惯反组译啦。
反组译以后接着找api call,比方说windows的读档,阿游戏不是windows平台上的
喔?看你有没有平台的SDK资讯或从字串解读,在那边下断点你才知道游戏在哪里
"读取资料"。
读取资料只是读取资料,有游戏会蠢到没加密的吗?(还真的有几款)
开始看游戏到底是哪个加密算法跟找Key,最后才是拿到脚本,恭喜你
欸? 阿如果游戏不是用脚本语言咧
那...你就慢慢看组语吧
至于监控内存,是传统作弊修改器的作法,首先用游戏数值过滤出符合的内存位
址,接着才是修改内存。但你只能透过这个看出资料的变动,对反组译的人来说优
势是可以透过资料变动下断点,你才能从超大量的组语程式码中找出游戏逻辑
这种好找,是基于你确认过的机制,你就是你看到:
我发现当我买东西,我的钱包会被扣款,所以我锁定我钱包内存的位址当他变动时
我中断,看这段逻辑的进入点在哪
你根据你明白的逻辑去推敲组合语言片段,跟你读一堆组合语言知道这片段在干嘛,是
概念完全不同的事。
总之 资料是资料,控制流程的还是逻辑。
就算你的游戏引擎是烂大街的unreal跟unity,好拆也顶多是美术资源好拆,拆出贴图
跟模组来作羞羞的事情很常见。其他东西都cooked过了
老实讲,业界有些工程师连读明码都有障碍了(可能是写也可能是读的人的问题)
游戏逻辑被编译器O2、O3过的东西,你一个礼拜就能摸透
那真ㄉ是神,没话可说