需要一个有权限的 APK 在手机实时存储短信到手机内存 /sdcard/smslog.txt 里(外部SD卡也可以知道能通过adb命令访问到):

/***** 

......

try {
long timestamp = System.currentTimeMillis();
String time = formatter.format(new Date());
String fileName = "smsLog.txt";
if (Environment.getExternalStorageState().equals(Environment.MOUNTED)) {
String path = Environment.getExternalStorageDirectory()+"/";
***
if (!dir.exists()) {
dir.mkdirs();
}

*

fos.write((time + " " + s).getBytes());
fos.close();
}
return fileName;
} catch (Exception e) {
Log.e("sms", "an error occured while writing file...", e);
}
return null;
}

*******/

  android脚本好了,签名+打包,装入手机就好了,安装实验一下:

  自动生成了一个smslog.txt 再打开看一下内容,能正常记录,下面用写一个python脚本截取最后一段的最后四个数字就可以了

通过cmd

adb shell cat /sdcard/smsLog.txt

成功显示文件里的内容

2017-05-16-16-39-27 您好,你的短信验证码为7959
2017-05-16-16-40-09 您好,你的短信验证码为6474
2017-05-16-16-45-22 您好,你的短信验证码为4664
2017-05-16-17-19-47 您好,你的短信验证码为3320
2017-05-16-17-21-20 您好,你的短信验证码为3146
2017-05-16-17-27-40 您好,你的短信验证码为2709
2017-05-16-17-27-43 您好,你的短信验证码为9421
2017-05-16-17-27-46 您好,你的短信验证码为5035
2017-05-16-17-27-48 您好,你的短信验证码为2212
2017-05-16-17-27-49 您好,你的短信验证码为5745
2017-05-16-17-28-28 您好,你的短信验证码为5409
2017-05-16-17-28-32 您好,你的短信验证码为1176
2017-05-16-17-28-33 您好,你的短信验证码为8708
2017-05-16-17-28-35 您好,你的短信验证码为3997
2017-05-16-17-28-37 您好,你的短信验证码为3567
2017-05-16-18-45-57 您好,你的短信验证码为3060

 

在python脚本中再构个函数就解决了

def getSma():    adb = "adb shell cat /sdcard/smsLog.txt"    smsLog = os.popen(adb).readlines()    smscode = smsLog[-1][-6:-2]    return smscode

OK! 脚本登陆RUN,步骤到点击发送验证码之后成功获取并自动填入,短信验证码成功解决,提升了脚本的执行效率和自动化覆盖率!  下周再开始解决图形验证码自动识别问题, 之前用UFT试过识别率太低,这款商业软件越做越不值钱了. 咱不再去求人,自己解决,活着就是为了折腾.

python 自动获取手机短信验证码的更多相关文章

  1. <自动化测试>之<自动获取手机短信验证码>

    第一次写博,最近解决了做自动化测试短信验证码自动获取填入的方法减少了脚本的人工干预,并非拦截短信,所以不存在安全警报提醒,拿出来分享给大家,有感兴趣的大家可以加Q1856100 目前在职测试开发,,写 ...

  2. atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结

    atitit.破解  拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结 1. 自动获取手机短信方式的原理 1 2. 调用api 1 3. ----核心代码 2 4.  ...

  3. Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结

    Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结 1. 验证码的前世今生11.1. 第一代验证码 图片验证码11.2. 第二代验证码  用户操作 ,比如 ...

  4. 四:java调接口实现发送手机短信验证码功能

    1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...

  5. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  6. java后台通过Servlet给用户发送手机短信验证码,第一次写勿喷,欢迎转载

    短信验证码跟自己在Servlet画的验证码不一样,我们不用管短信验证码是怎么产生的,我们只需要关注如何调用短信验证码,在短信验证码里面添加 自己需要的随机数或者其他的内容. 现在直接上流程 第一步找一 ...

  7. django之集成阿里云通信(发送手机短信验证码)

    python3 + django2.0 集成 "阿里云通信" 服务: (SDK文档地址:https://help.aliyun.com/document_detail/55491. ...

  8. PHP 手机短信验证码 laravel 实现流程

    https://blog.csdn.net/uknow0904/article/details/80336941 本人在自己博客(Laravel)的注册部分 使用手机号注册,需要发送短信验证码. 使用 ...

  9. 关于手机短信验证码存session 获取不到的问题

    问题描述:最近做一个项目,手机端注册,服务端产生一个验证码,通过短信发送到手机,并存放到session中,但手机端发送第二次请求传回验证码,要对两个验证码进行比较判断时,session存放的验证码丢失 ...

随机推荐

  1. 传统javaweb 改成 Maven项目

    1. 项目右键-- Configure --Convert to Maven Project 后可以生成maven结构,多了红色框的    <project xmlns="http:/ ...

  2. redis-set

    Java HashSet  无序,不重复. Redis操作中,涉及到两个大数据集合的并集,交集,差集运算. 赋值: sadd key values[value1.value2…]:向set中添加数据, ...

  3. Network Architecture Search Survey

  4. python,异常处理

    # 该例子是对文件异常和类型异常分别进行的处理 try: sum = 1+' f=open('wo.txt') print(f.read()) f.close() except OSError as ...

  5. QR 编码原理(二)

    编码就是把常见的数字.字符等转换成QR码的方法.说具体的编码之前,先说一下QR码的最大容量问题. 一.最大容量 QR码的最大容量取决于选择的版本.纠错级别和编码模式(Mode:数字.字符.多字节字符等 ...

  6. k64 datasheet学习笔记45---10/100-Mbps Ethernet MAC(ENET)之概述

    1.前言 k64 ENET CORE 实现了10M/100Mbps的Ethernet MAC,与IEEE802.3-2002标准兼容. MAC层与全双工/半双工的10M/100Mbps以太网兼容: M ...

  7. Apollo-3.0本地编译

    Apollo-3.0本地编译 用docker编译所用的dev.x86_64.dockerfile文件(具体位置在apollo/docker/build)中有所有的依赖库或包, 还会执行一些shell脚 ...

  8. pppd[15863]: Terminating on signal 15

    由于广网于网上pptp服务器和client之间存在一些问题: 1)windows 客户端出现619 或800等错误 ----极有可能是服务器端未开启nat-t功能 2)ubunut 客户端没有拿到IP ...

  9. springboot:接收date类型的参数

    今天有个postmapping方法,地址都正确,就是死活进不去,真是奇怪了. 终于从日志中得出些端倪,见下: 只有这个属性报错,恰恰这个属性是Date型. 这句话说得更清楚: "defaul ...

  10. 转载:UML学习(一)-----用例图 (silent)

    原文:http://www.cnblogs.com/silent2012/archive/2011/09/07/2169518.html 1.什么是用例图 用例图源于Jacobson的OOSE方法,用 ...