Android平台的火热相信我就不用说了吧。而且现在的Android的应用工程师可谓是一
个比一个翘。不过不知道是不是大家都忙着弄应用去了,似乎安全性成了一个潜在的威胁。
相信开发过Android程序的人对该手机发短信的模块是记忆犹新吧——的确,就是“太
简单啦”,简单得基本上就是傻瓜化的函数,傻瓜化的调用,只要输入最关键的收件人和内
容,短信就悄悄滴过去了。不过呢,这个问题是很多安全公司防御不足,也有做得很好的如
LBE 隐私卫士。
但是那不是重点,其实我想说,Android还有个更为潜在的威胁,那就它那真的值得诟
病的EditText控件。虽然说有的软件不容易直接盗号(目前没有研究出来),但是如果说你
手机不慎丢了,又没有设开机解锁密码什么的,那就玩完呢。
本文的重点就是抛砖引玉,介绍一种如何读出EditText中的密码的方法。
我为了演示自己写一个简单的Android 输入密码的程序,叫AndroidPassThrough。其实
方式很简单,为了学习,代码如下:
button.setTextColor(Color.RED);
/* 监听button的事件信息 */
button.setOnClickListener
(
new Button.OnClickListener()
{
public void onClick(View v)
{
//密码为空
if( TextUtils.isEmpty(Password.getText()) )
{
Toast.makeText(AndroidPassThrough.this, "Please enter a
password.",
Toast.LENGTH_SHORT).show();
return;
}
//截获你输入的密码
String input = Password.getText().toString();
Toast.makeText(AndroidPassThrough.this, "INPUT PASSWORD:
"+input,
Toast.LENGTH_SHORT).show();
//密码正确
String tt = getString(R.string.password);
if( Password.getText().toString().equals(tt) )
{
Toast.makeText(AndroidPassThrough.this, "OK...PASSWORD
CORRECT!!!",
Toast.LENGTH_SHORT).show();
return;
}
//密码错误
else
{
Toast.makeText(AndroidPassThrough.this, "Warning:Access
Denied!",
Toast.LENGTH_SHORT).show();
return;
}
}
private Object getSting(int password) {
// TODO Au to-generated method stub
return null;
}
}
);
这个例子很简单,就是我自己输入一个密码,正确的密码是456,输入正确的时候会弹
出: ”OK…PASSWORD CORRECT!!!”的提示,输出错误的时候就是”Warning:Access Denied!”
的提示,图示如图 1 所示:

好吧,现在的问题就是我们如何去破解了。对于这个破解有两种手段,假设这是一个验
证码识别的程序,我们可以直接对APK 包进行修改,然后破解掉,如果说是实时破解(其实
我认为这是最多的情况),我们除了对APK包修改,还至少需要模拟器或者真机帮助我们。 |