SlideShare une entreprise Scribd logo
1  sur  71
Télécharger pour lire hors ligne
Android 应⽤用程序
通⽤用⾃自动脱壳⽅方法研究
杨⽂文博
>> 简介 Profile
• GoSSIP 软件安全⼩小组
• 微博 @GoSSIP_SJTU
• www.securitygossip.com

• 上海交通⼤大学⺴⽹网络信息安全协
会(0ops)
杨⽂文博
上海交通⼤大学计算机系在读博⼠士
Android 加壳保护
Android 加壳保护
Android 加壳保护
Android 加壳保护
Android 加壳保护
Android 加壳保护
Android 加壳保护
Android 加壳保护
• 程序逻辑
• 算法、协议
• 完整性
• 盗版
• 外挂
• 安全问题
• 数据存储传输
• 程序漏洞
• 权限泄露
• 不安全的API
	
可保护 不可保护
为什么要脱壳
为什么要脱壳
AVL Team
为什么要脱壳
为什么要脱壳
SandDroid
为什么要脱壳
为什么要脱壳
脱壳的影响
• 程序真实逻辑暴露
• 降低分析⻔门槛
• 篡改APP
• 静态代码审查
• 更容易挖掘漏洞
加固程序特点
·Manifest保留
· 增加⼊入⼝口点类 · Native执⾏行
·ARM ELF 头部破坏
加固程序特点
·.init_array 段花指令
·ARM ELF 头部破坏
加固程序特点
·.init_array 段花指令
·ARM ELF 头部破坏
加固程序特点
·.init_array 段花指令
·ARM ELF 头部破坏
加固程序特点
·.init_array 段花指令
·ARM ELF 头部破坏
加固程序特点
·.init_array 段花指令
·ARM ELF 头部破坏
加固程序特点
·.init_array 段花指令
加固程序特点
· 解密出另⼀一个ELF⽂文件
· ELF中解压 .text 段
· .text段中提取key再解密.rotext
· 真正的壳程序
· 解密 JNI_OnLoad 函数
加固程序特点
· 解密出另⼀一个ELF⽂文件
· ELF中解压 .text 段
· .text段中提取key再解密.rotext
· 真正的壳程序
· 解密 JNI_OnLoad 函数
加固程序特点
· 取⼀一些解密解压参数 · 解密解压padding数据
· 得到 DEX ⽂文件 · 反调试,反分析
· 取原 DEX 中的padding数据
加固程序特点
·变化快
·静态逆向难
· 反分析⼿手段
	
 ·反调试
	
 ·反内存dump
	
 ·反静态⼯工具
·隐藏DEX
制作通⽤用脱壳机
通⽤用⾃自动化脱壳
• Dalvik 源码插桩
• Portable 解释器
• 绕过反调试
• 运⾏行时数据
• 任意脱壳点
• 真机部署
通⽤用⾃自动化脱壳
·内存中的 Dalvik 数据结构
通⽤用⾃自动化脱壳
·内存中的 Dalvik 数据结构
通⽤用⾃自动化脱壳
·内存中的 Dalvik 数据结构
通⽤用⾃自动化脱壳
·内存中的 Dalvik 数据结构
通⽤用⾃自动化脱壳
·内存中的 Dalvik 数据结构
通⽤用⾃自动化脱壳
·内存中的 Dalvik 数据结构
通⽤用⾃自动化脱壳
·内存中的 Dalvik 数据结构
通⽤用⾃自动化脱壳
·内存中的 Dalvik 数据结构
⼀一个Naïve的实现
· 读取 DexFile 结构体
· 基于源码: C/C++ 实现
· 以DexFile为输⼊入
· 他⼭山之⽯石
· dalvik/dexdump/
DexDump.cpp
⼀一个Naïve的实现
· 读取 DexFile 结构体
· 基于源码: C/C++ 实现
· 以DexFile为输⼊入
· 他⼭山之⽯石
· dalvik/dexdump/
DexDump.cpp
效 果
· 脱壳点
· MainActivity.onCreate() in Manifest
· ⼏几乎所有的壳
· 输出
· ⽂文本
· Dalvik bytecode
效 果
· 脱壳点
· MainActivity.onCreate() in Manifest
· ⼏几乎所有的壳
· 输出
· ⽂文本
· Dalvik bytecode
效 果
· 脱壳点
· MainActivity.onCreate() in Manifest
· ⼏几乎所有的壳
· 输出
· ⽂文本
· Dalvik bytecode
效 果
· 脱壳点
· MainActivity.onCreate() in Manifest
· ⼏几乎所有的壳
· 输出
· ⽂文本
· Dalvik bytecode
效 果
· 脱壳点
· MainActivity.onCreate() in Manifest
· ⼏几乎所有的壳
· 输出
· ⽂文本
· Dalvik bytecode
效 果
· 脱壳点
· MainActivity.onCreate() in Manifest
· ⼏几乎所有的壳
· 输出
· ⽂文本
· Dalvik bytecode
More sophisticated 实现
· DEX ⽂文件重组
· 获取内存中的Dalvik数据结构
· DEX ⽂文件重写
More sophisticated 实现
· DEX ⽂文件重组
· 获取内存中的Dalvik数据结构
· DEX ⽂文件重写
获取Dalvik
数据结构
DEX ⽂文件重写
· 排列顺序
· dalvik/libdex/DexFile.h
· 调整偏移
· stringDataOff, parametersOff, interfacesOff,
classDataOff, codeOff, …
· 重新计算
· DexHeader, MapList
· 差异
· Uleb128, 4 字节对⻬齐, field/method_idx_diff
实验
· 梆梆,爱加密,360,
百度,阿⾥里,腾讯
APKProtect,
⺴⽹网秦,LIAPP,
DexProtector
实验机
· Nexus 4: Android 4.4.2
· Galaxy Nexus: Android 4.3
· /system/lib/libdvm.so
10种壳
实验
· 梆梆,爱加密,360,
百度,阿⾥里,腾讯
APKProtect,
⺴⽹网秦,LIAPP,
DexProtector
实验机
· Nexus 4: Android 4.4.2
· Galaxy Nexus: Android 4.3
· /system/lib/libdvm.so
10种壳
ALL-KILL !!!
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
⼀一些发现
• hook write()
• 内容: 0x64 0x65 0x78 (‘dex’)
• 内存范围:mapped DEX
• 分离出多个DEX
• debug_info_off
• 混淆
讨论
· 动态分析的局限性
· 反混淆
· 特征
⼀一些想法
• 更好的加固⽅方案
• 性能 VS 安全性 VS 兼容性
• 混淆 及 加壳
• 部分加固
• after/during development
• Java -> Native
• less tricks
Thank you !
@GoSSIP_SJTU @乌云峰会 @各⼤大加固⼚厂商
@slipper @MindMac @lcweik

Contenu connexe

Tendances

运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
ChinaNetCloud
 

Tendances (8)

运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
 
伺服器端攻擊與防禦I
伺服器端攻擊與防禦I伺服器端攻擊與防禦I
伺服器端攻擊與防禦I
 
2017.11.22 OWASP Taiwan Week (Lucas Ko)
2017.11.22  OWASP Taiwan Week (Lucas Ko)2017.11.22  OWASP Taiwan Week (Lucas Ko)
2017.11.22 OWASP Taiwan Week (Lucas Ko)
 
網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
 
使安全成為軟體開發必要部分
使安全成為軟體開發必要部分使安全成為軟體開發必要部分
使安全成為軟體開發必要部分
 
OWASP Top 10 (2013) 正體中文版
OWASP Top 10 (2013) 正體中文版OWASP Top 10 (2013) 正體中文版
OWASP Top 10 (2013) 正體中文版
 
網站程式資安白箱與黑箱檢測處理經驗分享
網站程式資安白箱與黑箱檢測處理經驗分享網站程式資安白箱與黑箱檢測處理經驗分享
網站程式資安白箱與黑箱檢測處理經驗分享
 

En vedette

1.去哪儿安全-从 0 到 1
1.去哪儿安全-从 0 到 11.去哪儿安全-从 0 到 1
1.去哪儿安全-从 0 到 1
Hsiao Tim
 
7.互联网安全人才发展现状
7.互联网安全人才发展现状7.互联网安全人才发展现状
7.互联网安全人才发展现状
Hsiao Tim
 
2.3 g:4g usim 卡的安全性分析
2.3 g:4g usim 卡的安全性分析2.3 g:4g usim 卡的安全性分析
2.3 g:4g usim 卡的安全性分析
Hsiao Tim
 
1.手机号背后的灰色地带
1.手机号背后的灰色地带1.手机号背后的灰色地带
1.手机号背后的灰色地带
Hsiao Tim
 
2.从案件看国内 d do s 的最新方式
2.从案件看国内 d do s 的最新方式2.从案件看国内 d do s 的最新方式
2.从案件看国内 d do s 的最新方式
Hsiao Tim
 
6.ctf经验分享
6.ctf经验分享6.ctf经验分享
6.ctf经验分享
Hsiao Tim
 
0.struts 2 事件两周年启示+乌云社区颁奖
0.struts 2 事件两周年启示+乌云社区颁奖0.struts 2 事件两周年启示+乌云社区颁奖
0.struts 2 事件两周年启示+乌云社区颁奖
Hsiao Tim
 

En vedette (10)

Xmpp
XmppXmpp
Xmpp
 
1.去哪儿安全-从 0 到 1
1.去哪儿安全-从 0 到 11.去哪儿安全-从 0 到 1
1.去哪儿安全-从 0 到 1
 
7.互联网安全人才发展现状
7.互联网安全人才发展现状7.互联网安全人才发展现状
7.互联网安全人才发展现状
 
2.3 g:4g usim 卡的安全性分析
2.3 g:4g usim 卡的安全性分析2.3 g:4g usim 卡的安全性分析
2.3 g:4g usim 卡的安全性分析
 
1.手机号背后的灰色地带
1.手机号背后的灰色地带1.手机号背后的灰色地带
1.手机号背后的灰色地带
 
2.从案件看国内 d do s 的最新方式
2.从案件看国内 d do s 的最新方式2.从案件看国内 d do s 的最新方式
2.从案件看国内 d do s 的最新方式
 
6.ctf经验分享
6.ctf经验分享6.ctf经验分享
6.ctf经验分享
 
0.struts 2 事件两周年启示+乌云社区颁奖
0.struts 2 事件两周年启示+乌云社区颁奖0.struts 2 事件两周年启示+乌云社区颁奖
0.struts 2 事件两周年启示+乌云社区颁奖
 
The truth meter
The truth meterThe truth meter
The truth meter
 
社群網站資料探勘技術
社群網站資料探勘技術社群網站資料探勘技術
社群網站資料探勘技術
 

Similaire à 3.android 应用程序通用自动脱壳方法研究

D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Jackson Tian
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
mingjin
 
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
leneli
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
Jackson Tian
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
Na Lee
 
KISSY for starter
KISSY for starterKISSY for starter
KISSY for starter
yiming he
 

Similaire à 3.android 应用程序通用自动脱壳方法研究 (20)

基于 FRIDA 的全平台逆向分析
基于 FRIDA 的全平台逆向分析基于 FRIDA 的全平台逆向分析
基于 FRIDA 的全平台逆向分析
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
Viny storage—网络游戏数据存储的终极解决方案
Viny storage—网络游戏数据存储的终极解决方案Viny storage—网络游戏数据存储的终极解决方案
Viny storage—网络游戏数据存储的终极解决方案
 
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
 
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
 
Node分享 展烨
Node分享 展烨Node分享 展烨
Node分享 展烨
 
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
 
Html5开发android应用程序概述
Html5开发android应用程序概述Html5开发android应用程序概述
Html5开发android应用程序概述
 
Study of android malicious in dynamic unpacking
Study of android malicious in dynamic unpackingStudy of android malicious in dynamic unpacking
Study of android malicious in dynamic unpacking
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and Design
 
KISSY for starter
KISSY for starterKISSY for starter
KISSY for starter
 
Grails敏捷项目开发
Grails敏捷项目开发Grails敏捷项目开发
Grails敏捷项目开发
 
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
 

Plus de Hsiao Tim

4.解析 p2 p 金融安全
4.解析 p2 p 金融安全4.解析 p2 p 金融安全
4.解析 p2 p 金融安全
Hsiao Tim
 
5.云安全现场演示
5.云安全现场演示5.云安全现场演示
5.云安全现场演示
Hsiao Tim
 
5.多角度对抗 waf 的思路与实例
5.多角度对抗 waf 的思路与实例5.多角度对抗 waf 的思路与实例
5.多角度对抗 waf 的思路与实例
Hsiao Tim
 
4.由 pc 端安全问题引发的重重隐患
4.由 pc 端安全问题引发的重重隐患4.由 pc 端安全问题引发的重重隐患
4.由 pc 端安全问题引发的重重隐患
Hsiao Tim
 
3.无人飞行器安全性分析
3.无人飞行器安全性分析3.无人飞行器安全性分析
3.无人飞行器安全性分析
Hsiao Tim
 
8.如何从外围进入各大公司内网
8.如何从外围进入各大公司内网8.如何从外围进入各大公司内网
8.如何从外围进入各大公司内网
Hsiao Tim
 
7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈
Hsiao Tim
 
6.web 安全架构浅谈
6.web 安全架构浅谈6.web 安全架构浅谈
6.web 安全架构浅谈
Hsiao Tim
 

Plus de Hsiao Tim (10)

X realtime xmp-ptut-pdf
X realtime xmp-ptut-pdfX realtime xmp-ptut-pdf
X realtime xmp-ptut-pdf
 
Js in one pic
Js in one picJs in one pic
Js in one pic
 
4.解析 p2 p 金融安全
4.解析 p2 p 金融安全4.解析 p2 p 金融安全
4.解析 p2 p 金融安全
 
5.云安全现场演示
5.云安全现场演示5.云安全现场演示
5.云安全现场演示
 
5.多角度对抗 waf 的思路与实例
5.多角度对抗 waf 的思路与实例5.多角度对抗 waf 的思路与实例
5.多角度对抗 waf 的思路与实例
 
4.由 pc 端安全问题引发的重重隐患
4.由 pc 端安全问题引发的重重隐患4.由 pc 端安全问题引发的重重隐患
4.由 pc 端安全问题引发的重重隐患
 
3.无人飞行器安全性分析
3.无人飞行器安全性分析3.无人飞行器安全性分析
3.无人飞行器安全性分析
 
8.如何从外围进入各大公司内网
8.如何从外围进入各大公司内网8.如何从外围进入各大公司内网
8.如何从外围进入各大公司内网
 
7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈7.唯品会安全建设与风控杂谈
7.唯品会安全建设与风控杂谈
 
6.web 安全架构浅谈
6.web 安全架构浅谈6.web 安全架构浅谈
6.web 安全架构浅谈
 

3.android 应用程序通用自动脱壳方法研究