@@ -446,32 +446,35 @@ <h1>Source code for libdebug.builtin.pretty_print_syscall_handler</h1><div class
446
446
447
447
< div class ="viewcode-block " id ="pprint_on_enter ">
448
448
< 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 >
450
450
< span class ="w "> </ span > < span class ="sd "> """Function that will be called when a syscall is entered in pretty print mode.</ span >
451
451
452
452
< 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 >
454
454
< span class ="sd "> syscall_number (int): the syscall number.</ span >
455
455
< span class ="sd "> **kwargs (bool): the keyword arguments.</ span >
456
456
< 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 >
459
459
460
460
< 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 >
467
467
< span class ="p "> ]</ span >
468
468
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
+
469
472
< 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 >
470
473
< 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 >
471
474
< span class ="n "> entries</ span > < span class ="o "> =</ span > < span class ="p "> [</ span >
472
475
< 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 >
473
476
< 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 >
475
478
< 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 >
476
479
< 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 >
477
480
< span class ="p "> ]</ span >
@@ -484,18 +487,24 @@ <h1>Source code for libdebug.builtin.pretty_print_syscall_handler</h1><div class
484
487
485
488
< 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 >
486
489
< 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 >
487
491
< span class ="k "> if</ span > < span class ="n "> hijacked</ span > < span class ="p "> :</ span >
488
492
< 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 >
490
494
< span class ="p "> )</ span >
491
495
< span class ="k "> elif</ span > < span class ="n "> user_handled</ span > < span class ="p "> :</ span >
492
496
< 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 >
494
503
< span class ="n "> end</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span > < span class ="p "> ,</ span >
495
504
< span class ="p "> )</ span >
496
505
< span class ="k "> else</ span > < span class ="p "> :</ span >
497
506
< 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 >
499
508
< span class ="n "> end</ span > < span class ="o "> =</ span > < span class ="s2 "> ""</ span > < span class ="p "> ,</ span >
500
509
< span class ="p "> )</ span > </ div >
501
510
0 commit comments