武林外传书生931端,以及EL编辑器,以及如何进行EL分析的分享

1、最近在玩武林外传931端,花了两天时间做了一个EL编辑器,但是没有汉化,文件名 [武林外传EL编辑器]

2、另外 [ElementStructReader.7z] 是我从0到1分析出EL文件结构的源代码,花了两天时间研究完,有兴趣的同学可以去看看。。

https://pan.baidu.com/s/1NLNOwKhFhRxH8C0wvT7nRA

提取码:q4js

部分代码分享:

// 提示1 安装DGB调试器参考

//
https://blog.csdn.net/ksws0292756/article/details/78505240

// 提示2 使用ptype出现 struct {…} taks_matters[4];

// 这时候需要使用Ida Pro的结构体[Structures]Tab中层层搜索

// 如果结构体[Structures]Tab中没有可以去[Local Types]中搜索

// 提示3 程序自动获取的读取结构的顺序未必是正确的

// 这时候需要使用Ida Pro去查找[elementdataman::load_data(char const*)]方法,去确定正确的顺序

namespace ElementStructReader

{

    public class Program

    {

        static void Main(string[] args)

        {

            //Console.WriteLine(“请选择一个任务”);

            //Console.WriteLine(“1. 从Gdb读取最原始的信息”);

            //Console.WriteLine(“2. 从Gdb读取所有结构信息”);

            //Console.WriteLine(“3. 从数据加载代码文件获取正确的数据结构顺序”);

            //Console.WriteLine(“4. 从修正后的数据结构中获取信息并生成新的数据结构文件”);

            //Console.WriteLine(“5. 读取Elements.data数据文件并生成新的文件(武林外传)”);

            //Console.WriteLine(“6. 读取Elements.data数据文件并生成新的文件(御剑情缘)”);

            //Console.WriteLine(“7. 将新的数据结构文件转换为标准的配置文件”);

            //ConsoleKeyInfo consoleKeyInfo = Console.ReadKey();

            //switch (consoleKeyInfo.KeyChar)

            //{

            //    case ‘1’:

            //ElementStructFromGdb elementStructFromGdb = new ElementStructFromGdb();

            //elementStructFromGdb.Load();

            //        break;

            //    case ‘2’:

            //GetAllTypesFromGdb getAllTypesFromGdb = new GetAllTypesFromGdb();

            //getAllTypesFromGdb.Load();

            //        break;

            //    case ‘3’:

            //LoadCodeAnalysis loadCodeAnalysis = new LoadCodeAnalysis();

            //loadCodeAnalysis.Load();

            //        break;

            //    case ‘4’:

            //ElementStructFromFixed elementStructFromFixed = new ElementStructFromFixed();

            //elementStructFromFixed.Load();

            //        break;

            //    case ‘5’:

            //ElementCollection elementCollection = new ElementCollection();

            //elementCollection.Load();

            //        break;

            //    case ‘6’:

            //ElementCollection2 elementCollection2 = new ElementCollection2();

            //elementCollection2.Load();

            //        break;

            //    case ‘7’:

            ConfigurationConverter configurationConverter = new ConfigurationConverter();

            configurationConverter.Load();

            //        break;

            //    default:

            //        break;

            //}

            Console.WriteLine(“按任意键继续”);

            Console.ReadKey();

        }

    }

}

请登录后发表评论

    没有回复内容