加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

分析黑客 | 实用技巧之“抢火车票、红包技术”,防止上当受骗

发布时间:2019-01-27 06:56:08 所属栏目:评论 来源:Jayson
导读:副标题#e# 一、抢火车票 1、抢火车票软件的技术原理 目前主流的抢票软件是安装在浏览器上的插件,像猎豹、360浏览器等,用于在12306网站上抢票。 常规情况下,使用12306网站订票时,如果刷新页面就需要再次填写个人信息,这就耽误了不少时间。这一耽误,可

微信自动抢红包的实现方法,主要实现以下几个功能:

  • 自动拆开屏幕上出现的红包
  • 处于桌面或聊天列表时接收到红包信息时自动进入聊天界面并拆红包
  • 日志功能,记录抢红包的详细日志

实现原理:

  • 利用AccessibilityService辅助服务,监测屏幕内容,实现自动拆红包的目的。
  • 利用ActiveAndroid数据库简单记录红包日志
  • 利用preference实现监控选项纪录

最终界面:

分析黑客 | 实用技巧之“抢火车票、红包技术”,防止上当受骗

抢红包核心代码:

AccessibilityService配置

  1. android:accessibilityEventTypes 设置触发监听回调的事件类型; 
  2. android:packageNames 设置监听的应用,这里监听的是微信,因此填上微信的包名com.tencent.mm 
  3. <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
  4. android:accessibilityEventTypes="typeNotificationStateChanged|typeWindowStateChanged|typeWindowContentChanged" 
  5.  android:accessibilityFeedbackType="feedbackGeneric" 
  6.  android:accessibilityFlags="flagDefault" 
  7.  android:canRetrieveWindowContent="true" 
  8.  android:description="@string/accessibility_description" 
  9.  android:notificationTimeout="100" 
  10.  android:packageNames="com.tencent.mm" 
  11.  android:settingsActivity="com.oden.annotations.app.activity.ManActivity" /> 

在AndroidManifest.xml中声明:

  1. <service 
  2.  android:name=".app.service.HongbaoService_" 
  3.  android:enabled="true" 
  4.  android:exported="true" 
  5.  android:label="@string/app_name" 
  6.  android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" > 
  7.  <intent-filter> 
  8.  <action android:name="android.accessibilityservice.AccessibilityService" /> 
  9.  </intent-filter> 
  10.  <meta-data 
  11.  android:name="android.accessibilityservice" 
  12.  android:resource="@xml/accessibility_service_config" /> 
  13.  </service> 

抢红包实现代码

接收系统发送来的AccessibilityEvent

  1. private static final String GET_RED_PACKET = "领取红包"; 
  2. private static final String CHECK_RED_PACKET = "查看红包"; 
  3. private static final String RED_PACKET_PICKED = "手慢了,红包派完了"; 
  4. private static final String RED_PACKET_PICKED2 = "手气"; 
  5. private static final String RED_PACKET_PICKED_DETAIL = "红包详情"; 
  6. private static final String RED_PACKET_SAVE = "已存入零钱"; 
  7. private static final String RED_PACKET_NOTIFICATION = "[微信红包]"; 
  8.   
  9. @Override 
  10. public void onAccessibilityEvent(AccessibilityEvent event) { 
  11.  L.d("RECEIVE EVENT!"); 
  12.  if (watchedFlags == null) return; 
  13.  /* 检测通知消息 */ 
  14.  if (!mMutex) { 
  15.  if (watchedFlags.get("pref_watch_notification") && watchNotifications(event)) return; 
  16.  if (watchedFlags.get("pref_watch_list") && watchList(event)) return; 
  17.  } 
  18.  if (!watchedFlags.get("pref_watch_chat")) return; 
  19.   
  20.  this.rootNodeInfo = event.getSource(); 
  21.  if (rootNodeInfo == null) return; 
  22.   
  23.  mReceiveNode = null; 
  24.  mUnpackNode = null; 
  25.   
  26.  checkNodeInfo(); 
  27.   
  28.  /* 如果已经接收到红包并且还没有戳开 */ 
  29.  if (mLuckyMoneyReceived && !mLuckyMoneyPicked && (mReceiveNode != null)) { 
  30.  mMutex = true; 
  31.  AccessibilityNodeInfo cellNode = mReceiveNode; 
  32.  cellNode.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK); 
  33.  mLuckyMoneyReceived = false; 
  34.  mLuckyMoneyPicked = true; 
  35.  L.d("正在打开!"); 
  36.  } 
  37.   
  38.  /* 如果戳开但还未领取 */ 
  39.  if (mNeedUnpack && (mUnpackNode != null)) { 
  40.  AccessibilityNodeInfo cellNode = mUnpackNode; 
  41.  cellNode.performAction(AccessibilityNodeInfo.ACTION_CLICK); 
  42.  mNeedUnpack = false; 
  43.  L.d("正在领取!"); 
  44.  } 
  45.   
  46.  if (mNeedBack) { 
  47.  performGlobalAction(GLOBAL_ACTION_BACK); 
  48.  mMutex = false; 
  49.  mNeedBack = false; 
  50.  L.d("正在返回!"); 
  51.  //总次数和金额统计 
  52.  if (isGetMoney) { 
  53.  T.showShort(this, "抢到一个红包: " + gotMoney + "元!"); 
  54.  totalMoney = totalMoney + gotMoney; 
  55.  totalSuccessNum++; 
  56.  myPrefs.totalMoney().put(totalMoney); 
  57.  myPrefs.successNum().put(totalSuccessNum); 
  58.  L.d("totalMoney: " + totalMoney); 
  59.  L.d("totalSuccessNum: " + totalSuccessNum); 
  60.  saveToLog(hongbaoInfo); 
  61.  isGetMoney = false; 
  62.  } 
  63.  } 

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读