找回密码
 立即注册
查看: 163|回复: 0

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 打卡月天数:1
  • 打卡总奖励:30
  • 最近打卡:2023-04-05 21:45:44

923

主题

0

回帖

923

积分

高级会员

积分
923
发表于 2024-12-7 10:22:44 | 显示全部楼层 |阅读模式
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();
        }
    }
}

1.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|白黑论坛 |网站地图

GMT+8, 2025-1-18 15:57 , Processed in 0.014358 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表