Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

判断条件好像写错了 #3

Open
sgact opened this issue Aug 13, 2018 · 5 comments
Open

判断条件好像写错了 #3

sgact opened this issue Aug 13, 2018 · 5 comments

Comments

@sgact
Copy link

sgact commented Aug 13, 2018

我觉得正确是这样的:

return !pkgname.equals(process) || JniHelper.isRunInVa();

@qtfreet00
Copy link

这里是用来过滤进程的,不属于判断条件

@qtfreet00
Copy link

java代码不是必须的,可以完全使用jni就行

@sgact
Copy link
Author

sgact commented Aug 15, 2018

谢谢回复!关于网易的多开,想和您探讨一下以下做法是否可行。

我在网易中多开一个程序,然后ps是这样的

cancro:/ # ps | grep ifxp
u0_a81 2852 255 940456 58036 00000000 4008632b S police.sg.com.ifxposed.p71bHrVo_1
u0_a84 2876 255 940376 57048 00000000 4008632b S police.sg.com.ifxposed

可以看到用户名变了。所以我在想能不能判断 包名,或者指定的进程名,与 真实的进程名做比较来判断是否app的运行环境产生了异常。

还有一种方法,我在Manifest中注册一个接受指定Intent的Activity,如下

        <activity
            android:exported="true"
            android:name=".MultiTest" >
            <intent-filter>
                <action android:name="a_random_unique" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

然后用下面的方法来判断是否多开:

    public boolean isMultiOpen(){
        Intent i = new Intent("a_random_unique");
        List<ResolveInfo> list = getPackageManager().queryIntentActivities(i, MATCH_DEFAULT_ONLY);
        //这里可以是实际情况加一些限制
        return list.size() > 1;
    }

我在网易等系统级多开上试了下,都能测出来。现在最担心的就是是否会存在误报的情况。我再这方面经验不足,希望能得到一些指点。

@qtfreet00
Copy link

最简单的方式就是判断进程名是否和manifest里定义的package名称是否一致就可以了

@qtfreet00
Copy link

当然你想更简单的话 可以在已知app包名的情况下进行硬编码判断就行,当然最好的方式还是通过收集特征由服务器进行判断,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants