- 博客(32)
- 资源 (4)
- 收藏
- 关注
原创 Android framework C/C++中打印堆栈
有时候我们需要有这样的需求,需要在某些函数中打印函数的调用路径,经过查询主要有四种方式实现。
2024-05-11 20:02:29
2752
1
原创 Android AOSP 编译vendor.img
AOSP源码中的vendor.img文件,并不是由我们自己编译出来的,而是Google已编译好了的vendor.img文件,在编译AOSP源码时,会将vendor.img文件复制到目录下。若我们有修改等需求,那么需要解包后再重新编译vendor.img文件。
2023-04-19 22:23:13
2050
1
原创 自定义fingerprint特征
在Android源代码中自定义fingerprint特征,由于AOSP的fingerprint特征会被某些应用检测为不安全的系统环境,所以需要修改fingerprint值模拟正常的环境
2022-07-17 20:22:59
5077
1
原创 DEX文件解析 - method_ids解析
在上一篇中介绍了field_ids的解析,那么接下来就要学习method_ids的解析。在android的aosp源码中,method_ids的结构如下:aosp源码位置:art/libdexfile/dex/dex_file.h从的结构可以看出以下几点:
2022-06-26 11:08:34
765
原创 Android升级WebView浏览器内核版本
使用项目编译的系统,会发现在部分使用系统自带的浏览器内核来加载网页时会出现报错,加载不出网页的情况,其实这是由于自带的所导致的,只要更新成比较新的浏览器内核版本就行了。(1) Android系统源码编译环境(Android9.0)(1). ,这里下载非beta版本,beta版本有可能会不稳定,这里我下载的是版本的(2). 下载的过程比较麻烦,还要进行,和,在文章后面会附上已经下载好了的较为新的(下载下来后其实是一个apk文件),我要编译的是架构的系统,故下载对应版本的文件(1). 在路径下替换和架构的文
2022-06-02 11:01:44
15695
3
原创 DEX文件解析 - field_ids解析
在上一篇中介绍了proto_ids的解析,那么接下来就要学习field_ids的解析。1. field_ids结构
2022-04-11 11:19:35
395
原创 DEX文件解析 - type_ids解析
在上一篇中介绍了string_ids的解析,那么接下来就要学习type_ids的解析。1. type_ids结构在android的aosp源码中,type_ids的结构如下:aosp源码位置:art/libdexfile/dex/dex_file.hTypeId // Raw type_id_item. struct TypeId { dex::StringIndex descriptor_idx_; // index into string_ids private:
2022-03-19 12:23:21
2551
原创 DEX文件解析 - string_ids解析
DEX文件解析 - string_ids解析在上一篇中介绍了header的解析,那么接下来就要学习string_ids的解析。1. string_ids结构在android的aosp源码中,string_ids的结构如下:aosp源码位置:art/libdexfile/dex/dex_file.h // Raw string_id_item. struct StringId { uint32_t string_data_off_; // offset in bytes from th
2022-03-05 08:30:00
3214
原创 DEX文件解析 -header解析
DEX文件解析 - header解析熟悉DEX文件格式有助于我们提高安全和逆向的技术水平,对于DEX文件格式一定要熟悉,因为它是一个基础知识,日后对学习加固、脱壳有很好的帮助。1. DEX格式整体认知首先我们要对DEX的大致格式(宏观上)要有认知,用如下图片进行说明:图片中DEX分成了9大块,其中:header:DEX文件头string_ids:字符串索引列表type_ids:类型索引列表proto_ids:方法原型/声明索引列表field_ids:字段索引列表method_ids:方
2022-03-02 01:05:24
723
原创 Android自动更新时间&去除WIFI无法连接互联网提示
使用AOSP项目编译的Android系统,由于一些网络问题导致手机无法自动更新时间,在连接WIFI时也可以看到无法连接互联网的提示。一、环境准备(1) Android系统源码编译环境(Android9.0)二、解决方案在网上可以看到,大致有两种解决方案:(1)使用adb修改服务器地址(2)修改源代码修改服务器地址使用adb修改服务器地址#去除WIFI'无法连接互联网'提示adb shell settings put global captive_portal_https_url https
2022-02-25 11:19:05
3400
原创 Android安全检测 - Janus签名漏洞
前言这一章来说说Janus签名漏洞,网上关于这个漏洞的介绍几位详细,其中的原理均为其它地方进行摘录,那么我主要做的就是POC测试,在文章末尾也会给出相应的样本,当然样本就是自己做的,用真实的上线项目来做这个也不合适,想找真实的项目来练练手的话推荐找2017年12月之前的项目(学习可以,但不要在网上发布不当的东西)一、漏洞原理基本概述Google在2017年12月份披露了一个名为“Janus”的安全漏洞(漏洞编号:CVE-2017-13156),该漏洞可以让攻击者绕过安卓的签名校验机制(signatu
2022-02-05 16:35:22
7209
原创 Android安全检测-WebView File域同源策略绕过漏洞
这一章我们来学习“WebView File域同源策略绕过漏洞”。一、漏洞原理
2021-11-22 18:39:21
7677
原创 Android安全检测-Intent Scheme URLs攻击风险
这一章我们来学习“Intent Scheme URLs攻击风险”,网上的文章关于这个风险的介绍可谓是千篇一律,翻阅下来之后发现内容大致相同,单看这些文章的介绍仍然让人感觉到云里雾里,故此篇文章中会讲清楚这风险的产生和应对方法。一、漏洞原理利用intent scheme URLs(意图协议URL),可以通过web页面发送intent来启动App应用。攻击者可构造特殊格式的URL直接向系统发送意图,启动App应用的Activity组件或者发送异常数据,导致应用的敏感信息泄露或者应用崩溃。上述的漏洞描述中可
2021-11-16 16:58:16
8073
原创 Android安全检测-Content Provider SQL注入风险
这一章我们来学习“ content provider SQL注入风险”。漏洞原理首先,我们需要知道的是来自用户的输入都是不安全的,我们需要对其进行校验,当校验通过时我们可以近似的认为是安全,那这与我们这一章有什么关系呢,其实SQL注入的发生就是源于用户的不规范输入所导致的(当然若发生了注入情况这也是程序本身的问题),若在程序中未校验用户输入的SQL条件,用户就可以构造一些SQL命令,那么就会导致SQL注入的发生。content provider SQL注入漏洞产生的因如下:content provi
2021-10-27 19:24:43
3043
原创 Android安全检测 - 发送隐式广播风险
这章来学习“发送隐式广播风险”,这个风险和动态注册Receiver风险有呼应之处,可以结合起来一起看。一、漏洞原理隐式广播是指未指定接收方(接收的范围),在发送广播的过程中所有的APP均能够接收到这个广播,那么就会存在广播被拦截的风险,若发送的广播携带数据那么就存在数据泄漏的风险,若发送的广播存在敏感操作那么就存在恶意劫持风险。从Android8.0开示就要显示的指定广播接收方,但是也可以绕过这个限制比如添加FLAG:FLAG_RECEIVER_INCLUDE_BACKGROUND,但不建议这样做,Go
2021-10-15 11:07:23
2461
原创 Android安全检测 - AES/DES弱加密
这一章我们来学习“AES/DES加密方法不安全使用漏洞”,了解这个漏洞发生的原因及其应对的方法,这章内容较短,感兴趣的同学可以去找找CPA攻击。一、漏洞原理AES/DES是android程序中常用的两种对称加密算法,其工作模式有ECB、CBC、CFB和OFB。当其使用ECB或OFB工作模式时,加密数据可能被选择明文攻击CPA破解。加密方法失效后可能导致客户端隐私数据泄露,加密文件破解,传输数据被获取,中间人攻击等后果,造成用户敏感信息被窃取。二、检测手段检测方法:step1:在代码内全局搜索AES
2021-10-12 10:48:31
1487
原创 Android安全检测 - Intent隐式意图调用
这一章我们来学习“Intent隐式意图调用”,了解这个漏洞发生的原因及其应对的方法。一、漏洞原理Intent通常用于Activity、Service、Broadcast Receiver等组件之间进行信息传递,包括发送端和接收端。当使用隐式的Intent调用时,并未对intent消息接收端进行限制,因此可能存在该消息被未知的第三方应用劫持的风险。Intent消息被劫持,可能导致用户的敏感数据泄露,或者恶意程序执行等风险。主要的风险:1、通过拦截Intent伪造钓鱼页面(支付、登录等钓鱼页面)2、通
2021-10-09 20:19:07
3262
原创 Android安全检测 - WebView系统隐藏接口漏洞
这一章我们来学习“Webview系统隐藏接口漏洞”,了解这个漏洞发生的原因及其应对的方法。一、漏洞原理CVE-2014-1939:在java/android/webkit/BrowserFrame.java文件中,通过API addJavaScriptInterface()添加了一个SearchBoxImpl类的对象searchBoxJavaBridge_,所以攻击者可通过searchBoxJavaBridge_对象进行反射攻击,通过访问searchBoxJavaBridge_接口利用该漏洞执行任意J
2021-09-24 14:43:55
1960
原创 Android安全检测 - WebView远程代码执行漏洞(CVE-2012-6336)
这一章我们来学习“WebView远程代码执行漏洞(CVE-2012-6336)”,了解这个漏洞发生的原因及其应对的方法。一、漏洞原理主要引起漏洞的原因是:WebView的addJavascriptInterface方法提供了一个JavaScript调用的Java 对象的接口,Android系统并没有对注册Java 类的方法调用的限制,导致攻击者可以利用反射技术来调用执行其它未注册的类。漏洞影响的Android版本为小于等于Android 4.1.2(API Level 16),在Android版本4.1
2021-09-22 11:03:34
2692
原创 Android安全检测 - 日志信息泄露
这一章我们来学习“日志信息泄露”,此项在检测手段上可以采取动静结合的方式进行检测,若只采用静态的方式检测
2021-08-10 10:15:57
1708
原创 Android安全检测 - 动态注册Receiver风险
这一章我们来学习“动态注册Receiver风险”,此项在安全检测平台上检测出的结果存在一定的报错率,一般需要三方检测平台或者开发者进行复核,这里我们研究如何避免此项风险。一、漏洞原理广播的注册分为静态注册和动态注册,使用registerReceiver方法进行注册的广播是动态广播(BoradcastReceiver),动态注册的广播由于默认是全局的,可导出的(exported=true),如果没有指定权限访问控制,可以被任意外部应用访问。所以,动态注册的BroadcastReceive可能导致拒绝服务攻
2021-08-03 15:03:09
5220
原创 Android内置证书文件
将证书文件内置到Android系统内部使其受信任,Android从7.0开始用户证书就开始不受信任了,这就导致抓包的过程中HTTPS无法解密,这一章我们来学习如何内置证书文件。一、环境准备(1) Android系统源码编译环境(2) 开发环境(SubLime Text3)二、...
2021-07-20 20:26:18
4052
3
原创 编译user版本的Android系统
这一章我们来学习如何编译user版本的系统。(这里以Android9.0,手机设备Piexl一代为例)在编译Android系统源码的时候会有三种编译版本的选项,分别是:user、userdebug、eng,它们之间的区别如下表。构建类型使用情况user权限受限;适用于生产环境userdebug与“user”类似,但具有 root 权限和调试功能;是进行调试时的首选编译类型eng具有额外调试工具的开发配置一、环境准备(1) Android系统源码编译环境(2)
2021-07-13 15:15:14
2590
原创 BroadcastReceiver注册过程
这篇我们来阅读Framework源码BroadcastReceiver的注册过程,阅读源码的过程枯燥的,所以在阅读源码时要给自己提问,要多想段代码是做什么的,然后基于猜测去寻找答案。一、阅读环境(1)AndroidXRef(在线源码)(2)Android 9.0二、阅读过程这里我们阅读的是动态注册广播的过程,对于静态注册源码的过程不在此次阅读范围之内。源代码以图片展现,最好使用电脑端观看。(1)首先我们要寻找阅读的起点,我们知道的注册动态广播的方式是registerReceiver(Broadc
2021-06-29 16:45:21
771
原创 Android安全检测 - 组件导出风险
市面上有很多的在线Android安全扫描工具,比如梆梆的安全检测平台、360显危镜、爱加密安全检测平台等等,自动化工具出来的结果大多数情况下都是非准确的,都需要人工进行复核。这一章我们来学习Activity导出风险,学习如何准确的确认是否有漏洞。一、漏洞原理app的四大组件,Activity,Service,Broadcast Receiver 和Content Provider,如果设置了导出权限,都可能被系统或者第三方的应用程序直接调出并使用。组件导出可能导致登录界面被绕过、越权、恶意调用等风险。
2021-06-22 13:27:08
3820
5
原创 Android framework自定义系统服务
主要分享在Android9.0上的添加自定义服务的过程,和遇到的SELinux权限的问题,接下来开工。
2021-05-20 09:37:05
1851
原创 Android系统源码开发环境搭建
这篇主要讲述如何搭建Android源码开发环境,这里采用的模式是Ubuntu+Windows开发的方式进行,Ubuntu作为系统源码编译的环境,Widnows作为修改系统源码的工作平台。上一篇中有讲述Android系统源码的下载和编译一、环境准备(1)Ubuntu16.04(270G+16核+32RAM)(2)VMware15二、安装必要软件(1)SubLime Text3 (Windows环境下)(2)MobaXterm_Personal (或使用XShell,Windows环境下)(3
2021-05-07 15:59:41
1148
1
原创 Android系统源码编译
Android系统源码编译网上流传着很多优秀的文章,为什么我要写这个呢,主要的原因是记录编译系统的过程中遇到的问题。1、环境准备(1) ubuntu16.04(270G+16核+16GRAM)(2) VMware152、下载Android源码(1)安装Gitsudo apt-get install git ...
2021-04-07 18:57:07
9728
14
Android framework 新版WebView浏览器内核101.0.4951.61
2022-06-02
jna、log4j、slf4j、vlcj下载
2019-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人