市场如何检测是否有某家的广告

1.现在积分墙被各大市场拒绝,开发人员不知道从哪里赚钱,悲剧啊,Android!

2.市场到底如何判断应用是否有积分墙或者广告?

3.知道它怎么检测,是否有办法绕过检测呢?


首先,假设各个市场是有反编译工具的,能把class.dex反编译出classes_2dex.jar包,这个假设大家没意见吧?

然后,市场就对这个classes_2dex.jar检测就可以了!对jar包检测是否有比如万普的"com.waps"这样的包名,就肯定有广告!N多就是这么干的!

代码如下:

import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class TestMain {
	public String className;

	public ArrayList<String> jarFiles = new ArrayList<String>();

	public TestMain() {
	}

	public TestMain(String className) {
		this.className = className;
	}

	public void setClassName(String className) {
		this.className = className;
	}

	public List<String> findClass(String dir, boolean recurse) {
		searchDir(dir, recurse);
		return this.jarFiles;
	}

	protected void searchDir(String jarPath, boolean recurse) {
		if (!jarPath.endsWith(".jar")) {
			return;
		}

		ZipFile zip;
		try {
			zip = new ZipFile(jarPath);
			@SuppressWarnings("rawtypes")
			Enumeration entries = zip.entries();
			while (entries.hasMoreElements()) {
				ZipEntry entry = (ZipEntry) entries.nextElement();
				String thisClassName = getClassName(entry);
				if (thisClassName.contains(this.className)
						|| thisClassName.equals(this.className)
						|| thisClassName.equals(this.className + ".class")) {
					this.jarFiles.add(thisClassName);
				}

			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public List<String> getFilenames() {
		return this.jarFiles;
	}

	protected String getClassName(ZipEntry entry) {
		StringBuffer className = new StringBuffer(entry.getName().replace('/',
				'.'));
		return className.toString();
	}

	public static void main(String args[]) {
		TestMain findInJar = new TestMain("com.waps");//要找的包名或者类名
		List<String> jarFiles = findInJar.findClass(
				"C:/Users/Administrator/Desktop/classes_dex2jar.jar", true);//要检测的jar包
		if (jarFiles.size() == 0) {
			System.out.println("Not Found");
		} else {
			for (int i = 0; i < jarFiles.size(); i++) {
				System.out.println("Found it:" + i + "===" + jarFiles.get(i));
			}
		}
	}
}

结果肯定是能检测出来的!

如何防范这种检测,目前我还没想出办法,再看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

了悟生死大事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值