最近真是太墮落了帜消,一直沒(méi)學(xué)習(xí),先記錄一個(gè)以前的爬過(guò)的一個(gè)app浓体,就當(dāng)是復(fù)習(xí)了(最近真的很閑泡挺,可以摸魚(yú)魚(yú)!??)
其實(shí)這個(gè)本來(lái)是接的別人的代碼命浴,但是我要跑的時(shí)候竟然失效了??娄猫,算了贱除,進(jìn)入正題。媳溺。
app: glassdoor 8.17.1(僅供學(xué)習(xí)交流月幌,請(qǐng)勿用作商用,如有侵權(quán)悬蔽,請(qǐng)聯(lián)系我)
1. 前期研究:
? ? 其實(shí)這個(gè)網(wǎng)站也是有網(wǎng)頁(yè)的扯躺,但是網(wǎng)頁(yè)的一直出現(xiàn)hcapture人機(jī)驗(yàn)證,我換了ip也不太行蝎困,我真的搞不定的呀录语,最后只能試試app,其他版本的我沒(méi)有去嘗試禾乘,大家可以自行研究哈~
2. 具體需求(只是做演示):
抓取公司的信息:例如澎埠,抓取amazon公司的評(píng)論數(shù)據(jù)及基本信息
2. 抓包:
? ? 因?yàn)檫@個(gè)app需要墻的,所以需要掛著vpn始藕,然后再開(kāi)著charles蒲稳,具體怎么操作我就不再說(shuō)了,可以看我另一篇文章——charles抓包需vpn伍派,該如何配置
搜索公司:amazon —> 點(diǎn)擊到評(píng)論頁(yè) —> charles搜索頁(yè)面評(píng)論數(shù)據(jù)定位api江耀,如下:
請(qǐng)求方式:post
需要參數(shù):signature、s.expires (模擬請(qǐng)求后這倆是必須的)
請(qǐng)求體:employerId是公司id拙已、pageNum是評(píng)論頁(yè)碼决记,所以不同公司和翻頁(yè)只需要修改這兩個(gè)地方
我在charles搜索signature和s.expires的值摧冀,發(fā)現(xiàn)并沒(méi)有從其他請(qǐng)求的響應(yīng)或cookie中攜帶倍踪,所以考慮研究app,找到app的加密位置索昂,然后模擬
3. 反編譯及分析:
工具: jadx??
這個(gè)工具需要配置java環(huán)境建车,具體配置可以搜索大佬們的文章,我也是百度的椒惨,支持搜索缤至,可以定位到具體的代碼,還有一定的反混淆康谆,第一次加載時(shí)間會(huì)久一點(diǎn)领斥,比較占內(nèi)存,內(nèi)存不夠可以分配一下沃暗,可以自己研究研究月洛,啊哈哈哈哈
加載完成后,全局搜索:s.expires(我嘗試搜索signature孽锥,但是返回結(jié)果太多嚼黔,不好定位细层,也是需要多次嘗試的哈)
可以看到上圖中hashmap可能是個(gè)字典,點(diǎn)進(jìn)去發(fā)現(xiàn)生成signature和核心代碼就是hmac_sha1加密唬涧,具體如下圖紅框部分
因?yàn)閔mac_sha1加密是有一個(gè)密鑰key的疫赎,所以我們這里再全局搜索一下?HMACSHA1.encrypt,找到了key的值碎节,如下圖
APISignatureEncryptor需要傳2個(gè)參數(shù)捧搞,我們繼續(xù)全局搜索一下這個(gè)函數(shù)名,看看傳值情況
可以看到一個(gè)是鍵為PARTNER_KEY的字符串狮荔、一個(gè)是getDateTimeLong函數(shù)調(diào)用返回的整數(shù)实牡,然后將兩個(gè)值用“|”拼接后,hmac_sha1加密轴合,我們繼續(xù)從圖 APISignatureEncryptor調(diào)用傳參2 中control+點(diǎn)擊跟進(jìn)查看
PARTNER_KEY=="t.k"创坞,請(qǐng)求review的api里有這個(gè)t.k參數(shù)的值,所以受葛,我們可以直接設(shè)為默認(rèn)题涨;
getDateTimeLong調(diào)用返回當(dāng)前時(shí)間 + 24小時(shí)的時(shí)間戳
4. 模擬加密
到此,所有的分析就完成了总滩,因?yàn)槲也粫?huì)java纲堵,所以加密也是python模擬請(qǐng)求的,可以參考下圖
碼字不易啊闰渔,兄弟們席函,偷偷摸摸上班時(shí)間碼字更不容易啊,賞臉給個(gè)贊噢冈涧!
那個(gè)茂附。。分享一下最近的生活:
我去年8月底撿了只小母貓督弓,叫崽崽营曼,剛來(lái)時(shí)候也就三周一個(gè)月的樣子,小眼睛流淚愚隧,耳朵耳螨的小可憐蒂阱,上周已經(jīng)帶去絕育了,今晚帶去拆線狂塘,本來(lái)就打算養(yǎng)錘錘嘛,然后那天看見(jiàn)崽崽圖片后妈踊,我就動(dòng)了惻隱之心响委,當(dāng)天下班就打車(chē)去接回來(lái)了,還好她沒(méi)什么大病赘风,唯獨(dú)一次腹瀉已經(jīng)挺過(guò)來(lái)了邀窃,特淘氣瞬捕,給大家看看哈!