簡單的禁止應(yīng)用被雙開的方法

通過LocalServerSocket限制

前段時間發(fā)現(xiàn)一個應(yīng)用被雙開后纸俭,不能同時在一個手機(jī)上登陸兩個賬號,登陸A之后南窗,B會被踢下線揍很。
剛開始還以為有什么黑科技,或者有名管道矾瘾,本地socket之類的女轿,或者是向sd卡寫了什么文件,這幾種方案都檢查了壕翩,沒有效果蛉迹。
沒辦法只能分析它的邏輯了,應(yīng)用是加固了的放妈,脫殼之后分析其原理北救。偶然通過netstat命令發(fā)現(xiàn)了這個應(yīng)用監(jiān)聽了一個端口,發(fā)現(xiàn)原來用了這么簡單的一種方法防止雙開芜抒,既沒有讀取IMEI珍策,IMSI,也沒有黑科技宅倒。就下面幾行代碼

        /* renamed from: b */
        public boolean mo4479b(String str, VirtualCheckCallback virtualCheckCallback) {
            if (this.f1320d != null) {
                return false;
            }
            try {
                this.f1320d = new LocalServerSocket(str);
                return false;
            } catch (IOException unused) {
                if (virtualCheckCallback != null) {
                    virtualCheckCallback.mo4480a();
                }
                return true;
            }
        }

原理是創(chuàng)建了一個 LocalServerSocket攘宙,傳入了同一個 str,LocalServerSocket在native還是通過linux的套接字實現(xiàn)的拐迁,這個str是不能重復(fù)的蹭劈,只要重復(fù)了就是bind失敗,就這么簡單线召,檢測到創(chuàng)建LocalServerSocket失敗就退出登陸铺韧,防止被雙開。

檢測service代理

還有另外一種方法是檢測service是否被代理缓淹,PMS在雙開里面是必然要被代理的哈打,恰好ActivityThread里面也存了一份緩存。

try {
    Class v0_2 = Class.forName("android.app.ActivityThread");
    Object v13 = v0_2.getDeclaredMethod("currentActivityThread").invoke(null);
    Field v0_3 = v0_2.getDeclaredField("sPackageManager");
    v0_3.setAccessible(true);
    if(!Proxy.isProxyClass(v0_3.get(v13).getClass())) {
        goto label_35;
    }
    arg17.finish();
    Process.killProcess(Process.myPid());
label_35:
    ...
}

回溯棧檢查有沒有可疑的class

檢測data dir路徑時候有可疑

    public final boolean g(Context context) {
        String e2 = e(context);
        if (e2 == null || !m.m(e2, "com.android.vending", false, 2, (Object) null)) {
            return false;  // 安裝應(yīng)用檢查
        }
        return true;
    }

    public final int d(String str) {
        int i2 = 0;
        for (int i3 = 0; i3 < str.length(); i3++) {
            if ('.' == str.charAt(i3)) {
                i2++;
            }
        }
        return i2;
    }

    public final void a(Activity activity) {
        File filesDir = activity.getFilesDir();
        i.d(filesDir, "activity.filesDir");
        String path = filesDir.getPath();
        i.d(path, "activity.filesDir.path");
        TelloApplication C = TelloApplication.C();
        i.d(C, "TelloApplication.getInstance()");
        String packageName = C.getPackageName();
        boolean z = false;
        boolean z2 = m.c0.n.o(path, "999", false, 2, (Object) null) || m.c0.n.o(path, "150", false, 2, (Object) null);
        if (d(path) > 2) {  // path路徑檢查讯壶,如果filesdir中.的數(shù)量超過2個就判斷為可疑
            z = true;
        }
        boolean g2 = m.g(packageName, "com.udna.tellotalk", true);
        if (z2 || z || !g2 || !b(activity) || !g(activity)) {
            v.c().r("is_app_clone", 1);
            f(activity);
            return;
        }
        v.c().r("is_app_clone", 2);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末料仗,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鹏溯,更是在濱河造成了極大的恐慌罢维,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肺孵,居然都是意外死亡匀借,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門平窘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吓肋,“玉大人,你說我怎么就攤上這事瑰艘∈枪恚” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵紫新,是天一觀的道長均蜜。 經(jīng)常有香客問我,道長芒率,這世上最難降的妖魔是什么囤耳? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮偶芍,結(jié)果婚禮上充择,老公的妹妹穿的比我還像新娘。我一直安慰自己匪蟀,他們只是感情好椎麦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著材彪,像睡著了一般观挎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上段化,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天键兜,我揣著相機(jī)與錄音,去河邊找鬼穗泵。 笑死,一個胖子當(dāng)著我的面吹牛谜疤,可吹牛的內(nèi)容都是我干的佃延。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼夷磕,長吁一口氣:“原來是場噩夢啊……” “哼履肃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起坐桩,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤尺棋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绵跷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膘螟,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡成福,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了荆残。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奴艾。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖内斯,靈堂內(nèi)的尸體忽然破棺而出蕴潦,到底是詐尸還是另有隱情,我是刑警寧澤俘闯,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布潭苞,位于F島的核電站,受9級特大地震影響真朗,放射性物質(zhì)發(fā)生泄漏此疹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一蜜猾、第九天 我趴在偏房一處隱蔽的房頂上張望秀菱。 院中可真熱鬧,春花似錦蹭睡、人聲如沸衍菱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脊串。三九已至,卻和暖如春清钥,著一層夾襖步出監(jiān)牢的瞬間琼锋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工祟昭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缕坎,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓篡悟,卻偏偏與公主長得像谜叹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搬葬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,100評論 1 32
  • //gradle 下載慢 //可以直接下載gradle之后放在對應(yīng)的目錄里//或者修改 根目錄下的文件bul...
    zeromemcpy閱讀 885評論 0 0
  • 最全的iOS面試題及答案 iOS面試小貼士 ———————————————回答好下面的足夠了-----------...
    zweic閱讀 2,700評論 0 73
  • alert(a); function name(parameters) { alert(parameters); ...
    name阿喆azhe閱讀 1,037評論 0 3
  • 2018年2月27日 星期二 陰 今天本來閨女有練字的課荷腊,一看天不好,風(fēng)又很大急凰,小寶剛好了女仰,就向老師請了...
    世界只有一個自己閱讀 148評論 0 0