-
-
[原创]内嵌有米广告去除广告和所有权限
-
发表于:
2013-1-12 23:59
26392
-
标 题: 【原创】内嵌有米广告去除广告和所有权限
作 者: arsusanh
声明:本文章仅做技术研究,请勿用于非法用途。
有两个目的:
一、去掉有米广告
二、去掉所有权限
这个游戏是我在一个论坛看到的,是别人求助去有米广告的。
这个是没有去广告的截图:
下面说下具体去除方法:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
这个是有米广告必须有的权限,(你删除任何一个或全部权限,安装软件后运行会提示你缺少必要的权限,这个就说明其中有一个检查权限的地方,就从这个入手)随便找个权限,比如:
android.permission.READ_PHONE_STATE
在反编译后的文件夹内搜索含该值的文件。其中有个是by.smali文件(因为这个软件加了混淆,我这里是这个名字),位于net\youmi\android内,这个就是检查权限的地方,下面贴上检查权限的源码:
static boolean a(Context paramContext, String paramString)
{
try
{
int i = paramContext.checkCallingOrSelfPermission(paramString);
if (i == -1)
{
bool = false;
return bool;
}
}
catch (Exception localException)
{
while (true)
boolean bool = true;
}
}
对应的反编译是:
.method static a(Landroid/content/Context;Ljava/lang/String;)Z
.locals 2
:try_start_0
invoke-virtual {p0, p1}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
move-result v0
const/4 v1, -0x1
if-ne v0, v1, :cond_0
const/4 v0, 0x0
:goto_0
return v0
:catch_0
move-exception v0
:cond_0
const/4 v0, 0x1
goto :goto_0
.end method
2个返回值,1和0,修改返回值为0的语句,把
const/4 v0,0x0改为const/4 v0,0x1来伪造所有必须要的权限都有,当然也可以修改if语句到达目的,但是不建议这么做,最后就是删除AndroidManifest.xml内所有权限,对于这个游戏来说,去掉所有权限就等于去掉了广告,因为是网络广告,去什么权限要依照你的软件或者游戏而定。
最后附上去所有权限和广告的图:
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)