my $secret="(binary garbage here)";
sub checkSecurity;
sub decodeSecret;
sub reencode;
if (checkSecurity()) { # <--- bypass the function call or make the function return TRUE
my $plaintext=decodeSecret($secret);
# breakpoint here
say $plaintext;
# or, if you like:
say reencode($plaintext);
} else {
die "Insecure condition found, won't tell you the secret!\n";
}
####
package DBIspy;
use strict;
use warnings;
use feature 'say';
use DBI;
no warnings 'redefine';
sub DBI::connect
{
say for @_;
die 'BROKEN';
}
1;
##
##
> perl -MDBIspy -E 'use DBI; DBI->connect("dbi:SQLite:","user","password")'
DBI
dbi:SQLite:
user
password
BROKEN at DBIspy.pm line 12.
>