Skip to content

Latest commit

ย 

History

History

OkHttpLogger-Frida

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

ๅŽŸ้กน็›ฎๅœฐๅ€: https://github.com/siyujie/OkHttpLogger-Frida

OkHttpLogger-Frida

  • Frida ๅฎž็Žฐๆ‹ฆๆˆชokhttp็š„่„šๆœฌ

ไฝฟ็”จ่ฏดๆ˜Ž

โ‘  ้ฆ–ๅ…ˆๅฐ† okhttpfind.dex ๆ‹ท่ดๅˆฐ /data/local/tmp/ ็›ฎๅฝ•ไธ‹๏ผŒ็„ถๅŽ็ป™็›ฎๆ ‡AppๆŽˆไบˆๅญ˜ๅ‚จๆƒ้™ใ€‚

ๆ‰ง่กŒๅ‘ฝไปคๅฏๅŠจfrida -U -l okhttp_poker.js -f com.example.demo --no-pause

โ‘ก ่ฐƒ็”จๅ‡ฝๆ•ฐๅผ€ๅง‹ๆ‰ง่กŒ

  • find() ่ฆ็ญ‰ๅฎŒๅ…จๅฏๅŠจๅนถๆ‰ง่กŒ่ฟ‡็ฝ‘็ปœ่ฏทๆฑ‚ๅŽๅ†่ฟ›่กŒ่ฐƒ็”จ
  • hold() ่ฆ็ญ‰ๅฎŒๅ…จๅฏๅŠจๅ†่ฟ›่กŒ่ฐƒ็”จ
  • history() & resend() ๅชๆœ‰ๅฏไปฅ้‡ๆ–ฐๅ‘้€็š„่ฏทๆฑ‚

ๅ‡ฝๆ•ฐ๏ผš

  `find()`                                         ๆฃ€ๆŸฅๆ˜ฏๅฆไฝฟ็”จไบ†Okhttp & ๆ˜ฏๅฆๅฏ่ƒฝ่ขซๆททๆท† & ๅฏปๆ‰พokhttp3ๅ…ณ้”ฎ็ฑปๅŠๅ‡ฝๆ•ฐ	
  `switchLoader(\"okhttp3.OkHttpClient\")`         ๅ‚ๆ•ฐ๏ผš้™ๆ€ๅˆ†ๆžๅˆฐ็š„okhttpclient็ฑปๅ
  `hold()`                                         ๅผ€ๅฏHOOKๆ‹ฆๆˆช
  `history()`                                      ๆ‰“ๅฐๅฏ้‡ๆ–ฐๅ‘้€็š„่ฏทๆฑ‚
  `resend(index)`                                  ้‡ๆ–ฐๅ‘้€่ฏทๆฑ‚

ๅŽŸ็†๏ผš

็”ฑไบŽๆ‰€ๆœ‰ไฝฟ็”จ็š„okhttpๆก†ๆžถ็š„Appๅ‘ๅ‡บ็š„่ฏทๆฑ‚้ƒฝๆ˜ฏ้€š่ฟ‡RealCall.javaๅ‘ๅ‡บ็š„๏ผŒ้‚ฃไนˆๆˆ‘ไปฌๅฏไปฅhookๆญค็ฑปๆ‹ฟๅˆฐrequestๅ’Œresponse, ไนŸๅฏไปฅ็ผ“ๅญ˜ไธ‹ๆฅๆฏไธ€ไธช่ฏทๆฑ‚็š„callๅฏน่ฑก๏ผŒ่ฟ›่กŒๅ†ๆฌก่ฏทๆฑ‚๏ผŒๆ‰€ไปฅ้€‰ๆ‹ฉไบ†ๆญคๅค„่ฟ›่กŒhookใ€‚ findๅ‰ๆ–ฐๅขžcheck๏ผŒๆ นๆฎ็‰นๅพ็ฑปๅฏปๆ‰พๆ˜ฏๅฆไฝฟ็”จไบ†okhttp3ๅบ“๏ผŒๅฆ‚ๆžœๆฒกๆœ‰็‰นๅพ็ฑป๏ผŒๅˆ™่ฏดๆ˜Žๆฒกๆœ‰ไฝฟ็”จokhttp; ๆ‰พๅˆฐ็‰นๅพ็ฑป๏ผŒ่ฏดๆ˜Žไฝฟ็”จไบ†okhttp็š„ๅบ“๏ผŒๅนถๆ‰“ๅฐๅ‡บๆ˜ฏๅฆ่ขซๆททๆท†ใ€‚

ๆŠ“ๅ–ๆ‰“ๅฐ็š„ๆ ทไพ‹

ไพ‹ๅญ1
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
| URL: https://lng.***.com/api/collect
|
| Method: POST
|
| Headers:
|   โ”Œโ”€Content-Type: application/octet-stream; charset=utf-8
|   โ”Œโ”€Content-Length: 3971
|   โ””โ”€User-Agent: Dalvik/2.1.0 (Linux; U; Android 8.1.0; AOSP on msm8996 Build/OPM1.171019.011) Resolution/1080*1920 Version/6.59.0 Build/6590119 Device/(google;AOSP on msm8996) discover/6.59.0
|
| Body:
|   Base64[........]//็œ็•ฅไบ†๏ผŒๅคช้•ฟไบ†
|
|--> END  (binary body omitted -> isPlaintext)
|
| URL: https://lng.***.com/api/collect
|
| Status Code: 200 / 
|
| Headers:
|   โ”Œโ”€date: Sat, 29 Aug 2020 10:09:28 GMT
|   โ”Œโ”€content-type: text/json; charset=utf-8
|   โ”Œโ”€content-length: 41
|   โ”Œโ”€access-control-allow-origin: *
|   โ”Œโ”€access-control-allow-credentials: true
|   โ”Œโ”€access-control-allow-methods: GET,POST,OPTIONS,HEAD
|   โ””โ”€access-control-allow-headers: Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Client-Build,X-Client-Platform,X-Client-Version,X-Mx-ReqToken,X-Requested-With,X-Sign
| 
| Body:
|   {"code":0,"msg":"Success","success":true}
| 
|<-- END HTTP
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

ไพ‹ๅญ2
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
| URL: http://****/searchByKeywork
|
| Method: POST
|                                                                                                                    
| Headers:
|   โ”Œโ”€Content-Type: application/x-www-form-urlencoded
|   โ””โ”€Content-Length: 20
|
| Body:
|   userId=*****&keyword=run
|
|--> END 
|
| URL: http://****/searchByKeywork
|
| Status Code: 200 / 
|
| Headers:
|   โ”Œโ”€Content-Type: application/json;charset=UTF-8
|   โ”Œโ”€Transfer-Encoding: chunked
|   โ””โ”€Date: Sat, 29 Aug 2020 10:18:50 GMT
| 
| Body:
|   {"code":1000,"message":"ๆˆๅŠŸ","result":[{"id":"jqjcRQFO2","name":"RUN","remark":"","shareKey":"dRbkPjn
|   J2sjVJTP0G","cover":null,"list":null,"index":0,"note":"ๆ›ดๆ–ฐ่‡ณ20200123ๆœŸ"}]}
| 
|<-- END HTTP
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

okhttp_find็ป“ๆžœๆ ทไพ‹

 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ่ขซ ๆทท ๆท† ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Start Find~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Find Result~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var Cls_Call = "ูู…ุถ๏บ.ุซูŠุบู‡";
var Cls_CallBack = "ูู…ุถ๏บ.๏บ™ู„๏บฉุฌ";
var Cls_OkHttpClient = "ูู…ุถ๏บ.๏ป™๏บซุชูƒ";
var Cls_Request = "ูู…ุถ๏บ.๏บตูƒู€๏ป…";
var Cls_Response = "ูู…ุถ๏บ.ุตุฑูุฌ";
var Cls_ResponseBody = "ูู…ุถ๏บ.ุถุช๏ปญุฐ";
var Cls_okio_Buffer = "๏ปญ๏ป๏บซ๏ป‰.๏บต๏บฑ๏ปญุน";
var F_header_namesAndValues = "๏ปุจู€ู‚";
var F_req_body = "๏บต๏บฑ๏ปญุน";
var F_req_headers = "ุจ๏บ™ุฐู†";
var F_req_method = "๏บฏ๏บตุช๏ป";
var F_req_url = "๏ปุจู€ู‚";
var F_rsp$builder_body = "๏ปุฌ๏ปญู‚";
var F_rsp_body = "๏บน๏ป…๏ปุฒ";
var F_rsp_code = "๏ปุฌ๏ปญู‚";
var F_rsp_headers = "ุบ๏ปุฒุซ";
var F_rsp_message = "ูู…ุถ๏บ";
var F_rsp_request = "ุซูŠุบู‡";
var M_CallBack_onResponse = "onResponse";
var M_Call_enqueue = "๏ปุจู€ู‚";
var M_Call_execute = "wait";
var M_Call_request = "";
var M_Client_newCall = "๏ปุจู€ู‚";
var M_buffer_readByteArray = "๏บน๏ป…๏ปุฒ";
var M_contentType_charset = "๏ปุจู€ู‚";
var M_reqbody_contentLength = "contentLength";
var M_reqbody_contentType = "contentType";
var M_reqbody_writeTo = "writeTo";
var M_rsp$builder_build = "๏ปุจู€ู‚";
var M_rspBody_contentLength = "contentLength";
var M_rspBody_contentType = "contentType";
var M_rspBody_create = "create";
var M_rspBody_source = "source";
var M_rsp_newBuilder = "ุจ๏บ™ุฐู†";


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Find Complete!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

่ฏฆๆƒ…่งๅŠจๅ›พๅง๏ผๅฆ‚ๆœ‰้—ฎ้ข˜๏ผŒ่ฏท issues

  • ๅ› ไธบokhttp_poker.js่ฆ†็›–ไบ†okhttp_cat.js็š„ๆ‰€ๆœ‰ๅŠŸ่ƒฝ๏ผŒๆ‰€ไปฅๆ”พๅผƒไบ†okhttp_cat.js

ๅ…่ดฃๅฃฐๆ˜Ž

  • ไป…ๅšๅญฆไน ไบคๆต! ่ฏทๅ‹ฟๅ•†็”จ!!
  • ่‹ฅๅ› ไฝฟ็”จๆœฌๆœๅŠกไธŽ็›ธๅ…ณ่ฝฏไปถๅฎ˜ๆ–น้€ ๆˆไธๅฟ…่ฆ็š„็บ ็บท๏ผŒๆœฌไบบๆฆ‚ไธ่ดŸ่ดฃ!
  • ๆœฌไบบ็บฏ็ฒนๆŠ€ๆœฏ็ˆฑๅฅฝ๏ผŒ่‹ฅไพต็›ธๅ…ณๅ…ฌๅธ็š„ๆƒ็›Š๏ผŒ่ฏทๅ‘Š็Ÿฅๅˆ ้™ค!

็‰นๅˆซๆ„Ÿ่ฐข