Files
oscp/Necronomicon/Programming/PowerShell/B64-img.md
T
2025-11-21 17:17:42 +01:00

2.0 KiB

Description

These two functions can be used to convert an image to and from base64 format

[SYNTAX]

Encode an Image

img-b64 -img "C:\Users\user\Desktop\image.jpg" -location desk

Decode a File

b64-img -file "C:\Users\user\Desktop\image.jpg" -location desk

The Functions

[img-b64]

This function will convert your image to base64 format

Use the image tag to provide the path of the image you are trying to convert

Using the Location parameter will determine if the file containing the base64 code is saved to the desktop or temp folder

If no location is designated it will save it to the desktop by default

function img-b64 {
[CmdletBinding()]
param (
[Parameter (Mandatory = $True, ValueFromPipeline = $True)]
[string]$img,

[Parameter (Mandatory = $False)]
[ValidateSet('desk', 'temp')]
[string]$location
)

if (!$location) {$location = "desk"}

$loc = switch ( $location )
{
	"desk"  { "$Env:USERPROFILE\Desktop"
	}
	"temp" { "$env:TMP" 
	}
}

[Convert]::ToBase64String((Get-Content -Path $img -Encoding Byte)) >> "$loc\encImage.txt"
}

[b64-img]

This function will convert your base64 encoded file back into an image

Use the file tag to provide the path of the file you are trying to convert

Using the Location parameter will determine if the file containing the base64 code is saved to the desktop or temp folder

If no location is designated it will save it to the desktop by default

function b64-img {
[CmdletBinding()]
param (
[Parameter (Mandatory = $True)]
[string]$file,

[Parameter (Mandatory = $False)]
[ValidateSet('desk', 'temp')]
[string]$location
)

if (!$location) {$location = "desk"}

$loc = switch ( $location )
{
	"desk"  { "$Env:USERPROFILE\Desktop"
	}
	"temp" { "$env:TMP" 
	}
}

Add-Type -AssemblyName System.Drawing
$Base64 = Get-Content -Raw -Path $file
$Image = [Drawing.Bitmap]::FromStream([IO.MemoryStream][Convert]::FromBase64String($Base64))
$Image.Save("$loc\decImage.jpg")
}