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

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

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

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


)V #设置取消按钮的监听器
invoke-virtual  {p0},
 
Lcom/qihoo360/mobilesafe/ui/privatespace/PrivateSetupPreference;->isFinishing() Z
move-result v0
if-nez v0, :cond_0
invoke-virtual   {v3}, Lcom/qihoo360/mobilesafe/ui/dialog/DialogFactory;->show()V  #显示出来
:cond_0 return-void
.end method
代码我注释的很详细了,关键点也是加黑部分的设置监听器的地方,我们看看 “agj.smali”文件:
.method public onClick(Landroid/view/View;)V
.locals 3
iget-object v0, p0, Lagj;->a:Landroid/widget/EditText;
invoke-virtual  {v0}, Landroid/widget/EditText;->getText()Landroid/text/Editable;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; #
☻获取密码
move-result-object v0
iget-object v1, p0, Lagj;->b:Landroid/widget/EditText;
invoke-virtual  {v1}, Landroid/widget/EditText;->getText()Landroid/text/Editable;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String; #
☻获取确认密码
move-result-object v1
invoke-static  {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z #判断密码是否为空
move-result v2
if-nez v2, :cond_0
invoke-static  {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z #判断确认密码是否 为空

move-result v2
if-nez v2, :cond_0
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
#判断两密码是否相等
move-result v0
if-nez v0, :cond_1
:cond_0
iget-object v0, p0, Lagj;->d:Lcom/qihoo360/mobilesafe/ui/privatespace/PrivateSetupPreference;
const v1, 0x7f0b009d
const/4 v2, 0x0
invoke-static  {v0,  v1,  v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/To
ast;

move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V  #提示密码输入错误
:goto_0 return-void
:cond_1
iget-object v0, p0, Lagj;->a:Landroid/widget/EditText;
invoke-virtual  {v0}, Landroid/widget/EditText;->getText()Landroid/text/Editable;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; #
再次获取密码

move-result-object v0
iget-object v1, p0, Lagj;->d:Lcom/qihoo360/mobilesafe/ui/privatespace/PrivateSetupPreference;
invoke-static {v1,  v0}, Laue;->g(Landroid/content/Context;Ljava/lang/String;)V #  ☻调用 g()方法☻
iget-object v0, p0, Lagj;->c:Lcom/qihoo360/mobilesafe/ui/dialog/DialogFactory;
invoke-virtual  {v0}, Lcom/qihoo360/mobilesafe/ui/dialog/DialogFactory;->dismiss()V #退出对话框
goto :goto_0
.end method
处理很简单,如果输入没有错误的话就调用 aue->g()方法,然后退出对话框,我们 继续跟踪代码:
.method public static g(Landroid/content/Context;Ljava/lang/String;)V
.locals 3
sput-object p1, Laue;->u:Ljava/lang/String;
invoke-static   {p0}, Laue;->p(Landroid/content/Context;)Ljava/lang/String;  #☻调用 aue-p()方法☻
move-result-object v0  #保存“private_security_token”到 v0
invoke-static  {p0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/co ntent/Context;)Landroid/content/SharedPreferences;
move-result-object v1
invoke-interface  {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$E
ditor; #获取一个编辑器
move-result-object v1
const-string v2, "private_password_token" #要写入保存的键值
invoke-static {v0, p1},
 
Lals;->c(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
#☻调用 als-c()方法进行加密
move-result-object v0
invoke-interface {v1, v2, v0}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/l
ang/String;)Landroid/content/SharedPreferences$Editor; #调用编辑器的方法写入字
符串值
invoke-interface  {v1}, Landroid/content/SharedPreferences$Editor;->commit()Z#提交保存
return-void
.end method
这里将要保存的密码进行加密后保存,关键点就在于分析 aue-p()与 als-c()了。这里 我 再 跟下 去怕 没完没 了 ,说下 aue-p() 吧,它 的作 用是 写 入并保 存 “ private_security_token”, 而 als-c()方法 则 传入“ private_password_token”与 “private_security_token”进行 DES 加密,最后调用 als-a()方法进行位移与运算,最后 写入配置文件中。总结下代码的步骤为

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

百度搜索更多

谷歌搜索更多

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

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


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

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