package Ġplugin . cd h . ok one . inject Ċ Ċ import Ġcom . sun . org . apache . b cel . internal . generic . I RETURN Ċ import Ġj dk . internal . org . object web . asm . Op codes .* Ċ import Ġorg . object web . asm .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġch ide hang Ġon Ġ 2 0 2 1 / 2 / 1 8 Ċ Ġ*/ Ċ class ĠOk HttpClient Injector Ġ: ĠBaseClass Injector () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandles ( name : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname . endsWith ("${ TARGET _ CLASS _ NAME }. class ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Inject ( class Writer : ĠClass Writer ): ĠClass Visitor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠClient Class Visitor ( class Writer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠClient Class Visitor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass Visitor : ĠClass Visitor ĊĠĠĠ Ġ) Ġ: ĠClass Visitor ( Op codes . ASM 7 , Ġclass Visitor ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Field ( access : ĠInt , Ġname : ĠString , Ġdescriptor : ĠString , Ġsignature : ĠString ?, Ġvalue : ĠAny ?): ĠField Visitor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( name Ġ== Ġ" event Listener Factory " Ġ&& Ġ" L okhttp 3 / EventListener \$ Factory ;" Ġ== Ġdescriptor ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( name Ġ== Ġ" intercept ors " Ġ&& Ġdescriptor Ġ== Ġ" Ljava / util / List ; ") Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( name Ġ== Ġ" network Intercept ors " Ġ&& Ġdescriptor Ġ== Ġ" Ljava / util / List ; ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ç§»éĻ¤ final ä¿® é¥ ° ï¼Į ä½¿ ä¹ĭ åı¯ä»¥ éĩįæĸ° èµĭåĢ¼ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccess . and ( ACC _ FINAL . inv ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . visit Field ( access , Ġname , Ġdescriptor , Ġsignature , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Method ( access : ĠInt , Ġname : ĠString ?, Ġdescriptor : ĠString ?, Ġsignature : ĠString ?, Ġexceptions : ĠArray < out ĠString >? ): ĠMethod Visitor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmv Ġ= Ġsuper . visit Method ( access , Ġname , Ġdescriptor , Ġsignature , Ġexceptions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mv Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġ"< init >" Ġ&& Ġ"( L okhttp 3 / Ok HttpClient \$ Builder ;) V " Ġ== Ġdescriptor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¿®æĶ¹ Ok HttpClient å¸¦ åıĤ æŀĦéĢł æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠConstruct Method Visitor ( mv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmv ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠConstruct Method Visitor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Visitor : ĠMethod Visitor ĊĠĠĠ Ġ) Ġ: ĠMethod Visitor ( Op codes . ASM 7 , Ġmethod Visitor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Insn ( opcode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( opcode Ġin ĠI RETURN .. RETURN ) Ġ|| Ġopcode Ġ== ĠA THROW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåľ¨ æĸ¹æ³ķ ç»ĵ å°¾ å¤Ħ ä¿®æĶ¹ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmv . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhook Ġevent Listener Factory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Var Insn ( AL O AD , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Var Insn ( AL O AD , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Field Insn ( GET FIELD , ĠTARGET _ CLASS _ NAME , Ġ" event Listener Factory ", Ġ" L okhttp 3 / EventListener \$ Factory ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Method Insn ( IN VOKE STATIC , Ġ" com / cd h / ok one / Inject Helper \$ Client Hook er ", Ġ" hook EventListener Factory ", Ġ"( L okhttp 3 / EventListener \$ Factory ;) L okhttp 3 / EventListener \$ Factory ;", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Field Insn ( PUT FIELD , ĠTARGET _ CLASS _ NAME , Ġ" event Listener Factory ", Ġ" L okhttp 3 / EventListener \$ Factory ; ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhook Ġintercept ors ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Var Insn ( AL O AD , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Var Insn ( AL O AD , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Field Insn ( GET FIELD , ĠTARGET _ CLASS _ NAME , Ġ" intercept ors ", Ġ" Ljava / util / List ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Method Insn ( IN VOKE STATIC , Ġ" com / cd h / ok one / Inject Helper \$ Client Hook er ", Ġ" hook Intercept ors ", Ġ"( Ljava / util / List ;) Ljava / util / List ;", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Field Insn ( PUT FIELD , ĠTARGET _ CLASS _ NAME , Ġ" intercept ors ", Ġ" Ljava / util / List ; ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhook Ġnetwork Intercept ors ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Var Insn ( AL O AD , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Var Insn ( AL O AD , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Field Insn ( GET FIELD , ĠTARGET _ CLASS _ NAME , Ġ" network Intercept ors ", Ġ" Ljava / util / List ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Method Insn ( IN VOKE STATIC , Ġ" com / cd h / ok one / Inject Helper \$ Client Hook er ", Ġ" hook Network Intercept ors ", Ġ"( Ljava / util / List ;) Ljava / util / List ;", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Field Insn ( PUT FIELD , ĠTARGET _ CLASS _ NAME , Ġ" network Intercept ors ", Ġ" Ljava / util / List ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . visit Insn ( opcode ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTARGET _ CLASS _ NAME Ġ= Ġ" okhttp 3 / Ok HttpClient " ĊĠĠĠ Ġ} Ċ }