利用漏洞解锁锤子T1/2手机的bootloader

关于bootloader锁

Smartisan是手机中为数不多倾心于工业设计和用户体验的。老罗跨界过猛,也难免导致其最初的想法和现实存在差距。bootloader到底锁还是不锁,甚至曾被一个T1用户弄上法庭来质问。

weibo

当然,能从认为加锁是对系统的不自信,到后来发现解锁是安全隐患,绝对是个进步(loser口中的打脸)。技术层面来说,究竟T系列手机的bootloader能不能解锁呢?答案是,能。或者说,本来不能,但由于bootloader里存在的两个漏洞,恰好可解。

分析bootloader

正像Smartisan OS本身,其ROM目录结构也是极简的。firmware-upda[……]

MORE

彻底理解Android Binder通信架构

基于Android 6.0的源码剖析, 本文深度剖析Binder IPC过程, 这绝对是一篇匠心巨作,从Java framework到Native,再到Linux Kernel,带你全程看Binder通信过程.

一. 引言

1.1 Binder架构的思考

Android内核是基于Linux系统, 而Linux现存多种进程间IPC方式:管道, 消息队列, 共享内存, 套接字, 信号量, 信号. 为什么Android非要用Binder来进行进程间通信呢. 从我个人的理解角度, 曾尝试着在知乎回答同样一个问题 为什么Android要采用Binder作为IPC机制?. 这是我第一次认认真真地在知[……]

MORE

Android逆向随笔之遇见MultiDex

0x00 Who is Multidex

很多大厂的Android App因为业务量大,引用库多导致其apk包中的类于方法剧增。这样就有可能出现因为方法数过多导致编译失败的情况。产生这个问题的主因是dex文件格式的限制。一个DEX文件中method个数采用使用原生类型short来索引文件中的方法,也就是4个字节共计最多表达65536个method,field/class的个数也均有此限制。对于DEX文件,则是将工程所需全部class文件合并且压缩到一个DEX文件期间,也就是Android打包的DEX过程中,单个DEX文件可被引用的方法总数被限制为65536。

为解决这个问题,谷歌推[……]

MORE

Android逃逸技术汇编

摘    要

  • 传统逃逸技术涉及网络攻防和病毒分析两大领域,网络攻防领域涉及的逃逸技术主要为网络入侵逃逸技术,病毒分析领域涉及到的逃逸技术主要包括针对静态分析、动态分析的木马逃逸技术。
  • 本文介绍的Android木马逃逸技术研究了针对用户感知、杀软查杀、沙箱动态养殖和人工分析的各种逃逸技术。
  • 大多数Android木马的作恶途径是长期留存用户终端,通过持续性作恶获取收益。
  • 为达到稳定留存的目的,大多数Android木马使用的逃逸技术多为复杂的组合技术,并且通过木马的自更新技术不断升级逃逸技术。
  • 总结了Android木马逃逸模型来描述Android木马逃逸的一般性原理[……]

MORE

常见app加固厂商脱壳方法研究

目录

  1. 简述(脱壳前学习的知识、壳的历史、脱壳方法)
  2. 第一代壳
  3. 第二代壳
  4. 第三代壳
  5. 第N代壳

简述

  1. Apk文件结构
  2. Dex文件结构
  3. 壳史
  4. 壳的识别

Apk文件结构

1

Dex文件结构

2

壳史

第一代壳 Dex加密

  1. Dex字符串加密
  2. 资源加密
  3. 对抗反编译
  4. 反调试
  5. 自定义DexClassLoader

第二代壳 Dex抽取与So加固

  1. 对抗第一代壳常见的脱壳法
  2. Dex Method代码抽取到外部(通常企业版)
  3. Dex动态加载
  4. So加密

第三代壳 De[……]

MORE

Hook Android C代码

创建一个目标apk
编写目标项目,用于本次实操过程的hook对象
1.创建项目
android create project –target android-23 –path targetapp –package com.example.targetapp –activity Mainactivity
//执行命令,在当前目录下创建Android项目


2.编写C程序
在项目下创建jni目录,并新建targetlib.c文件,其代码如下:
点击图片以查看大图

图片名称:	Image 1.png
查看次数:	0
文件大小:	83.0 KB
文件 ID :	107319

其中doThings()方法将对应Java层中的声明的native daThings(),而arc4random()是系[……]

MORE

Android虚拟机调试器原理与实现

本文主要讲解Android虚拟机动态调试背后涉及到的技术原理,除了JDWP协议细节,还包括任意位置断点、堆栈输出、变量值获取等基础调试功能的具体实现。另外本文提供了一款新的android动态调试工具——AVMDBG,提供调试API接口,支持python脚本扩展。作为android调试技术研究过程中的实验项目,AVMDBG功能尚不完善,开源出来仅供参考,如过有bug或其他疑问反馈欢迎提交issue。

一、Android动态调试方案

在讲解android动态调试实现之前,先回顾下针对apk进行动态调试常用的几种方法,比较下不同解决方案的特点和存在的问题:

1)smali插桩大法,反编译[……]

MORE

Android Accessibility安全性研究报告

第一章    Accessibility简介

近期,360烽火实验室发现一款滥用Accessibility的木马,该木马具有浏览器地址栏劫持、搜索劫持、桌面点击劫持以及防卸载等系列恶意行为。本报告将结合我们对该木马的分析,从Accessbility的设计初衷、技术发展、滥用情况等角度研究Accessibility的安全性。

一、    设计意义

依据Android官方文档,考虑到一些用户不能很好地使用Android设备,比如由于视力、身体、年龄方面的限制,造成阅读内容、触控操作、声音信息等方面的获取困难,因此Android提供了Accessibility特性和服务帮助用户更好地使用And[……]

MORE

使用CodeInspect破解WiFi万能钥匙接口协议

在上篇文章中我已经使用CodeInspect对WiFi万能钥匙进行了演示分析,在大概分析了下它的代码后,我发现这款APP并没有做什么加固措施,导致接口很容易就可以被分析出来。事实上在去年网上就有针对WiFi万能钥匙接口协议的分析,在经过多次版本迭代后,新版的Wifi万能钥匙在安全性上似乎并没有太大的提升,虽然接口有一些变化,但是核心的加密算法却没有改变并且很容易被逆向。凭借CodeInspect,我很快的就分析出了它的代码逻辑,并且写了一个查询脚本,在文章后面会提到。

功能分析

我们首先来看一下Wifi万能钥匙的主界面,可以看到主界面有一个一键查询万能钥匙的按钮,这个按钮的功能是扫描附近的[……]

MORE

安卓动态调试七种武器之离别钩 – Hooking(下)

0x00 序

随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的。另外工具是死的,人是活的,如果能搞懂工具的原理再结合上自身的经验,你也可以创造出属于自己的调试武器。因此,笔者将会在这一系列文章中分享一些自己经常用或原创的调试工具以及手段,希望能对国内移动安全的研究起到一些催化剂的作用。

目录如下:

安卓动态调试七种武器之长生剑 – Smali Instrumentation
安卓动态调试七种武器之孔雀翎 – Ida Pro
安卓动态调试七种武器之离别钩 – Hooking (上)
安卓动态调试七种武器之离别钩 – Hooking (下)[……]

MORE