本文为浪里个男【个人微信:love2094520】原创文章。
原创不易,转载请务必注明!
【文章末尾我教大伙一键屏蔽微信红包插件!!!】
过年期间抢红包,几乎成了一项“全民运动”。但手动抢红包的速度毕竟有限,不可能抢到所有的红包。
为此,网上各种“抢红包神器”如泉涌一般遍地发布,各种【官方】不官方插件孕育而生,手机系统也不落伍,360,乐视,小米,魅族.......
尽然还天真到把抢红包速度测试归结成手机一大重大的卖点,各种对比评测.........【Ps:那些手机制造商销售商们,手机抢红包速度和你系统屁大关系啊!不是手机当时网络环境,运营商状态,微信版本,微信服务器什么才扯上关系吗?】
这些软件都自称能自动监控微信。一旦发现有新的红包,软件会自动在第一时间去抢。整个过程无需人工控制,用户在睡觉的时候都会有红包进账。这是第三方软件抢红包方式。
但是如果是手机厂家,他们的做法就死红包来了,提醒你,并不会主动抢。还有理有据的对外宣称:我们不破坏微信原则,不会主动帮你抢!呵呵......
好多我心中一直神圣而伟大的一加氢OS系统站出来说出来了我的心里话,怒赞一个:
没办法,自称是技术狗其实懂不点技术的我,
在网上找了这些抢红包的源码:
这些软件大致使用AccessibilityService去一步步监听微信的动作:
1、继承AccessibilityService的类,如QiangHongBaoService,然后在AndroidManifest.xml里声明组件,如下
android:label="@string/app_name"
android:name=".QiangHongBaoService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
android:name="android.accessibilityservice"
android:resource="@xml/qianghongbao_service_config"/>
在meta-data里声明的是辅助配置,这个是Android4.0之后才支持的写法,在4.0之前的系统要在代码里声明。
2、在res/xml目录下生成辅助服务的配置文件qianghongbao_service_config.xml
android:description这个是设置服务的描述,在用户授权的界面可以看到。
android:accessibilityEventTypes这个是配置要监听的辅助事件,我们只需要用到typeNotificationStateChanged(通知变化事件)、typeWindowStateChanged(界面变化事件)
android:packageNames这个是要监听应用的包名,如果要监听多个应用,则用,去分隔,这里我们只需要监听微信的就可以了。
3、在以上都配置好后,我们就可以在QiangHongBaoService这个服务里进行编码了,要做的就是将整个UI跳转流程与逻辑串联起来。详细看AccessibilityServiceInfo类文档描述
@Overridepublic void onAccessibilityEvent(AccessibilityEvent event) { //接收事件,如触发了通知栏变化、界面变化等 }@Overrideprotected boolean onKeyEvent(KeyEvent event) { //接收按键事件
return super.onKeyEvent(event);
}@Overridepublic void onInterrupt() { //服务中断,如授权关闭或者将服务杀死}@Overrideprotected void onServiceConnected() { super.onServiceConnected(); //连接服务后,一般是在授权成功后会接收到}。
那么,看完源码后,
如何防止外挂呢?我总结了一点经验。独家分享:
在了解整个核心后,获取事件不外乎就是通过文本与id判断,
那么就可以将文本改为图标方式,
将id改为动态id(每次显示都是随机生成),
这样一来就可以提高外挂的门槛。
还是不懂,我这样简单说吧:
就是在发红包前,
发送文本[微信红包],
可以导致部分外挂工具失效。但不可能达到100%,建议大伙以后发送之前如果不闲麻烦可以尝试下。
本文为浪里个男【个人微信:love2094520】原创文章。
原创不易,转载请务必注明!
【文章末尾我教大伙一键屏蔽微信红包插件!!!】