《2021Android网络库详解-tale.docx》由会员分享,可在线阅读,更多相关《2021Android网络库详解-tale.docx(17页珍藏版)》请在第壹文秘上搜索。
1、AndrOid网络库详解-tale网络摩:HttpUR1.ConnectionHttPUR1.COnneCtiOn介绍HttPUR1.eOnneCtiOn的使用步骤HOOKHttpUR1.Connection网络库,OkhttP3+(OggingOKHttP简介OKHttP的功能HOOK0kHttp3网络库:RetrofitRetrofit简介,Retrofit使用步骤,HOOKRetrofit参考资料网络库:HttpUR1.ConnectionHttPUR1.COnneCtiOn介绍-种多用途轻量极的HTTP客户端使用它来进行HTTP操作可以适用于大多数的应用程序虽然HttPUR1.Conn
2、eCtiOn的APl提供的比较简单,但是同时这也使得我们可以更加容易地去使用和扩展它继承至UR1.ConneetiOn,抽象类无法直接实例化对象通过调用OPenColleCtiOnO方法获得对象实例默认是带gzip压缩的;HttPUR1.COnneetiOn的使用步骤使用HttPUR1.COnneCtiOrI的步3聚如下:PlainTextQ复制代码1 1创建一个UR1.*j象:UR1.url=newUR1.(https:/);2 2调用UR1.对象的OPenCOnneCtion()来获取HttPUR1.COnneCtiOn对象实例:HttpUR1.Connectionconn=(HttpUR
3、1.Connection)url.OpenConnection();3设置HTTP请求使用的方法:GET或者POST或者其他请求方式比如:PUTconn.SetRequestMethod(11GET11);4设置连接超时,读取超时的毫秒数以及服务器希望得到的一些消息头conn.SetConnectTimeout(6*1000);conn.SetReadTimeout(6*1000);5 5调用getlnputStream()法获得服务器返回的输入流然后输入流进行读取了InputStreamin=conn.getInputStreamO;6 6最后调用disconnect()方法才夺HTTP连接
4、关掉ConrI.discOrIneCt();HOOKHttpUR1.ConnectionPlainTextQ复制代码1创建一个UR1.对象:UR1.url=newUR1.(https:/);如果想自吐UR1.(https:/)则应该hookUR1.的构造函数PlainText(5复制代码1workon(google:8.1.0)usb#androidhookingsearchclassesUR1.-.hj?iVJFMkb(google:8.1.0)androidhookingsearchclassesUR1.1.libcore.io.ClossPothUR1.StreamHandlcr;and
5、roid.icu.impl.UR1.HandlerSUR1.Vxsitorandroid.text.style.UR1.Sponcom.android.okhttp.HttpHandlerSCIeartextUR1.FIterCofn.android,okhttp.HttpUrlSBuiIdercom.android.okhttp.OkUrIFactorycom.android.okhttp.internal.UR1.Filtercom.ondroid.okhttp.internal.hue.DelegatingHttpsUR1.Connectioncom.Qndraoid.okhttp.in
6、ternal.hue.HttpsUR1.ConnectioImpl).HttpUR1.Connection).JarURlC.MalformedUR1.E.UR,UR1.C.UR1.StreamHondler.UR1.StreafnKondlerF.ssl.HttpsUR1.ConnectionIibcorc.io.ClOssPothUR1.StreamHondlerIibcore.io.ClassPathUR1.StreamHondlerSClassPothUR1.ConectionIibcore.io.ClassPathUR1.StreamHa11dlerSClassPathUR1.Con
7、nectxonSlFound20classes需单独hook构造函数.UR1.$initPlainTextQ复制代码workon(google:8.1.0)usb#androidhookingwatchClaSS_.UR1.$init-dump-args-dump-backtrace-dump-re2turnMtwort可以发现在手机每点击一下刷新验证码就会弹出新的请求)*vM.Utl.V)MRtt)M.fWtwt11”)4M(ctHl.*Hl(ternM4)wmH)CM.JM.4M)WtlWMMM4)0MX6MMrl4MMWIMel.(,fwtmrtfWttf*MWtl.et0eltiMsm
8、llit)cm.w1.a*aor,t51M9Cfbmm91.RtmrtMtetae*WtU7*MMCylaY)mi14)SjwT4U)wM).twttrforwCfsturtToifc.)avo2M三twrVWlee然后可以编写自吐脚本,打印出经过的UrI地址PlainTextQ复制代码1frida-U-work-120201013.js-no-pauseJava.perfon(functionnetUR1.*UR1.Java.use*.UR1.).$lnlt.overload(*java.Ung.Strln).lapIeaientationfunvrresultthsSinit(str)c,
9、result,str)jreturnresult;11tIpUR1.ConnectlonSetRequeitProperty傅Java,usecom.android.okhttp.internal,hue.HttpUR1.CoofiectionlplM).setRefresult,Strltttr2);returnresult:PROB1.EMSOUTPUTDFBUGCONSO1.TtRMINA1.2:Python7(DComands:helpobject?exltqult-Exit.Moreinfoathttps:/ww.frid.reresult,strunfjjcjy.c2212e222
10、352.SetRequestMethodresult,str1,str2-undefinedGET.SetReQuestPropertyresult,strl,str2-.SetRequestPropcrtyresuIt,strlfstr2-.SetRequestPropertyresult,strltstr2-t)Gecko201llFlrefox33.SetReQuestPropertyresult,stri,str2-Ufxtefinedurdefine4uftdefIneduMefinedAcceptAccept-1.ngugezb-cn,zh;Qe.8,en-tjs;Q.5ren;q
11、0.3USerzstMotilU5.e(WindowsWT6.1;WoW64;rv33.Accept-CncodifiQgzipfdeflateresult.str=undefinedhttp:/yxl2.fjjcjy.coPublicControlGetValidateCode7tie=2212222352result.str三undefined22liI3frida-U-work-I220113.1s-o-pauseFrid12.11.1-AWOrld-CI$dynamicInstruaentAtiontoolkit-DispUysthehelpsystem-DisplayInfomati
12、of)about,object,使用该自吐脚本尝试另一款APP做实验PlainTextQ复制代码1frida-U-fcom.cz.1.abySister-120201013.js-no-pauser*Mi.StytEeiyetriurvtmr*lt”1wMsettaMttelMjRiUrlCmtctioIOJAHe,gatocV*mdTUaMfwWf.ecElJWUMrvKJr09MUrMWRpMB4EMM.ertUMf.1.UrnrygutB三jMcCc,itbo,trWZmeIapVr*cCl5,2ArtiVJ54SMc0jAt,cftWMmnrwet.rvuUttri9ttrsM,gt-,:rcmm;nncla九.j11i.rani.,msm.w;.wrcm.4M.2U2sm11cms3m)田ZI