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

当前位置: 主页 > 系统综合 > 软件破解 > 逆向破解Android系统(2)

逆向破解Android系统(2)

时间:2011-12-04 19:55来源:未知 整理:寂涯网络 点击:


  首先介绍一下,Android 下面的几个必不可少的破解工具,SMALI、BAKSMALI 和 APK 签
名工具(我用的是RZ_mass_apksign),这就可以使得你在没有源码(其实一般都不可能有)
的情况下,如何对未知的APK 进行破解。
  其次是 Android的 APK 结构。Android的 APK 是一个安装包,每一个APK 都有编译软件
ECLIPSE 的签名,有的还有证书等等, APK的意义等同于WM下的CAB和 Symbian下的 SIS (有
证书的算是SISX)。其实我们可以用WINRAR直接打开Android的 APK,因为事实上它是一个
ZIP 格式(我曾经用 MINIZIP 的代码修改过、重组过,这个是完全肯定的)。在这个 APK 包
中有几个非常重要的文件,例如AndroidManifest.xml是表示了这个APK的权限,而还有一
些是资源文件,一起打包在内,我们需要修改的就是classes.dex文件。
  开发过 Android的都知道,Android其实不是用的JVM 来运行的,严格说是 dalvikvm。
而在 APK 中的 classes.dex 就是一种字节码文件,其含有你编写的 JAVA 的代码信息。
BAKSMALI 的作用是把 classes.dex 转为一种具有可读性的 SMALI 文件,其实代码形式有点
汇编的感觉。而 SMALI 的作用就是相反的,把 SMALI 文件,包括可能被你修改过的 SMALI
文件一起重新打包生成 classes.dex,这个时候,classes.dex 就嵌了你的代码了。不过值
得注意的是,仅仅是组好了包,你还不可能安装得成,因为签名。不过既然有签名,ECLIPSE
也是可以签名的,这个东西就目前了解看来显得有点废。
  好吧,接下来就是破解了:
  首先我把自己编的 APK——AndroidPassTrough.apk 用 WINZIP 打开,然后把里面的
classes.dex提取出来,用SMALI 打开,修改,所用的命令和如下图 2 所示:

然后,我们进入class 目录下,搜寻足迹,因为我们编的代码中用到了提示Toast,所
以说主要就是以看它为主,然后找到关键的跳转点,什么 if-eqz 之类的,相信大家一看就
明白:如果等于0,跳转。先再看一下原始代码:  
//密码正确
String tt = getString(R.string.password);
if( Password.getText().toString().equals(tt) )
{
Toast.makeText(AndroidPassThrough.this,
  "OK...PASSWORD CORRECT!!!",
Toast.LENGTH_SHORT).show();     
return;
}

对应 SMALI代码修改的方式如下图 3所示:

  在这里,“#”表示注释号,我将判断语句注入之后,保存修改,用SMALI 重新组包:

  然后用 APK签名工具签名之后重新安装,就完成了破解。前面说过密码是3位“456”,
现在我随便输入什么都是正确的密码了,图示如下所示:

  但是,这还不够。假设说,人家安装的APK且有数据在上面,而我的目的不是覆盖安装,
而是截获人家的数据或者说绕过密码校验,应该怎么办呢?
  这里就不得不提到为什么要一个真机或者模拟器的缘故了,其实也可以不用要,但是以
目前初学的水平还没有能够找到一种直接生成ODEX文件的办法,什么是ODEX文件?这就是
实时破解的关键之一。下图为实时破解的一个框图:

 Android 手机的实时破解需要 ROOT 的支持,这个问题我个人没法解决,但是网上还是
有很多相关的资料和软件,大家应该可以自行解决。这里需要提到的是 ODEX 文件和安装完
成后在/data/app/下的备份APK文件。
ODEX文件也是长得像classes.dex的文件,但是特点是它是系统的DEX文件,可以狭义理
解为我们安装完了Android APK之后,classes.dex将XML资源加载到自身的一个DEX文件。它
跑在系统中,位于/data/dalvik-cache/下面,其命令形式有规律的,比如我这个,是属于
外部安装(非系统自带APK),是 data@app@[包名]-X.apk@classes.dex(X为 1或者 2)。
破解的关键图上已经表现了,就是替换掉/data/app下的备份 APK 和一个从模拟器或者
其它真机导出来的被破解之后的ODEX文件。然后我们将之前的应用关闭(或者kill掉也行),

本页地址 http://www.jybase.net/ruanjianpojie/20111204696.html

百度搜索更多

谷歌搜索更多

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

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


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

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