a ze&@sddlZddlZddlZGdddZddZddZdd Zd d Zejd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zed*krdd+lmZeejd,ZeedS)-Nc@sFeZdZdefddZddZddZdd Zed d Z d d Z dS)TestHookNcCs |pd|_||_g|_d|_dS)NF)raise_on_eventsexc_typeseenclosed)selfrrrrD/opt/bitninja-python-dojo/embedded/lib/python3.9/test/audit-tests.py__init__s zTestHook.__init__cGst||SN)sys addaudithookrarrr __enter__s zTestHook.__enter__cGs |dSr )closerrrr __exit__szTestHook.__exit__cCs d|_dS)NT)rrrrr r!szTestHook.closecCsdd|jDS)NcSsg|] }|dqS)rr.0irrr &z(TestHook.seen_events..)rrrrr seen_events$szTestHook.seen_eventscCs6|jr dS|j||f||jvr2|d|dS)Nz saw event )rrappendrr)reventargsrrr __call__(s  zTestHook.__call__) __name__ __module__ __qualname__ RuntimeErrorr rrrpropertyrrrrrr r s rcCs||krt|d|dS)N should equal AssertionErrorxyrrr assertEqual1sr)cCs||vrt|d|dS)Nz should be in r$elZseriesrrr assertIn6sr,cCs||vrt|d|dS)Nz should not be in r$r*rrr assertNotIn;sr-cCsPt|t|kr"t|d|tddt||DrLt|d|dS)Nr#css|]\}}||kVqdSr r)rZixZiyrrr Crz&assertSequenceEqual..)lenr%anyzipr&rrr assertSequenceEqual@sr2c cs@z dVWn0ty:}zt|tr&WYd}~n d}~00dSr ) BaseException isinstancer%)Zex_typeexrrr assertRaisesGs r6cCsbtH}tddddt|jdddt|jdddWdn1sT0YdS)N test_eventr)r8r9r:)rr auditr)rhookrrr test_basicRsr>c CsvtddX}t2}tdtd|jtd|jWdn1sJ0YWdn1sh0YdS)Nsys.addaudithookrr7)rr r;r,rr-Zhook1Zhook2rrr test_block_add_hookYs    rBc Cs~ttbtdtd6}t}Wdn1s40YWdn1sR0YWdn1sp0YdS)Nr?)rr)r6r3rrArrr !test_block_add_hook_baseexceptioncs rCc Cs@ddl}d}||}t}t||||z~tdd}|||Wdn1sb0Ytdd }t|||Wdn1s0YWt dn t d0Wdn1s0Ydd|j D}t |||j fgdd d|j D}t ||gd d|j D}t |d gdS) Nrrbcr8r9r:ztest-marshal.binwbrbcSs(g|] \}}|dkr|d|dfqS)z marshal.dumpsrr8rrerrrr r~rz test_marshal..r9cSs g|]\}}|dkr|dqS)z marshal.loadsrrrIrrr rrcSsg|]\}}|dkr|qS) marshal.loadrrIrrr rrrK) marshaldumpsrr)loadsopendumploadosunlinkrr2version)rLopayloadr=factualrrr test_marshalns"  * 06 rYc Csddl}Gddd}||}|d}td||tddL}tt||Wdn1sp0Y||Wdn1s0YdS)Nrc@seZdZddZdS)z test_pickle..PicklePrintcSstdfS)N)Pwned!)str)rprrr __reduce_ex__sz.test_pickle..PicklePrint.__reduce_ex__N)rrr r]rrrr PicklePrintsr^rDrZzpickle.find_classr@)picklerMr)rNrr6r!)r_r^Z payload_1Z payload_2r=rrr test_pickles    (r`cCsGddd}Gddd}Gddd|}|}tF}d|_|f|_tjd||f|j|_d |_||_Wdn1s0Yd d |j D}t |d f|df|df|d fg|dS)Nc@s eZdZdS)ztest_monkeypatch..ANrrr rrrr Asrbc@s eZdZdS)ztest_monkeypatch..BNrarrrr Bsrcc@s eZdZdS)ztest_monkeypatch..CNrarrrr CsrdX __bases__{cSs(g|] \}}|dkr|d|dfqS)zobject.__setattr__rr8rrIrrr rrz$test_monkeypatch..r __class__) rrrftype__dict____set__r Znew_attrrhrr2)rbrcrdrr=rXrrr test_monkeypatchs$rlcCsbzddl}|j}Wnty,d}Yn0tdhd}ttjddfttjdftddfttjdd d dddd d d f |tjdffD]>^}}|sqt t ||Wdq1s0YqWdn1s0Ydd|j D}dd|j D}t ddtjddftjdfdtjdd f|rFtjddfndfD|t g|dS)NrrOr@r9rrHr:rGwFcWsdS)Nr8r)rrrr rztest_open..cSs0g|](\}}|dkr|dr|d|dfqS)rOr8rrrIrrr rrztest_open..cSs0g|](\}}|dkr|ds|d|dfqS)rOr8rr9rrIrrr rrcSsg|]}|dur|qSr rrrrr rs)r:rn) sslZcreate_default_contextload_dh_params ImportErrorrrOr argv executabler6r!rr2)rqrrr=fnrZ actual_modeZ actual_flagrrr test_opens<     F   rwc sgfdd}t|}zltH}tdd|_tdd|_tdd|_td d |_Wdn1sp0YWt|n t|0td gd dS) Ncs|jtjjkr|dSr )f_coderr__code__r)framerrZtracedrr tracesztest_cantrace..trace1F2T3r84rcall)r settracerevalZ __cantrace__r2)r|oldr=rr{r test_cantraces  &rcCsZddl}t8}|ddt|jdddddWdn1sL0YdS)Nrror8r9)ror)mmaprr)r)rr=rrr test_mmap s rcs0ddfdd}t|t_tddS)NcSs|turt|||dSr )r!r __excepthook__)r exc_valueexc_tbrrr excepthooksz#test_excepthook..excepthookcsr|dkrnt|d|ds8td|dd|dd|dkr\td|dd t|t|ddS) Nzsys.excepthookr9r8zExpected isinstance(z, )r Expected  == )r4 TypeError ValueErrorprintreprrrrrr r=s  ztest_excepthook..hookz fatal-error)r r rr!r<rrr test_excepthooks   rcsDddlm}ddfdd}t|t_|tddddS) Nr)write_unraisable_exccSsdSr r)Zhookargsrrr unraisablehook&sz+test_unraisablehook..unraisablehookcsL|dkrH|dkr,td|ddt|t|dj|djdS)Nzsys.unraisablehookrrrr8)rrrrerr_msgrrrr r=)s z!test_unraisablehook..hookznonfatal-errorzfor audit hook test)Z _testcapirr r rr!)rr=rrr test_unraisablehook#s    rcCs|ddlm}m}m}m}dd}t|||d}||dz||dWnty^Yn 0td| }||dS)Nr)OpenKeyEnumKeyCloseKeyHKEY_LOCAL_MACHINEcSs"|dsdSt|g|RdS)Nzwinreg. startswithrrrrr r=7s ztest_winreg..hookZSoftwarei'z%Expected EnumKey(HKLM, 10000) to fail) winregrrrrr r OSErrorr!Detach)rrrrr=kZkvrrr test_winreg4s    rcCspddl}dd}t||||j|j}z.z|dWntyTYn0W|n |0dS)NrcSs|drt|g|RdS)Nzsocket.rrrrr r=Ns ztest_socket..hook)z 127.0.0.1i) socketr r gethostnameAF_INET SOCK_STREAMbind Exceptionr)rr=sockrrr test_socketKs  rcCsJddl}dd}t||jddt}|g}||||dS)NrcSs|drt|g|RdS)Nzgc.rrrrr r=ds ztest_gc..hookr8)Z generation)gcr r Z get_objectsobjectZ get_referrersZ get_referents)rr=r'r(rrr test_gcas   r__main__)suppress_msvcrt_assertsr8) contextlibrRr rr)r,r-r2contextmanagerr6r>rBrCrYr`rlrwrrrrrrrrZ test.supportrrttestglobalsrrrr s8$    +!