钉钉抢红包

Posted everlastxgb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了钉钉抢红包相关的知识,希望对你有一定的参考价值。

Kido抢红包外挂

本应用参(抄)考(袭)[CodeBoy的微信抢红包]-(利用AccessibilityService辅助功能),在其基础上加入了钉钉抢红包,同时做了一些小整改。可以帮助你自动抢微信红包、钉钉红包。

自动抢红包大致流程

  1. 捕捉notification的消息文本,有对应文本则打开应用。
  2. 在消息列表的时候,捕捉消息列表的文本,有对应文本则进入聊天界面。
  3. 在聊天界面的时候,捕捉红包上面的特定文本,有对应文本则点击进入拆红包界面。
  4. 在拆红包界面的时候,获取拆红包那个节点,执行模拟点击。

使用前须知

  1. 请先按提示开启辅助服务。
  2. 请开启微信/钉钉的“消息通知模式”(关闭“免打扰”)。
  3. 锁屏情况下不会自动抢,只会提醒。(所以若想一直保持自动抢,请勿锁屏)
  4. 注:由于钉钉的限制,钉钉的自动拆红包需要获取Root权限。(微信则无需)

应用截图


其它

特殊处理:

由于钉钉获取到的拆红包节点ImageButton无法定位到中间那个“拆红包”,所以无法直接通过Node的performClick执行模拟点击。以下是微信的“拆红包”和钉钉的“拆红包”:

所以此处做的处理是获取Root执行点击的命令,这里针对钉钉做出的特殊处理,应该算是本应用的一大败笔


    private final static String FORMAT_CMD_TAP = "input tap %1$s %2$s";

    /**
     * 执行shell命令
     *
     * @param cmd
     */
    public static void execShellCmd(String cmd) 

        try 
            // 申请获取root权限,这一步很重要,不然会没有作用
            Process process = Runtime.getRuntime().exec("su");
            OutputStream outputStream = process.getOutputStream();
            DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
            dataOutputStream.writeBytes(cmd);
            dataOutputStream.flush();
            dataOutputStream.close();
            outputStream.close();
         catch (Throwable t) 
            t.printStackTrace();
        
    

    /**
     * 执行点击
     *
     * @param posX 相对屏幕的x轴
     * @param posY 相对屏幕的y轴
     */
    public static void execTap(int posX, int posY) 
        String cmd = String.format(FORMAT_CMD_TAP, posX, posY);
        execShellCmd(cmd);
    

下载地址

以上是关于钉钉抢红包的主要内容,如果未能解决你的问题,请参考以下文章

APP逆向分析之钉钉抢红包插件的实现-iOS篇

继支付宝红包之后,阿里钉钉也遭微信QQ联合围剿

关于年会抢红包游戏的一个思考

钉钉api调用

钉钉绑定及一键联网教程

抢红包神器上线,再也不怕抢不到红包了!