大家都知道,目前VBL的特殊码是变动的,这非常不方便,那么有没有办法取得固定的特殊码呢?
本着研究的心态,我研究了下VBL的代码。其他用unity制作的游戏大多使用了mono.dll的函数mono_string_to_utf8或mono_string_to_utf16,大致的思路只要hook这个位置就能解决问题。
然而这个游戏加密做的太好,文本部分完全不使用这些函数,仔细研究了一下游戏的代码,文本部分应该是通过mono_runtime_invoke函数来实现的。而这个函数类似壳的原理,会在运行时才生成代码,而这部分代码位置是随机的,所以导致特殊码的位置也是随机的。
结论,这不是目前的文本提取工具特殊码级别能解决的问题。要解决它只有两个办法,一是直接要破解掉它的壳得到新的exe,这个一劳永逸但是比较复杂;二是在游戏运行时通过内存补丁破解,这相对简单,我将采用这种方法解决问题,从而得到固定的特殊码。
本着研究的心态,我研究了下VBL的代码。其他用unity制作的游戏大多使用了mono.dll的函数mono_string_to_utf8或mono_string_to_utf16,大致的思路只要hook这个位置就能解决问题。
然而这个游戏加密做的太好,文本部分完全不使用这些函数,仔细研究了一下游戏的代码,文本部分应该是通过mono_runtime_invoke函数来实现的。而这个函数类似壳的原理,会在运行时才生成代码,而这部分代码位置是随机的,所以导致特殊码的位置也是随机的。
结论,这不是目前的文本提取工具特殊码级别能解决的问题。要解决它只有两个办法,一是直接要破解掉它的壳得到新的exe,这个一劳永逸但是比较复杂;二是在游戏运行时通过内存补丁破解,这相对简单,我将采用这种方法解决问题,从而得到固定的特殊码。








