你好,游客 登錄 注冊 搜索
背景:
閱讀新聞

反編譯某軟件直接進入微信二維碼掃描界面

[日期:2017-07-11] 來源:簡書  作者:追風917 [字體: ]

今天無意發現了一款軟件,進去點了兩下,竟然直接跳到了微信二維碼掃描界面,喜悅之情難以掩飾,終于等到你...

昨夜西風凋碧樹

沒錯,三個月之前,我需要這個技能,網上搜索了一番,得到如下代碼:

    public static void toWeChatScan(Context context) {
        try {
            Uri uri = Uri.parse("weixin://");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            context.startActivity(intent);
        } catch (Exception e) {
        }
    }

然而新版本微信已經失效,只能進入到微信界面,不能打開二維碼.獨上高樓,望盡天涯路.

衣帶漸寬終不悔

時間如流水般飛逝了兩周,忽然打開了小米的掃一掃,這個軟件技能真多,不僅可以掃碼,還可以掃題,掃名片,掃文檔,掃字翻譯,這都不是重點,關鍵能直接進入微信和支付寶掃一掃.

于是提取了這個apk(怎么提取呢,后面會寫個文章,專門介紹那些安卓開發神器APP,顫抖吧...).反編譯了下,這個app也沒混淆,也沒加固,哈哈哈,最新版不知道啥情況,不過可悲的是去掉了微信和支付寶掃一掃入口...

反編譯得到了如下代碼:

    public static void toWechatScanFromMIUI(Context context) {
        String packageName = "com.tencent.mm";
        String activityName = "com.tencent.mm.plugin.scanner.ui.BaseScanUI";
        Intent intent;
        try {
            intent = new Intent();
            intent.setClassName(packageName, activityName);
            intent.setFlags(268435456);
            intent.setComponent(new ComponentName(packageName, activityName));
            context.startActivity(intent);
        } catch (Exception e) {
        }
    }

這個可以直接進入微信掃一掃二維碼 Activity, 怎么知道是這個 Activity 呢,期待神器祭出吧.然鵝,我的APP使用這個代碼,同樣只打開了微信界面,并沒有卵.
發生了什么,谷歌了一下,發現只有兩種情況可以打開其他軟件的 Activity:

  1. 目標 Activity  exported 標簽
  2. 需要權限 android.permission.START_ANY_ACTIVITY

發現微信掃一掃這個 Activity 并沒有 exported 標簽,然后在小米掃一掃的清單文件里發現了上面那個神一般的權限,然而這個權限和系統有關系,不同的系統處理有些差異,具體未測試,在miui上不好使,有了系統權限肯定好使,而這個掃一掃就具有系統權限,為伊消得人憔悴.

眾里尋他千百度

時間轉眼就來到了七月份的前頭,一切仍在他合適的軌道上運轉,不偏不倚,不快不慢.

就像那個很火的英文詩歌寫的那樣:

New York is 3 hours ahead of California,
but it does not make California slow.
……

詩歌寫的很棒,讀起來也很舒服,內容更是不用多說。

今天,一個普通應用打開了你,原來這就是你的樣子.

  1. 使用反編譯神器 jadx 破解,還好沒加固,只是混淆了一下,希望還是有的
  2. 用顯示任意 Activity 的神器找到該 Activity
  3. 還好代碼不多,點擊事件處理里跳轉了一下,找到了下面的代碼:
    public static void toWeChatScanDirect(Context context) {
        try {
            Intent intent = new Intent();
            intent.setComponent(new ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI"));
            intent.putExtra("LauncherUI.From.Scaner.Shortcut", true);
            intent.setFlags(335544320);
            intent.setAction("android.intent.action.VIEW");
            context.startActivity(intent);
        } catch (Exception e) {
        }
    }

測試了下,完美展現了你的樣子.驀然回首,原來,你在這里.

收藏 推薦 打印 | 錄入:Cstor | 閱讀:
本文評論   查看全部評論 (0)
表情: 表情 姓名: 字數
點評:
       
評論聲明
  • 尊重網上道德,遵守中華人民共和國的各項有關法律法規
  • 承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
  • 本站管理人員有權???留或刪除其管轄留言中的任意內容
  • 本站有權在網站內轉載或引用您的評論
  • 參與本評論即表明您已經閱讀并接受上述條款
棋牌app搭建教程视频 内蒙古11选5 榆林中彩票 复式在线过滤工具 七乐彩走势图模式 体彩天津11选5走势图表 投注站足球 极速飞艇在线计划 山东11选5任选2技巧 大乐透现场开奖结果查询 时时彩后三组选遗漏号码查询