@@ -446,32 +446,35 @@ <h1>Source code for libdebug.builtin.pretty_print_syscall_handler</h1><div class
446446
447447< div class ="viewcode-block " id ="pprint_on_enter ">
448448< a class ="viewcode-back " href ="../../../libdebug.builtin.html#libdebug.builtin.pretty_print_syscall_handler.pprint_on_enter "> [docs]</ a >
449- < span class ="k "> def</ span > < span class ="nf "> pprint_on_enter</ span > < span class ="p "> (</ span > < span class ="n "> d </ span > < span class ="p "> :</ span > < span class ="n "> ThreadContext</ span > < span class ="p "> ,</ span > < span class ="n "> syscall_number</ span > < span class ="p "> :</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> :</ span > < span class ="nb "> int</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
449+ < span class ="k "> def</ span > < span class ="nf "> pprint_on_enter</ span > < span class ="p "> (</ span > < span class ="n "> t </ span > < span class ="p "> :</ span > < span class ="n "> ThreadContext</ span > < span class ="p "> ,</ span > < span class ="n "> syscall_number</ span > < span class ="p "> :</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> :</ span > < span class ="nb "> int</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
450450< span class ="w "> </ span > < span class ="sd "> """Function that will be called when a syscall is entered in pretty print mode.</ span >
451451
452452< span class ="sd "> Args:</ span >
453- < span class ="sd "> d (ThreadContext): the thread context.</ span >
453+ < span class ="sd "> t (ThreadContext): the thread context.</ span >
454454< span class ="sd "> syscall_number (int): the syscall number.</ span >
455455< span class ="sd "> **kwargs (bool): the keyword arguments.</ span >
456456< span class ="sd "> """</ span >
457- < span class ="n "> syscall_name</ span > < span class ="o "> =</ span > < span class ="n "> resolve_syscall_name</ span > < span class ="p "> (</ span > < span class ="n "> d </ span > < span class ="o "> .</ span > < span class ="n "> _internal_debugger</ span > < span class ="o "> .</ span > < span class ="n "> arch</ span > < span class ="p "> ,</ span > < span class ="n "> syscall_number</ span > < span class ="p "> )</ span >
458- < span class ="n "> syscall_args</ span > < span class ="o "> =</ span > < span class ="n "> resolve_syscall_arguments</ span > < span class ="p "> (</ span > < span class ="n "> d </ span > < span class ="o "> .</ span > < span class ="n "> _internal_debugger</ span > < span class ="o "> .</ span > < span class ="n "> arch</ span > < span class ="p "> ,</ span > < span class ="n "> syscall_number</ span > < span class ="p "> )</ span >
457+ < span class ="n "> syscall_name</ span > < span class ="o "> =</ span > < span class ="n "> resolve_syscall_name</ span > < span class ="p "> (</ span > < span class ="n "> t </ span > < span class ="o "> .</ span > < span class ="n "> _internal_debugger</ span > < span class ="o "> .</ span > < span class ="n "> arch</ span > < span class ="p "> ,</ span > < span class ="n "> syscall_number</ span > < span class ="p "> )</ span >
458+ < span class ="n "> syscall_args</ span > < span class ="o "> =</ span > < span class ="n "> resolve_syscall_arguments</ span > < span class ="p "> (</ span > < span class ="n "> t </ span > < span class ="o "> .</ span > < span class ="n "> _internal_debugger</ span > < span class ="o "> .</ span > < span class ="n "> arch</ span > < span class ="p "> ,</ span > < span class ="n "> syscall_number</ span > < span class ="p "> )</ span >
459459
460460 < span class ="n "> values</ span > < span class ="o "> =</ span > < span class ="p "> [</ span >
461- < span class ="n "> d </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg0</ span > < span class ="p "> ,</ span >
462- < span class ="n "> d </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg1</ span > < span class ="p "> ,</ span >
463- < span class ="n "> d </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg2</ span > < span class ="p "> ,</ span >
464- < span class ="n "> d </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg3</ span > < span class ="p "> ,</ span >
465- < span class ="n "> d </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg4</ span > < span class ="p "> ,</ span >
466- < span class ="n "> d </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg5</ span > < span class ="p "> ,</ span >
461+ < span class ="n "> t </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg0</ span > < span class ="p "> ,</ span >
462+ < span class ="n "> t </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg1</ span > < span class ="p "> ,</ span >
463+ < span class ="n "> t </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg2</ span > < span class ="p "> ,</ span >
464+ < span class ="n "> t </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg3</ span > < span class ="p "> ,</ span >
465+ < span class ="n "> t </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg4</ span > < span class ="p "> ,</ span >
466+ < span class ="n "> t </ span > < span class ="o "> .</ span > < span class ="n "> syscall_arg5</ span > < span class ="p "> ,</ span >
467467 < span class ="p "> ]</ span >
468468
469+ < span class ="c1 "> # Print the thread id</ span >
470+ < span class ="n "> header</ span > < span class ="o "> =</ span > < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BOLD</ span > < span class ="si "> }{</ span > < span class ="n "> t</ span > < span class ="o "> .</ span > < span class ="n "> tid</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RESET</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span >
471+
469472 < span class ="k "> if</ span > < span class ="s2 "> "old_args"</ span > < span class ="ow "> in</ span > < span class ="n "> kwargs</ span > < span class ="p "> :</ span >
470473 < span class ="n "> old_args</ span > < span class ="o "> =</ span > < span class ="n "> kwargs</ span > < span class ="p "> [</ span > < span class ="s2 "> "old_args"</ span > < span class ="p "> ]</ span >
471474 < span class ="n "> entries</ span > < span class ="o "> =</ span > < span class ="p "> [</ span >
472475 < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> arg</ span > < span class ="si "> }</ span > < span class ="s2 "> = </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BRIGHT_YELLOW</ span > < span class ="si "> }</ span > < span class ="s2 "> 0x</ span > < span class ="si "> {</ span > < span class ="n "> value</ span > < span class ="si "> :</ span > < span class ="s2 "> x</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span >
473476 < span class ="k "> if</ span > < span class ="n "> old_value</ span > < span class ="o "> ==</ span > < span class ="n "> value</ span >
474- < span class ="k "> else</ span > < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> arg</ span > < span class ="si "> }</ span > < span class ="s2 "> = </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BRIGHT_YELLOW</ span > < span class ="si "> }</ span > < span class ="s2 "> 0x</ span > < span class ="si "> {</ span > < span class ="n "> old_value</ span > < span class ="si "> :</ span > < span class ="s2 "> x</ span > < span class ="si "> }</ span > < span class ="s2 "> -> </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BRIGHT_YELLOW</ span > < span class ="si "> }</ span > < span class ="s2 "> 0x</ span > < span class ="si "> {</ span > < span class ="n "> value</ span > < span class ="si "> :</ span > < span class ="s2 "> x</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span >
477+ < span class ="k "> else</ span > < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> arg</ span > < span class ="si "> }</ span > < span class ="s2 "> = </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> STRIKE</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BRIGHT_YELLOW</ span > < span class ="si "> }</ span > < span class ="s2 "> 0x</ span > < span class ="si "> {</ span > < span class ="n "> old_value</ span > < span class ="si "> :</ span > < span class ="s2 "> x</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RESET</ span > < span class ="si "> }</ span > < span class ="s2 "> </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BRIGHT_YELLOW</ span > < span class ="si "> }</ span > < span class ="s2 "> 0x</ span > < span class ="si "> {</ span > < span class ="n "> value</ span > < span class ="si "> :</ span > < span class ="s2 "> x</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span >
475478 < span class ="k "> for</ span > < span class ="n "> arg</ span > < span class ="p "> ,</ span > < span class ="n "> value</ span > < span class ="p "> ,</ span > < span class ="n "> old_value</ span > < span class ="ow "> in</ span > < span class ="nb "> zip</ span > < span class ="p "> (</ span > < span class ="n "> syscall_args</ span > < span class ="p "> ,</ span > < span class ="n "> values</ span > < span class ="p "> ,</ span > < span class ="n "> old_args</ span > < span class ="p "> ,</ span > < span class ="n "> strict</ span > < span class ="o "> =</ span > < span class ="kc "> False</ span > < span class ="p "> )</ span >
476479 < span class ="k "> if</ span > < span class ="n "> arg</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span >
477480 < span class ="p "> ]</ span >
@@ -484,18 +487,24 @@ <h1>Source code for libdebug.builtin.pretty_print_syscall_handler</h1><div class
484487
485488 < span class ="n "> hijacked</ span > < span class ="o "> =</ span > < span class ="n "> kwargs</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "hijacked"</ span > < span class ="p "> ,</ span > < span class ="kc "> False</ span > < span class ="p "> )</ span >
486489 < span class ="n "> user_handled</ span > < span class ="o "> =</ span > < span class ="n "> kwargs</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "callback"</ span > < span class ="p "> ,</ span > < span class ="kc "> False</ span > < span class ="p "> )</ span >
490+ < span class ="n "> hijacker</ span > < span class ="o "> =</ span > < span class ="n "> kwargs</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "hijacker"</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span >
487491 < span class ="k "> if</ span > < span class ="n "> hijacked</ span > < span class ="p "> :</ span >
488492 < span class ="nb "> print</ span > < span class ="p "> (</ span >
489- < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RED</ span > < span class ="si "> }</ span > < span class ="s2 "> (user hijacked) </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> STRIKE</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BLUE</ span > < span class ="si "> }{</ span > < span class ="n "> syscall_name</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> (</ span > < span class ="si "> {</ span > < span class ="s1 "> ', '</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> entries</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> )</ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RESET</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> ,</ span >
493+ < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> header</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RED</ span > < span class ="si "> }</ span > < span class ="s2 "> (hijacked) </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> STRIKE</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BLUE</ span > < span class ="si "> }{</ span > < span class ="n "> syscall_name</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> (</ span > < span class ="si "> {</ span > < span class ="s1 "> ', '</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> entries</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> )</ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RESET</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> ,</ span >
490494 < span class ="p "> )</ span >
491495 < span class ="k "> elif</ span > < span class ="n "> user_handled</ span > < span class ="p "> :</ span >
492496 < span class ="nb "> print</ span > < span class ="p "> (</ span >
493- < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RED</ span > < span class ="si "> }</ span > < span class ="s2 "> (callback) </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BLUE</ span > < span class ="si "> }{</ span > < span class ="n "> syscall_name</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> (</ span > < span class ="si "> {</ span > < span class ="s1 "> ', '</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> entries</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> ) = "</ span > < span class ="p "> ,</ span >
497+ < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> header</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RED</ span > < span class ="si "> }</ span > < span class ="s2 "> (callback) </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BLUE</ span > < span class ="si "> }{</ span > < span class ="n "> syscall_name</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> (</ span > < span class ="si "> {</ span > < span class ="s1 "> ', '</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> entries</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> ) = "</ span > < span class ="p "> ,</ span >
498+ < span class ="n "> end</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span > < span class ="p "> ,</ span >
499+ < span class ="p "> )</ span >
500+ < span class ="k "> elif</ span > < span class ="n "> hijacker</ span > < span class ="p "> :</ span >
501+ < span class ="nb "> print</ span > < span class ="p "> (</ span >
502+ < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> header</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> RED</ span > < span class ="si "> }</ span > < span class ="s2 "> (executed) </ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BLUE</ span > < span class ="si "> }{</ span > < span class ="n "> syscall_name</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> (</ span > < span class ="si "> {</ span > < span class ="s1 "> ', '</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> entries</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> ) = "</ span > < span class ="p "> ,</ span >
494503 < span class ="n "> end</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span > < span class ="p "> ,</ span >
495504 < span class ="p "> )</ span >
496505 < span class ="k "> else</ span > < span class ="p "> :</ span >
497506 < span class ="nb "> print</ span > < span class ="p "> (</ span >
498- < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BLUE</ span > < span class ="si "> }{</ span > < span class ="n "> syscall_name</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> (</ span > < span class ="si "> {</ span > < span class ="s1 "> ', '</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> entries</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> ) = "</ span > < span class ="p "> ,</ span >
507+ < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="n "> header </ span > < span class =" si " > }{ </ span > < span class =" n " > ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> BLUE</ span > < span class ="si "> }{</ span > < span class ="n "> syscall_name</ span > < span class ="si "> }{</ span > < span class ="n "> ANSIColors</ span > < span class ="o "> .</ span > < span class ="n "> DEFAULT_COLOR</ span > < span class ="si "> }</ span > < span class ="s2 "> (</ span > < span class ="si "> {</ span > < span class ="s1 "> ', '</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> entries</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> ) = "</ span > < span class ="p "> ,</ span >
499508 < span class ="n "> end</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span > < span class ="p "> ,</ span >
500509 < span class ="p "> )</ span > </ div >
501510
0 commit comments