Skip to content

Instantly share code, notes, and snippets.

@jesux
Last active November 19, 2025 21:24
Show Gist options
  • Select an option

  • Save jesux/0c17efc9985686ecc9ff5b4840c0c2ad to your computer and use it in GitHub Desktop.

Select an option

Save jesux/0c17efc9985686ecc9ff5b4840c0c2ad to your computer and use it in GitHub Desktop.
Hollow Knight Silksong NoDeath DLL Patch [1.0.28650] [1.0.28714] [1.0.29315]
# NoDie Patch Script
# Este script modifica la libreria "Assembly-CSharp.dll" del juego evitando que podamos morir al recibir daño
# Si se vuelve a ejecutar el script, se deshace la modificación
# Para ejecutar el script: powershell -ep Bypass C:\ruta\NoDie-Silksong.ps1
# Ruta de la libreria "Assembly-CSharp.dll"
$file = "C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight Silksong\Hollow Knight Silksong_Data\Managed\Assembly-CSharp.dll"
$bytes = [System.IO.File]::ReadAllBytes($file)
# Texto "NoDeath"
$NoDeathText = 0x10, 0x0a, 0x00, 0x4e, 0x00, 0x6f, 0x00, 0x44, 0x00, 0x65, 0x00, 0x61, 0x00, 0x74, 0x00, 0x68, 0x00, 0x00, 0x22
$OriginalText = 0x0f, 0x20, 0x00, 0x28, 0x00, 0x44, 0x00, 0x65, 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x29, 0x00, 0x00, 0x23, 0x0a, 0x00
# Parcheo para que muestre el texto
$showText = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
# Se identifica la versión del juego
$version_1_0_28650 = [System.Text.Encoding]::ASCII.GetString($bytes[0x5da3e0..0x5da3e9])
$version_1_0_28714 = [System.Text.Encoding]::ASCII.GetString($bytes[0x5da3e0..0x5da3e9])
$version_1_0_29315 = [System.Text.Encoding]::ASCII.GetString($bytes[0x578f42..0x578f53])
if ($version_1_0_28650 -eq "1.0.28650") {
Write-Output "Version: $version_1_0_28650"
$offsetTakeHealth = 0x0b2d72
$offsetText = 0x574545
$offsetShowText = 0x0eac28
$noShowText = 0x28, 0xa9, 0x23, 0x00, 0x06, 0x2c, 0x0c
} elseif ($version_1_0_28714 -eq "1.0.28714") {
Write-Output "Version: $version_1_0_28714"
$offsetTakeHealth = 0x0b2d72
$offsetText = 0x574545
$offsetShowText = 0x0eac28
$noShowText = 0x28, 0xa9, 0x23, 0x00, 0x06, 0x2c, 0x0c
} elseif ($version_1_0_29315 -eq "1.0.29315") {
Write-Output "Version: $version_1_0_29315"
$offsetTakeHealth = 0x0b3ef2
$offsetText = 0x57ce9b
$offsetShowText = 0xebf70
$noShowText = 0x28, 0xc4, 0x23, 0x00, 0x06, 0x2c, 0x0c
} else {
Write-Output "[-] Failed. Version not supported"
return
}
# Se modifica el metodo "TakeHealth" para que la salud minima pase de 0 (0x16) a 1 (0x17)
if ($bytes[$offsetTakeHealth] -eq 0x16) {
Write-Output "[+] Enabling NoDie"
$bytes[$offsetTakeHealth] = 0x17
# Se añade el texto "NoDeath"
foreach ($byte in $NoDeathText) {
$bytes[$offsetText++] = $byte
}
foreach ($byte in $showText) {
$bytes[$offsetShowText++] = $byte
}
$bytes = [System.IO.File]::WriteAllBytes($file, $bytes)
} elseif ($bytes[$offsetTakeHealth] -eq 0x17) {
Write-Output "[+] Disabling NoDie"
$bytes[$offsetTakeHealth] = 0x16
# Se elimina el texto "NoDeath"
foreach ($byte in $OriginalText) {
$bytes[$offsetText++] = $byte
}
foreach ($byte in $noShowText) {
$bytes[$offsetShowText++] = $byte
}
$bytes = [System.IO.File]::WriteAllBytes($file, $bytes)
} else {
Write-Output "[-] Failed. Wrong version?"
}
pause
@jesux
Copy link
Author

jesux commented Sep 27, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment