基于 Windows Task Scheduler 的国服自动卫月注入


  • Moderators

    基于Windows Task Scheduler的国服自动卫月注入

    鉴于TitleEdit插件只有在实现了开游戏后自动注入卫月才有一个比较好的开挂使用体验,研究了一下Windows自带的Task Scheduler来实现自动注入。

    由于我是英文系统,本文内大部分所有的截图选项都是英文,大家自行理解意思。

    步骤

    启动进程记录功能

    • 在开始菜单搜索或直接Win+R运行secpol.msc
    • 找到 Local Policies/Audit Policy本地策略/审核策略
    • 双击 Audit process tracking审核进程跟踪)选中 Success成功

    现在,如果您启动任何应用程序,那么如果您在事件查看器/安全日志中查看,则每次启动应用程序时都会看到“进程创建”事件4688。

    设定触发计划任务

    • 打开 Task Scheduler 新建任务,起个名字,选中 Run with highest privileges使用最高权限运行),设定改为 Windows 10。
      7e3d5293-52f8-4453-ab51-61b5d157348a-image.png
    • 在Trigger里新建触发器。f97b5377-038e-4b97-bdc7-d0f4ed53c24e-image.png
    • 按图选择触发类型,自定义触发条件,点击 New Event Filter 进入事件过滤器。ee9000e9-c036-40e6-a027-8760bc146b26-image.png
    • 分别选择如下的几个事件类别&过滤条件(似乎不改直接进入下一步也可)。244511ac-f974-4962-a715-76789d245f17-image.png
    • 进入XML页面,勾上手动填写XML,填入如下代码。acecd7a1-3621-44b3-b951-d192d5e5b44e-image.png
    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13312 and (band(Keywords,9007199254740992)) and (EventID=4688)]]
        and 
         *[EventData[Data[@Name='NewProcessName'] and (Data='F:\Games\SDO\FFXIV\game\ffxiv_dx11.exe')]]
         </Select>
      </Query>
    </QueryList>
    

    F:\Games\SDO\FFXIV\game\ffxiv_dx11.exe 是游戏本体exe所在的位置,请根据自己电脑上的位置自行更改。

    • 一路OK,返回到这个界面,切换到 Actions 选项卡,点击 New 新建一个动作。eeb1c147-9df7-489e-874f-bcade52fb403-image.png

    • 动作界面如图选择,并按照如下说明填写参数:324c2ce0-dd2b-4863-877d-7c2caafd7eee-image.png
      请注意这些参数因人而异,请不要照搬此处的举例,而是按照实际情况填写

      • 选择程序:请选择Dalamud根目录下的 Dalamud.Injector.exe 程序,比如我的就是 D:\Code\Git\_Dalamud_\Dalamud\Dalamud\bin\Release\Dalamud.Injector.exe
      • 运行参数:这个需要从通过ps1脚本手动注入时,遗留下来的最后两行参数获取,举例为我手动注入后留下的 Powershell 显示为 7376c8fa-7cb2-4e61-8fd4-2239f7d1ea98-image.png 那么我就需要在这里填写-1 eyJXb3JraW5nRGlyZWN0b3J5IjpudWxsLCJDb25maWd1cmF0aW9uUGF0aCI6IkQ6XFxDb2RlXFxHaXRcXF9EYWxhbXVkX1xcRGFsYW11ZFxcRGFsYW11ZFxcYmluXFxSZWxlYXNlXFxYSVZMYXVuY2hlclxcZGFsYW11ZENvbmZpZy5qc29uIiwiUGx1Z2luRGlyZWN0b3J5IjoiRDpcXENvZGVcXEdpdFxcX0RhbGFtdWRfXFxEYWxhbXVkXFxEYWxhbXVkXFxiaW5cXFJlbGVhc2VcXFhJVkxhdW5jaGVyXFxpbnN0YWxsZWRQbHVnaW5zIiwiRGVmYXVsdFBsdWdpbkRpcmVjdG9yeSI6IkQ6XFxDb2RlXFxHaXRcXF9EYWxhbXVkX1xcRGFsYW11ZFxcRGFsYW11ZFxcYmluXFxSZWxlYXNlXFxYSVZMYXVuY2hlclxcZGV2UGx1Z2lucyIsIkxhbmd1YWdlIjo0LCJHYW1lVmVyc2lvbiI6IjIwMjAuMDcuMTYuMDAwMC4wMDAwIn0= 其格式应当为-1<空格><一堆乱码> 千万注意-1和乱码之间的空格必须要有。
      • 运行地址:即 Dalamud 根目录,比如我的是 D:\Code\Git\_Dalamud_\Dalamud\Dalamud\bin\Release\ (正是第一个参数的Dalamud.Injector.exe所在的目录)
    • 如果这种方式比较复杂,也可以采取 国服启动器Dalamud_CN_cli.exe

      • 选择程序:请选择Dalamud根目录下的 Dalamud_CN_cli.exe 程序,比如我的就是 D:\Code\Git\_Dalamud_\Dalamud\Dalamud\bin\Release\Dalamud_CN_cli.exe
      • 运行参数:留空即可
      • 运行地址:即 Dalamud_CN_cli.exe 所在目录,比如我的是 D:\Code\Git\_Dalamud_\Dalamud\Dalamud\bin\Release\ (正是第一个参数的Dalamud_CN_cli.exe所在的目录)
    • 填写完毕后一路OK,开游戏测试即可。

    不支持多开,如果打开了多个客户端仍需要手动注入。

  • Moderators

    占楼等一个中文系统的对应名词表()


  • Task Scheduler = 任务计划程序
    Run with highest privileges = 使用最高权限运行
    Trigger = 触发器
    On an event = 发生事件时
    【分别选择如下的几个事件类别&过滤条件】这里确实不用改
    Edit query manually = 手动编辑查询
    Actions = 操作
    Start a program = 启动程序


  • 要支持多开的话,可以用 Dalamud_CN_cli 1.1.0.2以上版本,编辑计划任务导出的xml,在<EventTrigger>里面加上

     <ValueQueries>
       <Value name="PID">Event/EventData/Data[@Name="NewProcessId"]</Value>   
     </ValueQueries>
    

    就可以在启动参数里面填写$(PID)(原本是留空的)从而实现多开了


  • 3f314bf2-d96d-4997-bc29-af4726350ee0-image.png
    补个 启动进程记录功能 的图