o
    j                     @   s   d dl mZ d dl mZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ dd Zd	d
 Zdd ZedkrDe  ed dS dS )    )division)print_functionN)logger)version)ESENT_DBc                 C   s   |  |}|  d S )N)getPagedump)esepageNumdata r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/../../../bin/esentutl.pydumpPage!   s   
r   c                 C   s   |  |}|d u rtd|  d S d}td|  	 z| |}W n ty7   tjddd td Y qw |d u r>d S td|  t| D ]}|| d ur\td	||| f  qJ|d7 }q)
Nz Can"t get a cursor for table: %s   z	Table: %sTz
Exception:)exc_infoz5Error while calling getNextRow(), trying the next onez*** %dz	%-30s: %r)		openTableloggingerrorprint
getNextRow	Exceptiondebuglistkeys)r	   	tableNamecursorirecordjr   r   r   exportTable%   s.   

r   c               
   C   s  t tj tjddd} | jdddd | jdd	d
d | jdd	dd | jdddd | jddd}|jddd}|jddddd |jddd |jddd}|jddddd tt	j
dkrj|   t	d |  }t|j|j t|j}z3|j dkr|  n%|j dkrt|t|j n|j dkrt||j ntd |j W n& ty } zt jtj krd!d l!}|"  t | W Y d }~nd }~ww |#  d S )"NTzKExtensive Storage Engine utility. Allows dumping catalog, pages and tables.)add_helpdescriptiondatabaseFilestorezESE to open)actionhelpz-debug
store_truezTurn DEBUG output ONz-tsz&Adds timestamp to every logging outputz-pagezpage to openactionsr$   )r%   destr   zdumps an specific page)r%   zpage to dump)r$   requiredr%   infoz!dumps the catalog info for the DBexportz-tableztable to dumpr   INFODUMPEXPORTzUnknown action %s r   )$r   r   BANNERargparseArgumentParseradd_argumentadd_subparsers
add_parserlensysargv
print_helpexit
parse_argsr   inittsr   r   r"   r$   upperprintCatalogr   intpager   tabler   r   	getLoggerlevelDEBUG	traceback	print_excclose)parser
subparsersdump_parserexport_parseroptionsr	   erE   r   r   r   main=   sF   



rN   __main__r   )
__future__r   r   r6   r   r0   impacket.examplesr   impacketr   impacket.eser   r   r   rN   __name__r9   r   r   r   r   <module>   s   2