安卓逆向分析韻達超市app接口及其實現


安卓逆向分析韻達超市app接口及其實現

1.抓包響應的操作(登錄-入庫-出庫等等接口)

2.apk文件解壓得出dex文件,然后反編譯出jar包,。

3.分析接口

3.1登錄接口

抓包得出登錄接口主要有六個參數,分別是sign_method,req_time,data,action,appver,version,sign

其中sign_method是固定值yd_md5,req_time是13位時間戳,data里面的數據就是用戶名和密碼(密碼是進行了MD5加密),action應該是固定值,登錄這個接口的值應該就是market.appMarket.login,appver和version也是固定值,那么剩下的就只有sign不知道是怎么生成的.

接下來就是分析jar包代碼了.

 

 全局搜索login關鍵詞,找到了登錄接口的相關邏輯,但這里顯然不是登錄前的組包過程,這個是登錄成功,返回信息后賦值的過程,那么就是繼續找

 

 找到了這個函數,很明顯這個就是登錄請求的組包過程,可以看出來,先new一個Request對象,然后setPhone,setPassword,setData,setAction,setVersion.

其中在setPassword的時候做了一個判斷,真的時候用的是rsa加密,公鑰就在源碼里,false的時候是用的md5加密,很顯然,密碼是MD5加密的.

但是還是沒有看到sign的加密方法,那就得繼續找了

 

 

找到了這個函數,但是在這個工具里看不到這個函數的內容,那就只能用比較強大的工具了,jeb登場

 

 找到了這個函數,通過分析發現,是將請求參數進行按key的升序排序,然后拼接字符串,然后進行了g.a(g.c(v6.toString()))操作,進去里面的函數,發現是MD5加密.那么sign的生成方式就找到了.登錄接口完成.

發現登錄接口的返回響應里面有個publicKey,有可能是RSA密鑰.

{
    "req_time":1589253822588,
    "body":{ "publicKey":"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAI6ZmE1edc709ZhZQ8dGMGLhYqHyzdU1KUCTP4mamczvqJChHSnGSy8tNBltapz8salszVaWQSp9qHkAlpp2aH0CAwEAAQ==",
        "message":"請求成功",
        "result":true,
        "token":"CKJBCg67eY_Z8djYgAD0ccA_",
        "data":{
            ....
        },
        "openid":"xxxxxxxxxxxx",
        "code":0
    },
    "success":true
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM