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