有趣的實驗 通過鍵盤程式設計破解安卓

2021-07-28 02:08:33 字數 936 閱讀 7639

有一段時間很好奇的乙個事情,假設我現在有一部手機,我又正好忘記它的密碼,那我要怎麼做?

手頭這一部安卓的pin碼是四位數,假如是純數字,那麼0000-9999一共是10^4種組合,而每輸入錯誤五次要等待30秒,不長不短,不間斷的輸入約需要55個小時左右,未免太挑戰人類耐心的極限了。

那麼通過漏洞或者除錯模式破解,應該可行,甚至一鍵解鎖。但這裡要考慮更極端的環境

假設adb禁用,網路沒有開啟,除錯模式也沒有開(我的手機預設是這樣的),那麼該如何是好?

所想到的大致的解決:

寫乙個鍵盤,利用34u2的usb介面模擬hid,實現從usb介面侵入(機器化輸入)

最初的方案:

通過otg實現外接鍵盤,再程式設計,實現輸入數字

輸入---》迴圈五次-----》等待31秒 

有個問題是,五十五個小時,供電怎麼辦?

改進方案:

增進一條電源匯流排,外接電源到手機上面,這樣就能解決手機供電的問題

假設,我破解完了,然後進入手機,但是外接的mcu並不知道,所以並不會停止輸入,因此還要讓它停止

再次改進方案:

通過影象識別是否完成了暴力破解

這部分的操作 

輸入pin---》通知pc確認---》pc採集影像---》二值化----》比較特定區域的前後區別

不過這個我覺得有個bug,就是usb作為hid裝置時候是不能夠輸入串列埠的,所以還要用其他裝置來作為板載串列埠輸入(比如說藍芽模組)。

增進廉價改進方案:

利用一枚色彩感測器,告知晶元是否完成了破解並記錄最近的pin碼

先將我們的色彩感測器貼在螢幕上面,那麼就可以直接的了解是否是有色彩的變化(進入主ui),只要採取特徵比較就可以達到,並且不受到螢幕亮度變化的影響

至於蘋果和其他:

蘋果失敗後最大會有半小時的鎖定,而且,並不支援otg,還有ms 的wp,那玩意沒人用吧? 完

通過NodeJs JPush實現安卓的異地登陸

因公司業務需要,需要實現乙個異地登陸然後下線的功能,說的可能有點糊塗,可以先看下實現的效果圖 安裝jpush 極光 的nodejs版 廢話就不多說,直接就上 吧!npm install jpush sdk npm install npm install 後加 registry org info un...

安卓實現軟鍵盤的彈出

先總結一堆 中涉及到的知識點 1 旋轉角度 imageview.animate rotation 90 setduration 1000 animate rotation 90 這個是表示旋轉90度的意思,這裡是要用到的。2 安卓中軟鍵盤的一些用法 android inputmethodmanage...

安卓中鍵盤輸入事件的實現

鍵盤的處理有幾種方式,其中看需求情況,有的是 鍵盤進行事件處理,有的是正在輸入時候進行鍵盤處理,今天我實現鍵盤輸入時進行事件的處理 et01.addtextchangedlistener new textwatcher override public void beforetextchanged c...