Scripting with Deno
A really cool capability of artemis
is it contains an embedded JavaScript
runtime via Deno. Deno is V8 based JavaScript
runtime
written in Rust. By importing the deno_core
crate this allows us to create our
own JavaScript
runtime geared specifically for forensics and IR!
For example, the Rust artemis
function get_registry(registry_file_path)
can
be used to parse a provided Registry
file on disk. By registering this
function with the Deno runtime we can call this function directly from
JavaScript
! In addition to JavaScript
,
TypeScript is also supported by Deno!
To summarize:
- We can create a script using
TypeScript
andDeno
- Compile
TypeScript
toJavaScript
- Execute
JavaScript
usingartemis
Deno image from https://deno.land/artwork. The image is MIT licensed. Checkout other artwork by the author at https://hashrock.studio.site/
Prequisites for Scripting.
- Deno
- A text-editor or IDE that supports Deno. VSCodium and VSCode have been tested
- Deno language server extension. The extension in the VSCodium and VSCode marketplaces has been tested.
- A
TypeScript
toJavaScript
bundler. There are multiple options:Deno
includes a builtin bundler however it is schedule for depreciation. (But it still works)- esbuild Deno loader. Will
require a simple build script in order to bundle our
artemis
script