Android逆向小工具–apkCheckProtect

android小工具-查壳工具

移动端查壳并不是什么难事,主要就是特征库的维护而已。

这里V1版本仅对so文件做特征检验,其他文件检验将在下个版本体现

由于用几分钟写完,没来得及做各种兼容性适配和跨平台适配,有问题的话 可以直接评论留言

继续阅读“Android逆向小工具–apkCheckProtect”

ADB配置提权漏洞(CVE-2017-13212)原理与利用分析

本文首发于 FreeBuf,转载请注明来源http://www.freebuf.com/articles/terminal/161843.html

0×01 背景

adb由于拥有shell权限,因此仅在授权PC端后才可使用shell权限,而通过该漏洞,可以实现在移动端获取shell权限,以致于可随意删除应用、屏幕截图等等高权限操作。不过移动端恶意应用程序必须能够连接到adbd正在监听的TCP端口,这就需要应用程序在它的AndroidMainifest.xml中定义INTERNET权限。

而漏洞作者所用的攻击方法是构造一个覆盖窗口,劫持用户点击,也就是经典的hijack攻击。Google也据此修复了此种攻击方式。

但是,我经过尝试后发现,除了以上构造hijack攻击窗口外,还可以劫持USB广播,然后在用户进行正常的连接电脑操作时,劫持授权界面,使用户误导从而进行授权。也即造成新的劫持授权漏洞方案。

继续阅读“ADB配置提权漏洞(CVE-2017-13212)原理与利用分析”

Android Assets打开调用过程源码分析

一、Android读取Assets中图片并显示

private Bitmap getImageFromAssetsFile(String fileName)
{
    Bitmap image = null;
    AssetManager am = getResources().getAssets();
    if (am == null)
    {
        return null;
    }
    try
    {
        InputStream is = am.open(fileName);
        image = BitmapFactory.decodeStream(is);
        is.close();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return image;
}
首先是获取AssetManager,然后调用其函数open,打开对应的资源文件

二、open函数追朔(Java层)

继续阅读“Android Assets打开调用过程源码分析”

Android中的文件打开读写调用过程

1、简述

一般的Android 在Java层对文件的读写调用主要有以下两个类:

(1)FileInputStream/FileOutputStream(FileReader/FileWriter)
(2)RandomFileAccess

FileInputSteam和FileOutputStream继承于InputStream和OutputStream,FileReader、FileWriter继承于Reader和Writer,它们的底层实现原理实现是一样的,区别在于前者用于字节型数据流读写,后者用于unicode文本流读写。

RandomFileAccess是一个独立的文件读写类,它与InputStream、OutputStream不同之处在于它更倾向与随机文件读写,类似C语言fopen、fread、fseek、fwrite、fflush、fclose的封装。

下面简要的分析三个操作的整个调用过程。

2、文件打开

一般在Java层调用如下:

File myFile = new File(“/data/local/tmp/test.java”);

FileOutputStream fos = new FileOutputStream(myFile);

首先我们找到File.java

继续阅读“Android中的文件打开读写调用过程”