Call: +44 (0)7759 277220 Call
unwrap.sql
Download SQL script

unwrap.sql

create or replace procedure unwrap(aname VARCHAR2)
is
    root sys.pidl.ptnod;
    status   sys.pidl.ub4;
    a_unit_b sys.pidl.ptnod;
    a_d sys.pidl.ptnod;
    a_header sys.pidl.ptnod;
    a_block sys.pidl.ptnod;
    di_proc varchar2(32);
    as_p sys.pidl.ptnod;
    param_list sys.pidl.ptnod;
begin

	dbms_output.put_line('Start up');
	sys.diutil.get_diana(
		aname, NULL, NULL,
		NULL, status, root,
		1);
	
	if (status <> sys.diutil.s_ok) then
		sys.dbms_output.put_line('Error: couldn''t find diana; status:  ' ||
                           to_char(status));
		raise sys.diutil.e_subpNotFound;
	end if;
	-- 
	-- get the root node
	--
	dbms_output.put_line('Root Node :'||root);
	dbms_output.put_line('Root code (hex) :'||pidl.ptkin(root));
	dbms_output.put_line('Root Type :'||pidl.ptattnnm(pidl.ptkin(root)));
	dbms_output.put_line('--');
	--
	-- get the DIANA for the body
	--
	a_unit_b := diana.a_unit_b(root);
	dbms_output.put_line('A_UNIT_B Node :'||a_unit_b);
	dbms_output.put_line('A_UNIT_B Type :'||pidl.ptattnnm(pidl.ptkin(a_unit_b)));
	dbms_output.put_line('A_UNIT_B code (hex) :'||pidl.ptkin(a_unit_b));
	dbms_output.put_line('--');
	--
	-- get the DIANA for the procedure name, parameters and block
	--
	a_d := diana.a_d_(a_unit_b);
	dbms_output.put_line('A_D_ Node :'||a_d);
	dbms_output.put_line('A_D_ Type :'||pidl.ptattnnm(pidl.ptkin(a_d)));
	dbms_output.put_line('A_D_ code (hex) :'||pidl.ptkin(a_d));
	dbms_output.put_line('--');
  	a_header := diana.a_header(a_unit_b);
	dbms_output.put_line('A_HEADER Node :'||a_header);
	dbms_output.put_line('A_HEADER Type :'||pidl.ptattnnm(pidl.ptkin(a_header)));
	dbms_output.put_line('A_HEADER code (hex) :'||pidl.ptkin(a_header));
	dbms_output.put_line('--');
  	a_block := diana.a_block_(a_unit_b);
	dbms_output.put_line('A_BLOCK Node :'||a_block);
	dbms_output.put_line('A_BLOCK Type :'||pidl.ptattnnm(pidl.ptkin(a_block)));
	dbms_output.put_line('A_BLOCK code (hex) :'||pidl.ptkin(a_block));  	
	dbms_output.put_line('--');
	--
	-- read the symbol name for the procedure
	--
	di_proc := diana.l_symrep(a_d);
	dbms_output.put_line('L_SYMREP :'||di_proc);
	--
	-- get parameters
	-- PD5(4) : D_P_: [
  	-- SRCPOS: row 1 col 1
  	-- AS_P_: PD6(4) : DS_PARAM: [...]
  	-- S_OPERAT: ra: '0'
  	-- A_P_IFC: 
  	-- A_UP: PD3(4) : 
	-- ]
	-- PD6(4) : DS_PARAM: [
	--   SRCPOS: row 1 col 1
  	-- AS_LIST: 
	-- ]
	--
	as_p := diana.as_p_(a_header);
	dbms_output.put_line('AS_P Node :'||as_p);
	dbms_output.put_line('AS_P Type :'||pidl.ptattnnm(pidl.ptkin(as_p)));
	dbms_output.put_line('AS_P code (hex) :'||pidl.ptkin(as_p));  	
	dbms_output.put_line('--');
	param_list := diana.as_list(as_p);
	dbms_output.put_line('AS_LIST Node :'||param_list);
	dbms_output.put_line('AS_LIST Type :'||pidl.ptattnnm(pidl.ptkin(param_list)));
	dbms_output.put_line('AS_LIST code (hex) :'||pidl.ptkin(param_list));  	
	dbms_output.put_line('--');
	--
end unwrap;
/ 


  • PFCLScan PFCLScan

    Simply connect PFCLScan to your Oracle database and it will automatically discover the security issues that could make your Oracle database vulnerable to attack and to the potential loss of your data.

  • PFCL Obfuscate PFCLObfuscate

    PFCLObfuscate is the only tool available that can automatically add license controls to your PL/SQL code. PFCLObfuscate protects your Intellectual Property invested in your PL/SQL database code.

  • PFCLCode PFCLCode

    PFCLCode is a tool to allow you to analyse your PL/SQL code for many different types of security issues. PFCLCode gives you a detailed review and reports and includes a powerful colour syntax highlighting code editor

  • PFCLForensics PFCLForensics

    PFCLForensics is the only tool available to allow you to do a detailed live response of a breached Oracle database and to then go on and do a detailed forensic analysis of the data gathered.

  • PFCLATK PFCLATK

    PFCLATK is a toolkit that allows detailed pre-defined policy driven audit trails for your Oracle database. The toolkit also provides for a centralised audit trail and centralised activity reporting

  • PFCLCookie PFCLCookie

    PFCLCookie is a useful tool to use to audit your websites for tracking cookies. Scan websites in a natural way using powerful browser driven scanner

  • PFCLSEO PFCLSEO

    We offer a number of web based services such as cookie audits, improving website ranking in search engines, locating broken links and hosting email and websites

  • PFCL Training PFCLTraining

    PFCLTraining is a set of expert training classes for you, aimed at teaching how to audit your own Oracle database, design audit trails, secure code in PL/SQL and secure and lock down your Oracle database.

  • PFCL Services PFCLServices

    Choose PFCLServices to add PeteFinnigan.com Ltd to your team for your Oracle Security needs. We are experts in performing detailed security audits, data security design work and policy creation

  • PFCLConsulting PFCLConsulting

    Choose PFCLConsulting to ask PeteFinnigan.com Limited to set up and use our products on your behalf

  • PFCLCustom PFCLCustom

    All of our software products can be customised at a number of levels. Choose this to see how our products can be part of your products and services

  • PFCLCloud PFCLCloud

    Private cloud, public cloud, hybrid cloud or no cloud. Learn how all of our services, trainings and products will work in the cloud

  • PFCLUserRights PFCLUserRights

    PFCLUserRights allows you to create a very detailed view of database users rights. The focus of the reports is to allow you to decide what privileges and accounts to keep and which to remove.

  • PFCLSTK PFCLSTK

    PFCLSTK is a toolkit application that allows you to provide database security easily to an existing database. PFCLSTK is a policy driven toolkit of PL/SQL that creates your security

  • PFCLSFTK PFCLSFTK

    PFCLSFTK is a toolkit that solves the problem of securing third party applications written in PL/SQL. It does this by creating a thin layer between the application and database and this traps SQL Injection attempts. This is a static firewall.

  • Products We resell PFCLReselling

    PeteFinnigan.com Limited has partnered with a small number of relevant companies to resell their products where they enhance or compliment what we do