首页
社区
课程
招聘
喜迎《Android软件安全权威指南》重磅上市,送书10本!
发表于: 2019-3-13 15:55 12929

喜迎《Android软件安全权威指南》重磅上市,送书10本!

2019-3-13 15:55
12929

恭喜32 35 51 98 99楼用户分别获得非虫新书《Android软件安全权威指南》

请将您的快递信息以及您看雪登录截图发送至741300536@qq.com,我们尽快安排奖品的递出。





2013年《Android软件安全与逆向分析》出版至今,已经过去了五年。目前,移动平台已经成为人们上网的主要方式,手机操作系统只剩下了Android和iOS。Android也从手机平台渗透到智能电视、智能家居甚至智能交通、智慧物流领域。可以说,Android已经融入了我们的生活。五年前,Android才刚刚开始普及;五年后,Android已经“雄霸天下”了。同时,随着Android被广泛地应用到我们生活的各个领域,如何保护自己公司或者甲方的软件,甚至如何有效地进行高强度的保护性开发,都已经成为安全技术人员必须直面的需求。


在这五年中,软件保护技术从第一代壳——DEX加密、字符串加密、资源加密、反调试及自定义DexClassLoader,进化到第二代壳——DEX抽取与so加固、DEX Method代码抽取、DEX动态加载及so加固,再进化到第三代壳——DEX动态解密与so混淆、DEX Method代码动态解密及so代码膨胀混淆,直至现在最流行的第四代壳——代码虚拟化保护,也就是本书主要与大家分享的基于LLVM编译器实现的Obfuscator-LLVM技术。


初入Android安全圈的读者不必担心读不懂这本书。这本书完全从基础讲起,覆盖Android软件安全领域的大部分知识点,是一本内容循序渐进、可以帮助您拾级而上的好书。在跟随非虫畅游Android安全世界的旅途中,您还可以来看雪论坛(kanxue.com)寻找志同道合的良师益友,分享学习中的见解和经验,相信这些都会对您开阔视野、提高技术水平有很大的帮助。

看雪学院创始人 段 钢


扫码天猫下单:
      
扫码京东下单:

Android软件安全权威指南

覆盖Android安全核心知识,关注ARM汇编、软件保护、逆向


覆盖Windows、Linux、macOS上的Android软件开发、逆向分析及动态调试

关注ARM汇编、Hook、软件保护、软件壳及Java层与Native层的逆向分析

系统化的命令和工具介绍、循序渐进的学习路线及生动的应用场景指引动手实践


内容提要

《Android软件安全权威指南》从平台搭建和语言基础开始,循序渐进地讲解了Android平台上的软件安全技术,提供了对Windows、Linux、macOS三个平台的支持,涉及与Android软件安全相关的环境搭建、文件格式、静态分析、动态调试、Hook与注入、软件保护技术、软件壳等主题,涵盖OAT、ELF等新的文件格式。《Android软件安全权威指南》将Java与Native层的软件安全技术分开讲解,加入了与软件壳相关的章节,内容安排细致、合理。《Android软件安全权威指南》的每一章都以实例讲解的方式来展开内容,实践性较强。

试读人群

适合Android开发人员、安全研究人员及对Android系统安全感兴趣的读者阅读。





作者简介

网名"非虫”,独立软件安全研究员,资深安全专家,ISC2016安全训练营独立讲师,有丰富的软件安全实战经验。自2008年起,在知名安全杂志《黑客防线》上发表多篇技术文章,从此踏上软件安全研究道路,常年混迹于国内各大软件安全论坛,著有畅销安全图书《Android软件安全与逆向分析》与《macOS软件安全与逆向分析》。


目录

第1章  搭建Android程序分析环境

1.1  搭建Windows分析环境  1

1.1.1  安装JDK  1

1.1.2  安装Android SDK  2

1.1.3  安装Android NDK  5

1.1.4  Android Studio集成开发环境  6

1.1.5  创建Android模拟器  7

1.1.6  CygWin  9

1.1.7  Bash on Ubuntu on Windows  11

1.2  搭建macOS分析环境  12

1.2.1  安装JDK  12

1.2.2  安装Android SDK  14

1.2.3  安装Android NDK  14

1.2.4  Android Studio集成开发环境  15

1.3  搭建Ubuntu分析环境  15

1.3.1  安装JDK  16

1.3.2  安装Android SDK  17

1.3.3  安装Android NDK  17

1.3.4  Android Studio集成开发环境  18

1.4  常用逆向分析工具  19

1.5  常用Linux Shell命令  19

1.6  搭建源码分析环境  20

1.6.1  在macOS中编译Android源码  20

1.6.2  在Ubuntu中编译Android源码  26

1.6.3  在Windows中编译Android源码  26

1.7  本章小结  27

第2章  如何分析Android程序

2.1  编写第一个Android程序  28

2.1.1  创建Android工程  28

2.1.2  编译生成APK文件  31

2.2  破解第一个Android程序  35

2.2.1  破解入手  35

2.2.2  反编译APK文件  35

2.2.3  分析APK文件  36

2.2.4  修改smali文件的代码  44

2.2.5  重新编译APK文件并签名  45

2.2.6  安装和测试  47

2.2.7  小结  48

2.3  本章小结  48

第3章  Dalvik可执行格式与字节码规范

3.1  Dalvik虚拟机  49

3.1.1  Dalvik虚拟机的特点  49

3.1.2  Dalvik虚拟机与Java虚拟机的区别  49

3.1.3  虚拟机的执行流程  54

3.1.4  虚拟机的执行方式  56

3.2  Dalvik语言基础  56

3.2.1  Dalvik指令格式  57

3.2.2  DEX反汇编工具  58

3.2.3  Dalvik寄存器  59

3.2.4  寄存器命名法  61

3.2.5  Dalvik字节码  61

3.3  Dalvik指令集  63

3.3.1  指令类型  63

3.3.2  空操作指令  64

3.3.3  数据操作指令  64

3.3.4  返回指令  65

3.3.5  数据定义指令  65

3.3.6  锁指令  66

3.3.7  实例操作指令  66

3.3.8  数组操作指令  66

3.3.9  异常指令  67

3.3.10  跳转指令  67

3.3.11  比较指令  68

3.3.12  字段操作指令  69

3.3.13  方法调用指令  69

3.3.14  数据转换指令  70

3.3.15  数据运算指令  70

3.4  Dalvik指令练习  71

3.4.1  编写smali文件  71

3.4.2  编译smali文件  73

3.4.3  测试运行  73

3.5  本章小结  73

第4章  常见Android文件格式

4.1  库文件  74

4.1.1  jar包  74

4.1.2  aar包  75

4.2  APK  78

4.2.1  APK文件结构  78

4.2.2  APK文件的生成流程  79

4.2.3  APK的安装流程  84

4.3  classes.dex  90

4.3.1  DEX文件结构  90

4.3.2  DEX文件的验证与优化过程  104

4.3.3  DEX文件的修改  108

4.3.4  MultiDex  111

4.4  AndroidManifest.xml  113

4.4.1  AndroidManifest.xml文件的格式  113

4.4.2  AXML文件格式  114

4.4.3  AXML文件的修改  121

4.5  resources.arsc  121

4.5.1  ARSC文件格式  122

4.5.2  ARSC文件的修改  128

4.6  META-INF目录  128

4.6.1  CERT.RSA  128

4.6.2  MANIFEST.MF  129

4.6.3  CERT.SF  130

4.7  ODEX  132

4.7.1  生成ODEX文件  132

4.7.2  ODEX文件格式  132

4.7.3  将ODEX文件转换成DEX文件  136

4.8  OAT  137

4.8.1  ART虚拟机  137

4.8.2  生成OAT文件  137

4.8.3  OAT文件格式  138

4.8.4  将OAT文件转换成DEX文件  141

4.9  本章小结  143

第5章  静态分析Android程序

5.1  静态分析简介  145

5.2  阅读smali代码  145

5.2.1  smali文件结构  145

5.2.2  循环语句  148

5.2.3  switch分支语句  153

5.2.4  try/catch语句  158

5.3  阅读Java代码  163

5.3.1  将DEX文件转换成jar包  163

5.3.2  jar分析工具  163

5.4  代码定位技巧  164

5.4.1  入口分析法  164

5.4.2  信息反馈法  165

5.4.3  特征函数法  165

5.5  使用JEB进行静态分析  165

5.5.1  安装JEB  165

5.5.2  JEB的静态分析功能  166

5.5.3  JEB的脚本化与插件  169

5.6  使用IDA Pro进行静态分析  170

5.6.1  IDA Pro对Android的支持  170

5.6.2  分析DEX文件  170

5.6.3  定位关键代码  172

5.7  使用Androguard进行静态分析  174

5.7.1  安装Androguard  175

5.7.2  Androguard的使用方法  175

5.7.3  使用androlyze.py进行分析  179

5.8  本章小结  182

第6章  动态分析Android程序

6.1  动态分析框架  183

6.2  动态分析技巧  189

6.2.1  代码注入法  189

6.2.2  栈跟踪法  192

6.2.3  Method Profiling  193

6.2.4  UI检查  196

6.3  使用JDB动态调试APK  198

6.4  使用JEB动态调试APK  200

6.5  使用IDA Pro动态调试APK  201

6.6  本章小结  203

第7章  ARM反汇编基础  204

7.1  Android与ARM处理器  204

7.1.1  ARM处理器架构概述  204

7.1.2  Android支持的处理器架构  205

7.2  Android ARM EABI  206

7.2.1  armeabi  206

7.2.2  armeabi-v7a  207

7.2.3  arm64-v8a  208

7.3  ARM原生程序的生成过程  208

7.3.1  预处理  210

7.3.2  编译  211

7.3.3  汇编  215

7.3.4  链接  215

7.4  ARM汇编语言  216

7.4.1  ARM汇编程序结构  216

7.4.2  汇编指令  221

7.4.3  寄存器  223

7.4.4  处理器寻址方式  224

7.4.5  子程序参数传递  227

7.5  ARM汇编指令集  230

7.5.1  ARM指令集分类  230

7.5.2  ARM指令编码  231

7.5.3  ARM指令格式解析  233

7.5.4  常见ARM指令  234

7.6  Thumb汇编指令集  240

7.6.1  16位Thumb指令编码  240

7.6.2  16位Thumb指令格式解析  241

7.6.3  32位Thumb指令编码  242

7.6.4  32位Thumb指令格式解析  244

7.7  AArch64汇编指令集  246

7.7.1  AArch64指令编码  246

7.7.2  AArch64指令格式解析  247

7.8  本章小结  250

第8章  Android原生程序开发与逆向分析

8.1  原生程序开发  251

8.1.1  原生程序工程  252

8.1.2  STL的选择  253

8.1.3  JNI接口  254

8.1.4  编译选项与配置  256

8.2  原生程序移植  256

8.2.1  ADT项目的移植  257

8.2.2  UNIX开源项目的移植  258

8.2.3  CMake项目的移植  262

8.2.4  其他类型项目的移植  264

8.3  原生程序入口函数  264

8.3.1  原生程序入口函数  264

8.3.2  so入口函数  269

8.4  原生程序文件格式  271

8.4.1  原生程序的文件类型  271

8.4.2  AArch64 ELF文件格式  274

8.4.3  Program Header Table  278

8.4.4  Section Header Table  281

8.4.5  .dynamic节区  283

8.4.6  字符串表  285

8.4.7  符号表  286

8.4.8  got表与plt表  287

8.4.9  地址重定位表  291

8.5  原生程序逆向分析工具  295

8.5.1  NDK Toolchain  295

8.5.2  IDA Pro  297

8.5.3  Hopper  301

8.6  原生C程序逆向分析  302

8.6.1  编译原生C程序  303

8.6.2  for循环分支结构  305

8.6.3  while循环分支结构  309

8.6.4  if……else分支结构  312

8.6.5  switch循环分支结构  316

8.6.6  优化后的C程序  319

8.7  原生C++ 程序逆向分析  321

8.7.1  C++ STL的逆向分析  322

8.7.2  C++ 类的逆向分析  327

8.7.3  C++ 程序的RTTI  332

8.8  原生so动态库逆向分析  336

8.9  本章小结  337

第9章  Android原生程序动态调试

9.1  gdb调试器  338

9.1.1  ndk-gdb脚本  338

9.1.2  配置gdb调试器  339

9.1.3  gdb调试器的常用命令  340

9.1.4  使用gdb调试Android原生程序  342

9.1.5  gdb调试器的GUI前端  344

9.2  lldb调试器  346

9.2.1  配置lldb调试器  346

9.2.2  lldb调试器的常用命令  348

9.2.3  使用lldb调试Android原生程序  350

9.2.4  lldb调试器的GUI前端  353

9.3  使用IDA Pro调试Android原生程序  353

9.4  本章小结  358

第10章  Hook与注入

10.1  Hook的类型  359

10.1.1  Dalvik Hook  359

10.1.2  ART Hook  362

10.1.3  LD_PRELOAD Hook  364

10.1.4  GOT Hook  366

10.1.5  Inline Hook  367

10.2  Xposed Hook框架  368

10.3  Hook场景与应用  372

10.3.1  开启日志调试输出  372

10.3.2  APK插件  373

10.3.3  绕过SSL Pinning  373

10.4  动态注入  374

10.4.1  so动态库注入  374

10.4.2  DEX注入  376

10.5  注入框架Frida  377

10.5.1  安装配置Frida  377

10.5.2  执行注入与Hook  378

10.5.3  跟踪Native方法  384

10.6  本章小结  386

第11章  软件保护技术

11.1  软件保护技术简介  387

11.2  软件混淆技术  388

11.2.1  源码混淆  389

11.2.2  模板混淆  389

11.2.3  AST混淆  391

11.2.4  IR混淆  397

11.2.5  DEX混淆  397

11.2.6  DEX二次混淆  399

11.3  资源保护  401

11.4  完整性校验  403

11.5  反调试技术  404

11.5.1  调试器状态检测  404

11.5.2  调试器端口检测  404

11.5.3  进程状态检测  406

11.6  运行环境检测  407

11.6.1  模拟器检测  407

11.6.2  Root检测  409

11.6.3  Hook检测  409

11.7  本章小结  411

第12章  软件壳

12.1  Android软件壳  412

12.2  软件壳的特征与侦察  413

12.2.1  编译器指纹  413

12.2.2  软件壳的特征  416

12.2.3  查壳工具  418

12.3  动态加载型壳  418

12.3.1  缓存脱壳法  418

12.3.2  内存Dump脱壳法  419

12.3.3  动态调试脱壳法  420

12.3.4  Hook脱壳法  423

12.3.5  系统定制脱壳法  424

12.4  代码抽取型壳  425

12.4.1  内存重组脱壳法  425

12.4.2  Hook脱壳法  427

12.4.3  系统定制脱壳法  427

12.5  代码混淆壳  429

12.5.1  LLVM基础  430

12.5.2  编写Pass  434

12.5.3  Obfuscator-LLVM  440

12.5.4  代码混淆壳的脱壳  443

12.6  本章小结  451



福利一:
小程序抽奖送5本,识别下图小程序进行抽奖 3月20日15:00自动开奖


福利二:

回帖你想要《Android软件安全权威指南》一书的理由

或者分享对Android安全领域遇到的坑,经验,见解等等,小编从优质评论里选取5名用户获得此书!3月20日开奖。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-3-21 17:10 被博文视点编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (120)
雪    币: 507
活跃值: (140)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
支持,大赞,国内Android安全与逆向学习的宝典。
最后于 2019-3-13 16:15 被鬼谷子c编辑 ,原因:
2019-3-13 15:59
0
雪    币: 4184
活跃值: (3602)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
 沙发, 顶一个, 想要一本
2019-3-13 16:01
0
雪    币: 12
活跃值: (605)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
顶~
2019-3-13 16:01
0
雪    币: 62
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
想要一本签名书
2019-3-13 16:02
1
雪    币: 172
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
跟着虫神学安卓~~~
2019-3-13 16:04
0
雪    币: 3593
活跃值: (779)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
7
经验:想要跳坑,群发红包
2019-3-13 16:05
1
雪    币: 94
活跃值: (2502)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
想要一本签名版,为了收藏。当年就是靠这书活下来的~
2019-3-13 16:05
0
雪    币: 391
活跃值: (717)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
本书通俗易懂,深入浅出,同时知识面也较广,适合多个层次的人学习、参考!
2019-3-13 16:06
1
雪    币: 2323
活跃值: (4118)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
10
顶!
2019-3-13 16:07
0
雪    币: 461
活跃值: (319)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
不多说!就是赞赞赞!
2019-3-13 16:07
0
雪    币: 3907
活跃值: (5822)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
12
本书通俗易懂,深入浅出,同时知识面也较广,适合多个层次的人学习、参考!+1
2019-3-13 16:08
0
雪    币: 20
活跃值: (215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
买买买!
2019-3-13 16:09
0
雪    币: 44
活跃值: (184)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
本书通俗易懂,深入浅出,同时知识面也较广,适合多个层次的人学习、参考!+2

2019-3-13 16:09
0
雪    币: 298
活跃值: (113)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
当然是为了虫神长得帅了,难道还能是为了学逆向?
2019-3-13 16:09
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
学习的路上,适合多个层次的人学习、参考!
2019-3-13 16:10
0
雪    币: 1289
活跃值: (1337)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
2019-3-13 16:12
0
雪    币: 76
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
本书通俗易懂,深入浅出,同时知识面也较广,适合多个层次的人学习、参考!
2019-3-13 16:17
0
雪    币: 7084
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
之前买了赵四的书。想再要一本非虫大佬的书。深入学习下安卓技术
2019-3-13 16:19
0
雪    币: 36
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
鬼哥说大虫神的书写的非常不错的
2019-3-13 16:22
1
雪    币: 35
活跃值: (620)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
有一本了。我中奖之后,30卖-.-
2019-3-13 16:24
0
雪    币: 29
活跃值: (295)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
22
之前的旧版就是我安卓安全的入门书,这几年虫神一直在前沿技术的一线奋斗着,听说书里又有新干货更新了。想要一本。抽我~抽我~
2019-3-13 16:25
0
雪    币: 252
活跃值: (77)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
虫神的书除了这一本,其它的都有了,攒齐了召唤神龙~
2019-3-13 16:33
0
雪    币: 1339
活跃值: (2228)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
24
估计也抽不到,但是非常想要这本书,最早进入android逆向领域就是看非虫大佬的《Android软件安全与逆向分析》入门的,内容非常有深度,涉及面也广,如果抽不到就购买一本
2019-3-13 16:34
0
雪    币: 6112
活跃值: (1212)
能力值: (RANK:30 )
在线值:
发帖
回帖
粉丝
25
顶一个
2019-3-13 16:39
0
游客
登录 | 注册 方可回帖
返回
//