免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 系统安全 > 击溃360手机卫士的三大防护Android版(2)

击溃360手机卫士的三大防护Android版(2)

时间:2012-04-19 19:38来源:未知 整理:寂涯网络 点击:


上面第一种思路是分析所得的结果,思路如下,首先,要知道 360 是何时注册的广播接 收者,打开“smali\com\qihoo360\mobilesafe\receiver\MessageReceiver.smali”文件, 它 就 是 短 信 接 收 者 , 直 接 看 “onReceive(Landroid/content/Context;Landroid/content/Intent;)V”代码如下:
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.locals 5 const/4 v4, 0x0
sget-boolean v0, Lcom/qihoo360/mobilesafe/service/MobileSafeService;->c:Z
if-eqz v0, :cond_0
sget-boolean v0, Lcp;->f:Z
if-eqz v0, :cond_1
:cond_0
:goto_0  #MobileSafeService->c 与 cp->f 条件判断
return-void
:cond_1
const-class v0, Lcom/qihoo360/mobilesafe/service/SafeGuardMmsService;
# 获取 SafeGuardMmsService 类 -->>  v0 = SafeGuardMmsService.class
invoke-virtual  {p2,  p1,  v0}, Landroid/content/Intent;->setClass(Landroid/content/Context;Ljava/lang/Class;)L android/content/Intent;
#☻  p2 为 第 二 个 参 数 , -->>  p2.setClass( 参 数 1,
SafeGuardMmsService.class);
invoke-static {}, Lawv;->a()I
move-result v0
const-string v1, "MessageReceiver"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "onReceive::SDKVer ="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual  {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lals;->b(Ljava/lang/String;Ljava/lang/String;)V
#调用 als->b(),猜测为打 log
const/4 v1, 0x4
if-le v0, v1, :cond_2  #判断 SDK 版本是否大于 4
:try_start_0
const-class v1, Landroid/content/BroadcastReceiver;
const-string v2, "isOrderedBroadcast"  #是否为有序广播
const/4 v0, 0x0
check-cast v0, [Ljava/lang/Class;
invoke-virtual  {v1,  v2,  v0}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava
/lang/reflect/Method;
#获取方法,用来判断是否为有序广播
move-result-object v1 const/4 v0, 0x0
check-cast v0, [Ljava/lang/Object; #0 类型转换为 Object
invoke-virtual  {v1,  p0,  v0}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/
lang/Object;  #调用判断方法
move-result-object v0
check-cast v0, Ljava/lang/Boolean;
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z  #结果转换为
Boolean 值
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 move-result v0
:goto_1
if-eqz v0, :cond_3  #如果为 0 就跳走(开启保护),为有序广播就继续处理
invoke-direct  {p0,  p1,  p2}, Lcom/qihoo360/mobilesafe/receiver/MessageReceiver;->a(Landroid/content/Context; Landroid/content/Intent;)V
#☻  调用 a()方法☻
:goto_2
invoke-static {p1}, Lcp;->c(Landroid/content/Context;)V
goto :goto_0  #返回
:catch_0  #catch 处理
move-exception v0
const-string v1, "MessageReceiver"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "invoke error "  #生成错误提示字符串
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual  {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lals;->b(Ljava/lang/String;Ljava/lang/String;)V
#这里打 log 显示
move v0, v4 goto :goto_1
:cond_2
move v0, v4 goto :goto_1
:cond_3
invoke-virtual {p1, p2}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/conte nt/ComponentName;
#☻  启用了 SafeGuardMmsService 服务(开启舒肤佳短信服务*^_^*)☻
goto :goto_2
.end method
在 onReceive()收到广播后,对消息进行判断,对是否为有序广播执行了 a()与开启

本页地址 http://www.jybase.net/xitonganquan/20120419830.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com