Tato stránka byla strojově přeložena. Přečtěte si anglický originál. English

Knihovna IBSurgeon

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:

Code
@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.