逆天法修改模拟器deviceID
關(guān)于
最近玩模擬器的時(shí)候,下了一個(gè)軟件,在新安裝的設(shè)備上新注冊(cè)的賬號(hào)會(huì)有一些贈(zèng)送的內(nèi)容。看起來很平常,但是卻吸引了我的注意力,我就很奇怪判斷原理是什么,所以就深入研究了一番。本文只作為知識(shí)和技術(shù)分享。
判別原理
為了了解原理,我把模擬器里面的apk安裝包導(dǎo)出,翻出我大一時(shí)玩安卓逆向的工具(那時(shí)其實(shí)還不會(huì)java,就是亂玩)。首先,對(duì)apk解壓,copy出classes.dex,然后用dex2jar工具轉(zhuǎn)換成jar包,接著用jd-gui打開了jar包,查看內(nèi)部源代碼。
看著a,b,c,d等字母命名的文件,感覺有點(diǎn)離譜,但是還是一個(gè)一個(gè)文件點(diǎn)開去看。看了不少文件,沒有發(fā)現(xiàn)什么正經(jīng)內(nèi)容。最后,快看完的時(shí)候,出現(xiàn)了一個(gè)文件,里面出現(xiàn)了鍵值對(duì)的封裝,很明顯,這個(gè)是要從設(shè)備本地獲取信息,然后形式化包裝后,打包發(fā)送至后臺(tái)服務(wù)器,用于判斷。看了很多鍵名,直到發(fā)現(xiàn)一個(gè)"deviceId"的鍵名,感覺有點(diǎn)蹊蹺,所以上網(wǎng)查了一下,各類解答眾說紛紜,大部分解釋是手機(jī)的設(shè)備id,是手機(jī)的標(biāo)識(shí)符。
至此,我感覺這個(gè)所謂的deviceId應(yīng)該就是判重的標(biāo)準(zhǔn)了,事實(shí)證明是這樣的,但是故事還沒結(jié)束。
手機(jī)中的標(biāo)識(shí)符
因?yàn)橹纃eviceId就是標(biāo)識(shí)符,所以我開始了解手機(jī)中的唯一標(biāo)識(shí)符。
根據(jù)網(wǎng)上的大部分搜索結(jié)果,IMEI碼才是標(biāo)識(shí)一臺(tái)設(shè)備的唯一標(biāo)識(shí)符。一個(gè)解釋是,IMEI用于在移動(dòng)電話網(wǎng)絡(luò)中識(shí)別每一部獨(dú)立的手機(jī)等行動(dòng)通訊裝置,相當(dāng)于移動(dòng)電話的身份證,儲(chǔ)存在移動(dòng)設(shè)備中,可用于監(jiān)控被竊或無效的移動(dòng)設(shè)備。
于是乎,我以為deviceId就是這個(gè)IMEI碼,所以,在模擬器設(shè)置中,修改設(shè)備的IMEI碼,然后嘗試重裝app和重新注冊(cè),發(fā)現(xiàn)并沒有什么用。我以為是當(dāng)前的IMEI碼被用過了,所以修改了多次后重新測(cè)試,結(jié)果都不對(duì)。
然后,我就知道這個(gè)IMEI碼不是deviceId,IMEI碼無法起到唯一確定性。
查看deviceId
因?yàn)榱私獾絛eviceId和IMEI碼不是一個(gè)東西,所以,我感覺需要一個(gè)查看設(shè)備信息的軟件。仔細(xì)查找一番,找到了一個(gè)名為Device ID的app,安裝打開后,會(huì)發(fā)現(xiàn)顯示了系統(tǒng)的所有信息,當(dāng)然,區(qū)分開了device id和IMEI,同時(shí)還給出了很多其它信息。我發(fā)現(xiàn)IMEI的值會(huì)隨著修改而改變,但是device id的值是一直沒有變化的,所以,我就明白了app就是用deviceID來辨識(shí)唯一性。
既然知道了這個(gè)deviceId才是真正的設(shè)備標(biāo)識(shí)碼,那么接下來就是怎么修改以表示不同的設(shè)備。
修改deviceId
既然要修改deviceId,我的第一想法是找一個(gè)能修改的app,尋找一番,居然真有一個(gè),名字是Device ID Changer。點(diǎn)開一看,顯示出了我當(dāng)前的deviceId,然后我選擇修改,界面上顯示是已經(jīng)修改了,我以為成功了,可是,點(diǎn)開Device ID app,我發(fā)現(xiàn)好像并沒有改動(dòng)。
難道是因?yàn)闆]有重啟嗎?我重啟了一下虛擬機(jī),點(diǎn)開Device ID app,發(fā)現(xiàn)好像還是原來的那個(gè),此時(shí)我有點(diǎn)懵。
然后,我感覺可能是因?yàn)槲业牟僮鲉栴},于是重復(fù)了幾遍,但是還是沒有改變。
經(jīng)過了多次嘗試,我明白了這些方法行不通,所以,我想起來,模擬器是以虛擬機(jī)形式創(chuàng)建啟動(dòng)的,所以,或許數(shù)據(jù)都在本地呢。于是乎,找到了模擬器軟件的安裝目錄,一個(gè)一個(gè)文件夾進(jìn)行查看,最后找到了這樣的一個(gè)文件leidian0.config,打開一開,所有的設(shè)備信息居然都存在這個(gè)地方。
于是我就手動(dòng)修改然后關(guān)機(jī)重啟了虛擬機(jī),再次查看deviceId,居然真得修改為新的值了,此時(shí)我只想說聲:6!
這個(gè)文件的具體地址是:你的安裝目錄+\LeiDian\LDPlayer4\vms\config,僅用于雷電模擬器。
總結(jié)
雖然只是深入了解app判重和手機(jī)唯一標(biāo)識(shí)符的相關(guān)知識(shí),但是感覺還是很有幫助,對(duì)于模擬器的原理和手機(jī)設(shè)備的鑒別方式有了更進(jìn)一步的了解,希望能夠給予相關(guān)讀者相關(guān)方面的幫助。
總結(jié)
以上是生活随笔為你收集整理的逆天法修改模拟器deviceID的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快看!python就业行情和前景分析
- 下一篇: 服务器文件监控软件,强大的大势至FTP文