module PWN::Plugins::DAOSQLite3

def self.authors

def self.authors
st.pentest@0dayinc.com>

def self.connect(opts = {})

def self.connect(opts = {})
_path]
ite3::Database.new(db_path)
ts_as_hash = true
e foreign key support for each connection
RAGMA foreign_keys = ON;'
t(
lite3_conn,
nt: sql_enable_fk
dling since sqlite3 gem always returns SQLite3::Database
s or not
n.instance_of?(SQLite3::Database)
or - class should be SQLite3::Database...received:
 #{sqlite3_conn.inspect}
lass = #{sqlite3_conn.class}
 => e

def self.disconnect(opts = {})

def self.disconnect(opts = {})
s[:sqlite3_conn]
onn(sqlite3_conn: sqlite3_conn)

 => e

def self.help

def self.help
{self}.connect(db_path: 'Required - Path of SQLite3 DB File')
l_statement(
sqlite3_conn,
ment: 'SELECT * FROM tn_users WHERE state = ?;',
ms: ['Active']
ct(:sqlite3_conn => sqlite3_conn)

def self.sql_statement(opts = {})

def self.sql_statement(opts = {})
s[:sqlite3_conn]
onn(sqlite3_conn: sqlite3_conn)
 = opts[:prepared_statement] # Can also be leveraged for 'select * from user;'
 opts[:statement_params] # << Array of Params
tement_params => #{statement_params.class}. Pass as an Array object" unless statement_params.instance_of?(Array) || statement_params.nil?
ams.nil?
conn.execute(prepared_statement)
conn.execute(prepared_statement, statement_params)
syException
n Use - Retrying...'
 => e

def self.validate_sqlite3_conn(opts = {})

def self.validate_sqlite3_conn(opts = {})
[:sqlite3_conn]
id sqlite3_conn Object #{sqlite3_conn}" unless sqlite3_conn.instance_of?(SQLite3::Database)
=> e