2.8 KiB
title, parent, nav_order
| title | parent | nav_order |
|---|---|---|
| De-Sanitize DCS | Advanced | 98 |
De-Sanitize the DCS scripting environment
{: .no_toc }
- Table of contents {:toc}
De-Sanitize is the a modification performed by the user which disables some security features of DCS. Without de-sanitizing not all functions of Moose are available. Let's take a closer look and explain the details:
- In the File-Explorer, navigate to your DCS main installation folder.
- Navigate to the folder
Scriptsand open the fileMissionScripting.luawith a good editor like Notepad++{:target="_blank"}.
The original file should look like this:
--Initialization script for the Mission lua Environment (SSE)
dofile('Scripts/ScriptingSystem.lua')
-- Sanitize Mission Scripting environment
-- This makes unavailable some unsecure functions.
-- Mission downloaded from server to client may contain potentialy harmful lua code
-- that may use these functions.
-- You can remove the code below and make availble these functions at your own risk.
local function sanitizeModule(name)
_G[name] = nil
package.loaded[name] = nil
end
do
sanitizeModule('os')
sanitizeModule('io')
sanitizeModule('lfs')
_G['require'] = nil
_G['loadlib'] = nil
_G['package'] = nil
end
In line 17, 18 and 19 the method sanitizeModule disables the modules os, io and lfs.
{: .warning }
This is a security feature to avoid harmfull actions to be executed from inside a mission.
Disable this on your own risk!
If the lines will be disabled the lua code inside of missions can use the following functionality again:
-
os(at line 17):- Execution of commands from the operation system is allowed again. This is needed by some Classes when using Text-To-Speech with SRS{:target="_blank"}. But in theory it can also run harmful commands.
-
ioandlfs(at line 18 & 19):- Different libraries to access files on your hard disk or do other io operations. This is needed by some clases if you want to save and/or read data. Like persistance for CSAR. But it may be abused to access or modify sensitive files owned by the user.
If you put two dashes (--) in front of each of the lines 17 - 19 the
protection is disabled and the lower part of the file should look this:
do
--sanitizeModule('os')
--sanitizeModule('io')
--sanitizeModule('lfs')
_G['require'] = nil
_G['loadlib'] = nil
_G['package'] = nil
end
Save the file and it will enable the DCS Lua sandbox to access stuff on your computer.
{: .note }
After each update of DCS you need to repeat this because each update will overwrite this file by default.