Jak způsobit pád serveru Firebird
Někdy je nutné způsobit pád Firebird serverového enginu, vytvořit dump soubor nebo ověřit spolehlivost vašeho zálohovacího/replikačního schématu, případně pro účely ladění.
Pro vyvolání pádu v systému Windows můžete použít následující UDF: badudf.dll.7z
Stáhněte si ji, umístěte do složky UDF a vytvořte soubor .bat s následujícím obsahem:
@echo off
setlocal enabledelayedexpansion enableextensions
set fbc=C:\HQBird25.in
set dbnm=%~dp0tmptest.fdb.tmp
set usr=SYSDBA
set psw=masterkey
del 2>nul
echo create database 'localhost:!dbnm!' user '!usr!' password '!psw!'; | "!fbc!\isql.exe" -q -z
(
echo set echo on;
echo declare external function crashme
echo returns int by value
echo entry_point 'crashme' module_name 'badudf';
echo commit;
echo show function;
echo select crashme(^) from rdb$database;
) > %~dp0tmptest.sql.tmp
"!fbc!\isql.exe" ^
localhost:!dbnm! ^
-q -i %~dp0tmptest.sql.tmp ^
-user !usr! -pas !psw!
del !dbnm!
del %~dp0tmptest.sql.tmp
Ve skriptu přiřaďte do proměnné prostředí fbc cestu ke složce Firebird, například
c:\Firebird25.in nebo C:\Firebird30
a vaše skutečné přihlašovací jméno a heslo superuživatele (SYSDBA/masterkey je výchozí) do proměnných usr a psw.
Skript vytvoří dočasnou databázi, zaregistruje v ní UDF a spustí „killer dotaz", poté databázi smaže.
Výsledkem bude pád Firebirdu, a pokud máte správně nastaveno Hlášení chyb systému Windows, také dump procesu firebird.exe.
Prosím, neregistrujte BadUDF.dll v produkční databázi!
Také ji po experimentu odstraňte ze složky UDF.