一.什么是Android界面劫持
界面劫持是指在Android系统中,恶意软件通过监控目标软件的运行,当检测到当前运行界面为某个被监控应用的特定界面时(一般为登录或支付界面),弹出伪造的钓鱼页面,从而诱导用户输入信息,最终窃取用户的隐私(恶意盗取用户账号、卡号、密码等信息),或者利用假冒界面进行钓鱼欺诈。
二. 常见攻击手段
1. 监听系统Logocat日志,一旦监听到发生Activity界面切换行为,即进行攻击,覆盖上假冒Activity界面实施欺骗。
2. 监听系统API,一旦恶意程序监听到相关界面的API组件调用,即可发起攻击。
3. 5.0以下机型枚举获取栈顶Activity,监控到目标Activity出现,即可发起攻击。
4. 恶意启动Service监听目标应用,在切换到目标Activity时,弹出对话框劫持当前界面迷惑用户
三. 预防手段
● 针对用户
几乎所有的Android手机都配备了一个HOME键,如果长按它,就可以查看最近使用的任务。用户在要输入密码进行登录时,可以通过长按HOME键查看近期任务,比如说登录微信时长按发现近期任务出现了微信,那么现在的这个登录界面就极有可能是一个恶意伪装的Activity,切换到另一个程序,再查看近期任务,就可以知道这个登录界面是来源于哪个程序了。
● 针对开发人员
针对钓鱼Activity类型劫持,在登录窗口或者用户隐私输入等关键Activity的onPause方法中检测最前端Activity应用是不是自身或者是系统应用,如果发现恶意风险,则给用户一些警示信息,提示用户其登陆界面以被覆盖,并给出覆盖正常Activity的类名。
如果是针对弹窗对话框类型的劫持,接管Activity的生命周期,当发现当前界面onResume之后,判断是否失去焦点;如果同时存在则有可能是对话框类劫持,判断此时运行的活动进程是否包含敏感权限(全局Alert权限、获取任务栈权限等),如果有的话则给用户告警。
Android 的 APK 中怎么放置反编译“炸弹”
上面文章里提到的"炸弹", 其实就是反编译器的 bug,所以针对不同的反编译器,需要设计不同的“炸弹”。先了解一下常用的 APK 反编译工具:
● baksmali/smali: baksmali 能将二进制 dex 文件转化为 smali 文本文件用于分析,smali 则能将 smali 文件重新编译为 dex 文件。
● Apktool : 整合了 baksmali/smali 用于处理 dex 文件, 另外实现了 res 资源文件(比如layout / strings等)的反编译。
● AxmlPrinter : 用于将二进制形式的 AndroidManifest.xml 转换为文本形式的 AndroidManifest.xml。
● dex2jar: 能将 dex 转化为 jar 文件。
● jd-gui: 能将 jar 文件反编译为 java 源代码。
● Ida Pro: 主要用于反编译 Apk 中的 So 文件,也支持将 dex 文件反编译为类似smali 语法的文本形式指令。
从上面的反编译工具可以看出,主要分三种功能:
● 反编译资源,如 AndroidManifest.xml、layout.xml
可以对Dex文件进行反编译,或将其转换为Java代码
● 反编译 So 文件
炸弹”的设置需要对特定的文件格式有相当的了解,而且可能只能针对某个反编译工具的。
Android app如何加密?
An Android app comprises dex files, so files, res and assets resources.。这个内容可以重写为:该加密技术可分为三个主要方面:DEX文件的保护、SO文件的加密以及资源文件(如res和assets)的保护。
● dex保护
未加密的dex文件来自于Java编译和打包,因此破解成本较低且易受攻击。从加壳最基础的形式开始,到函数执行体抽取、动态加载,再到目前的 vmp 虚拟机保护,该方案的安全性逐步提升。特别是在vmp加固中,使用了自行研发的虚拟机来解释函数体,如果指令加密替换运用得当,会让破解者感到非常困难。
● so加密
so文件,由起初的段加密,发展到自定义elf结构的加密方式,能防止IDA查看函数名称,增加破解成本和难度。
● 资源保护
res资源文件,通常只采用混淆的方式增加逆向难度。assets资源,一般不处理。由于H5应用数量的不断增长,一些供应商(如易盾和娜迦)已提供了assets加密功能,但其实现原理并不清楚。
除了上述三点防护外,还有防反编译、防二次打包、防调试、防模拟器、防xposed功能等。
b) 为了防止反编译,通常会对市场上的反编译工具(如apktool)进行反制,利用其漏洞使反编译失败
b) 防二次打包,一般常用的是在代码里保存签名信息,启动时在native层将当前apk的签名信息与保存的签名进行比对。市面上已有破击工具。可以在常用实现方式上做些升级。
c) 防调试,通过ptrace进程,阻止破解者再ptrace调试。
d) 防模拟器,检测/system/bin/su和/system/xbin/su文件。
检测XposedHelpers的methodCache,以判断是否被hook来防范xposed。
以上是Android app如何加密的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver Mac版
视觉化网页开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中