Skip to the content

How it works

What it can’t see

slowship reads code; it never runs it. That’s what makes it safe, and it’s also its limit. Here is everything it knows it can miss.

No findings is not proof of nothing. The report says so too, and lists these blind spots for every watch.

#Code that only exists while running

Code fetched or built while a program runs is invisible to a reader. slowship reports the capability, like downloads and runs code, but it can’t see the payload.

#Compiled code

Compiled code isn’t decompiled. With REA, Go and Rust files are read as far as their build record: what they were built from, not what they do. .NET is read further, method by method, unless an assembly is too big for REA’s member reader (PowerShell’s 13 MB engine is). C and C++ leave no record, so those are only named.

#Big Electron apps

REA’s map of an Electron app is slow on very big builds: on VS Code’s 6,187 files it got through 156 in 13 minutes. slowship gives it 5 minutes and says so when it gives up. A packaged app gets its fuses read, but its app.asar isn’t mapped; point --app at the unpacked build for the IPC map.

In your build, only IPC handlers written inline are searched for what they do. A handler that hands off to a function elsewhere isn’t followed.

#Languages it reads lightly, or not yet

#Prompt injection

Instructions in SKILL.md are checked for four narrow things: hiding something from you, ignoring other instructions, downloading and running a script, and sending your data somewhere. Other prompt injection passes unnoticed. On the malware benchmark, attacks written as plain English were the biggest single group of misses.

#Big files

Files over 2 MB, usually generated bundles, are skipped and named in the report.

Suggest a change to this page

Esc