Како срушити Firebird сервер
Понекад је неопходно срушити Firebird серверски мотор, да бисте креирали дамп датотеку или проверили поузданост вашег backup/replication плана, или у сврхе отклањања грешака.
Да бисте изазвали пад на Windows-у, можете користити следећи UDF: badudf.dll.7z
Преузмите га, ставите у UDF фолдер и креирајте .bat датотеку са следећим садржајем:
@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
У скрипти, доделите променљивој окружења fbc путању до Firebird фолдера, на пример
c:\Firebird25.in или C:\Firebird30
и ваше стварно superuser корисничко име и лозинку (SYSDBA/masterkey је подразумевано) променљивим usr и psw.
Скрипта ће креирати привремену базу података, регистровати UDF у њој и извршити “killer query”, након чега брише базу података.
Резултат ће бити пад Firebird-а и, ако сте правилно подесили Windows Error Reporting, дамп firebird.exe процеса.
Молимо вас да не региструјете BadUDF.dll у производној бази података!
Такође, обришите га из UDF фолдера након експеримента.