actboy168 / lua-debug

Lua Debug Adapter for Visual Studio Code
MIT License
439 stars 95 forks source link

特征码模块 #233

Open fesily opened 1 year ago

fesily commented 1 year ago

配置文件:

{
   "version":"5.4", //强制版本号
   "module":"path", //指定哪个模块为lua
   "functions":{ // 函数的特征码
      "function_name":{
         "start_offset":0, //搜索模块的起始地址子节偏移
         "end_offset":0, // 搜索模块的结束地址子节偏移
         "pattern":"ff ?? ff", //特征码
         "pattern_offset":0, //函数相对特征码子节偏移
         "hit_offset":0 //多个特征码匹配下确定是哪个
      }
   }
}

特征码扫描 在特定地址范围内扫描特征码,hit_offset决定哪个匹配命中


luadebug导入表修复

修复函数获取顺序

  1. 特征码函数
  2. 自带的lua库,这个假设待定函数没有被修改

特征码自动生成模块

扫描动态库luadebug和launch生成所需的导入表,然后自动扫描对应的lua模块生成特征码库

luadebug使用读取导入表中lua*项 launcher使用扫描静态字符串中lua*的合法字符串

actboy168 commented 1 year ago

看起来又是一个很大的patch。我打算先做一个版本更新,然后你这里面的内容我觉得可以拆分一个功能出来。launcher读配置,配置只需要一项;然后加载调试器。

{
   "version":"5.4",
}