由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
正版新书]unidbg逆向工程 原理与实践陈佳林9787111741824
¥ ×1
<br />目 录?Contents<br />前 言<br />部 进入unidbg的世界<br />章 unidbg环境准备与快速<br />上手 2<br />1.1 r0env环境介绍与集成 2<br />1.1.1 r0env各组件介绍 2<br />1.1.2 r0env下载及安装 5<br />1.2 EA安装及配置 6<br />1.3 个unidbg项目 7<br />1.3.1 unidbg介绍 7<br />1.3.2 unidbg下载与运行示例 8<br />1.3.3 unidbg示例讲解 9<br />1.4 本章小结 13<br />第2章 unidbg模拟执行初探 14<br />2.1 个NDK项目 14<br />2.1.1 使用Android Studio创建NDK项目 14<br />2.1.2 编写自己的so业务代码 16<br />2.2 unidbg的符号调用与地址调用 18<br />2.2.1 unidbg主动调用前置准备 18<br />2.2.2 unidbg主动调用so函数 19<br />2.. unidbg部分API简单讲解 22<br />. 本章小结 24<br />第3章 unidbg补环境、Hook与<br />Patch 25<br />3.1 为so添加交互:使用JNI接口<br />编写md5方法 25<br />3.2 使用unidbg修补执行环境并<br />模拟执行 27<br />3.3 脱离编译器,使用命令行<br />编译so 34<br />3.4 unidbg的Hook 36<br />3.5 unidbg的Patch 39<br />3.6 本章小结 42<br />第二部分 unidbg原理<br />第4章 ELF文件执行视图解析 44<br />4.1 ELF文件结构 44<br />4.1.1 ELF头部结构 45<br />4.1.2 程序头部表 47<br />4.1.3 动态节区_DYNAMIC段 51<br />4.2 深入jelf代码细节,探究ELF<br />解析 54<br />4.2.1 分析原版jelf代码 54<br />4.2.2 分析unidbg版jelf代码 56<br />4.3 本章小结 60<br />第5章 Unicorn的初级使用与初探Linker 61<br />5.1 Unicorn的初级使用:模拟执行与Hook 61<br />5.1.1 使用Unicorn进行模拟<br />执行 61<br />5.1.2 Unicorn的Hook 64<br />5.1.3 Keystone与Capstone 70<br />5.2 初探Android系统源码 71<br />5.2.1 Java层代码追踪 73<br />5.2.2 Native层代码追踪 75<br />5.3 本章小结 78<br />第6章 深入Linker:so的加载、<br />链接、初始化 79<br />6.1 so的加载过程 79<br />6.2 so的链接过程 90<br />6.3 so的初始化操作 100<br />6.4 本章小结 102<br />第7章 使用Unicorn模拟Linker:so的加载过程 103<br />7.1 模拟Linker?:环境准备 103<br />7.2 模拟Linker?:so的加载 109<br />7.3 动态调试Linker,探究so的内存<br />布局图 118<br />7.4 本章小结 122<br />第8章 使用Unicorn模拟Linker:<br />so的链接过程 1<br />8.1 so的依赖库加载过程 1<br />8.2 so的动态链接 127<br />8.3 初尝试:使用unidbg模拟执行<br />简单so文件 131<br />8.4 探究unidbg的Linker代码<br />细节 133<br />8.4.1 unidbg加载so文件代码<br />入口 134<br />8.4.2 处理so信息并载入内存 135<br />8.4.3 对so的依赖库进行处理 137<br />8.4.4 重定位操作 138<br />8.4.5 处理so的初始化信息与生成module对象 140<br />8.4.6 执行初始化 141<br />8.5 本章小结 142<br />第9章 R0dbg实战与Unidbg_FindKey 143<br />9.1 模拟Linker?:so的初始化过程 143<br />9.2 指令追踪与排错 147<br />9.2.1 TLS线程局部存储环境<br />初始化 148<br />9.2.2 R0dbg对系统调用进行<br />处理 150<br />9.3 使用R0dbg模拟执行so 152<br />9.4 Unidbg_FindKey牛刀小试 154<br />9.5 本章小结 157<br />0章 unidbg源码解析:AndroidEmulator 158<br />10.1 创建AndroidEmulator 158<br />10.2 创建FileSystem 165<br />10.3 创建cnd 168<br />10.4 创建SvcMemory 169<br />10.5 本章小结 172<br />1章 unidbg源码解析:<br />DalvikVM 173<br />11.1 分析createDalvikVM() 173<br />11.2 Dvm相关类介绍 178<br />11.2.1 BaseVM解析 179<br />11.2.2 DalvikVM解析 184<br />11.. DvmObject解析 185<br />11.2.4 DvmClass解析 187<br />11.3 本章小结 188<br />2章 unidbg源码解析:模拟<br />执行流程追踪 189<br />12.1 编写含JNI交互的MD5算法并<br />模拟执行 189<br />12.1.1 编写含JNI交互的so 189<br />12.1.2 使用unidbg进行模拟<br />执行 190<br />12.2 模拟执行流程追踪:寻找<br />函数 192<br />1. 模拟执行流程追踪:处理参数<br />并模拟执行 195<br />12.4 本章小结 202<br />3章 unidbg源码解析:JNI<br />交互流程追踪 203<br />13.1 JNI注册 203<br />13.2 JNI指令执行 208<br />13.3 本章小结 217<br />4章 unidbg源码解析:<br />Memory 218<br />14.1 Memory模块的创建 218<br />14.2 AndroidElfLoader的方法实现 219<br />14.2.1 内存相关方法实现 219<br />14.2.2 栈空间相关方法实现 226<br />14.. 用户常用方法解析 227<br />14.2.4 虚拟模块 0<br />14.3 加载so的loader功能 1<br />14.4 本章小结 <br />5章 unidbg源码解析:<br />Hook <br />15.1 unidbg的Hook框架 <br />15.1.1 Hook框架的使用 <br />15.1.2 Hook源码分析 243<br />15.2 Debugger模块解析 245<br />15.2.1 Console Debugger的<br />使用 245<br />15.2.2 Debugger源码分析 246<br />15.3 本章小结 256<br />第三部分 模拟执行与补环境实战<br />6章 unidbg实战:I/O重定向 258<br />16.1 分析App的内部逻辑 258<br />16.1.1 了解App的运行流程 258<br />16.1.2 Java层逻辑分析 259<br />16.1.3 so层逻辑分析 262<br />16.2 unidbg模拟执行分析 267<br />16.2.1 unidbg模拟执行saveSN()<br />方法 267<br />16.2.2 unidbg的I/O重定向 269<br />16.3 本章小结 272<br />7章 unidbg实战:Debugger<br />自吐 273<br />17.1 分析App的内部逻辑 273<br />17.1.1 了解App的运行流程 273<br />17.1.2 Java层逻辑分析 273<br />17.1.3 so层逻辑分析 275<br />17.2 使用unidbg工具进行分析 277<br />17.2.1 使用unidbg进行模拟<br />执行 277<br />17.2.2 使用Debugger模块实现<br />自吐 281<br />17.. 使用Patch进行自吐 283<br />17.3 本章小结 286<br />8章 unidbg实战:指针参数与Debugger 287<br />18.1 指针参数的使用 287<br />18.1.1 对App进行分析 287<br />18.1.2 使用unidbg进行模拟<br />执行 290<br />18.2 快速识别AES算法 295<br />18.2.1 对App进行分析 295<br />18.2.2 使用unidbg进行模拟<br />执行 297<br />18.3 本章小结 301<br />9章 unidbg实战:魔改Base64还原 302<br />19.1 逆向环境搭建 302<br />19.2 APK分析 303<br />19.3 so文件详细分析 304<br />19.3.1 基本类型手动修改 304<br />19.3.2 主体代码分析 308<br />19.4 使用unidbg辅分析so 309<br />19.4.1 使用unidbg主动调用<br />Native层的算法 309<br />19.4.2 魔改Base64核心步骤<br />分析 312<br />19.5 本章小结 321<br />第20章 unidbg实战:使用unidbg<br />动态分析内存中的数据 322<br />20.1 环境搭建 322<br />20.2 APK基本分析 3<br />20.2.1 按钮事件分析 3<br />20.2.2 对输入框的内容进行<br />判断 325<br />20.3 使用A静态分析so并使用unidbg动态验 326<br />20.3.1 静态代码块说明 326<br />20.3.2 A分析 326<br />20.4 本章小结 337<br />2章 unidbg实战:使用unidbg<br />主动调用fork进程 338<br />21.1 样本情景复现 338<br />21.2 样本反编译分析 339<br />21.3 so中代码的分析 342<br />21.4 使用unidbg对fork进程中的<br />函数做处理 350<br />21.5 本章小结 356<br />第22章 unidbg补环境实战:<br />补环境入门 357<br />22.1 为什么要补环境 357<br />22.2 unidbg补环境的案例情景<br />复现 357<br />2. 模拟执行so 361<br />2..1 参数获取 361<br />2..2 unidbg代码初始化 362<br />2.. 目标函数的调用 363<br />2..4 补环境说明 363<br />2..5 补环境实战 364<br />22.4 本章小结 374<br />第章 unidbg补环境实战:标识记录 375<br />.1 样本一:如何补JNI_OnLoad<br />环境 375<br />.1.1 基本环境搭建 375<br />.1.2 运行项目,异常分析 376<br />.2 样本二:文件标识的补环境<br />策略 384<br />.2.1 环境搭建 384<br />.2.2 文件标识策略 386<br />. 样本总结 395<br />.4 本章小结 395<br />第24章 unidbg补环境实战:设备风控 396<br />24.1 Android系统API补全策略 396<br />24.1.1 ActivityThread 398<br />24.1.2 android_id 399<br />24.2 目录获取 402<br />24.3 样本个函数的调用 407<br />24.4 本章小结 416<br />第25章 unidbg补环境实战:<br />补环境加强 417<br />25.1 上文回顾 417<br />25.2 样本的框架搭建 417<br />25.3 补环境实&nsp; 420<br />25.3.1 getApplication环境<br />补充 420<br />25.3.2 无障碍服务的补环境 4<br />25.4 本章小结 437<br />第26章 unidbg补环境实战:<br />总结 438<br />26.1 补环境初始化 438<br />26.1.1 架构选择 438<br />26.1.2 进程名称初始化 439<br />26.1.3 处理器后端的设置 439<br />26.1.4 Android根目录设置 440<br />26.1.5 Android虚拟机创建 440<br />26.1.6 加载so 440<br />26.2 补环境适用场景 441<br />26.2.1 unidbg的报错 441<br />26.2.2 何时补环境 444<br />26.3 补环境的规范 450<br />26.3.1 通用规则 451<br />26.3.2 复杂类型的规则 452<br />26.4 本章小结 457<br />第四部分 反制与生产环境部署<br />第27章 Anti-unidbg系列:环境<br />变量检测 460<br />27.1 Linux中的环境变量 460<br />27.2 Android中的环境变量 462<br />27.2.1 查看和设置环境变量 462<br />27.2.2 常见环境变量说明 463<br />27.3 环境变量源码解析 465<br />27.3.1 Java层环境变量读取和<br />设置 466<br />27.3.2 Native层环境变量读取和<br />设置 468<br />27.3.3 情景模拟 469<br />27.4 unidbg如何设置环境<br />变量 470<br />27.5 本章小结 472<br />第28章 Anti-unidbg系列:xHook检测 473<br />28.1 xHook的基本使用 473<br />28.1.1 项目简介 473<br />28.1.2 项目编译 474<br />28.1.3 xHook API介绍 476<br />28.1.4 样本编写 478<br />28.2 xHook的原理阐述 479<br />28.2.1 文件编译和测试 479<br />28.2.2 出现的问题 482<br />28.. ELF文件格式 482<br />28.2.4 Linker 486<br />28.2.5 重定向追踪 487<br />28.2.6 内存检索 489<br />28.2.7 跳转验 491<br />28.3 xHook检测实现 492<br />28.3.1 获取ELF文件在内存中的<br />首地址 493<br />28.3.2 Linker的复写 495<br />28.4 unidbg xHook检测 506<br />28.5 补充Inline Hook检测 508<br />28.5.1 Inline Hook通用检测<br />思路 508<br />28.5.2 Inline Hook模块检测<br />思路 515<br />28.6 本章小结 516<br />第29章 Anti-unidbg系列:JNI层<br />常见函数处理 517<br />29.1 FindClass反制策略 517<br />29.1.1 FindClass介绍 517<br />29.1.2 FindClass基本使用 521<br />29.2 method反制策略 524<br />29.3 本章小结 528<br />第30章 Anti-unidbg系列:unidbg<br />常规检测总结 529<br />30.1 检测说明 529<br />30.2 基地址检测 530<br />30.3 JNI环境之JNI调用 530<br />30.4 JNI环境之类检测 530<br />30.5 文件描述符 532<br />30.6 uname 532<br />30.7 运行时间检测 534<br />30.8 检测Unicorn 534<br />30.9 本章小结 537<br />3章 unidbg生产环境部署 538<br />31.1 Spring Boot框架的基本使用<br />方法 538<br />31.2 Spring Boot和unidbg<br />结合 542<br />31.3 unidbg-boot-server简介 548<br />31.3.1 简介 549<br />31.3.2 常规配置项说明 549<br />31.4 unidbg-boot-server项目<br />实例 549<br />31.4.1 项目演示 549<br />31.4.2 添加模拟执行 551<br />31.5 本章小结 555<br /><br />
(1)作者经验丰富:从事安全工作多年,看雪论坛版主,在逆向工程和移动安全领域积累了丰富的经验。
(2)原理讲解深入:通过深入解析unidbg主要功能和模块的源代码来讲解unidbg的工作原理和实现细节,授人予渔。
(3)包含大量案例:通过大量案例讲解和演示了如何利用unidbg来解决各种逆向工程的难题,手把手教。
(4)注重生产实践:无论是理论讲解,还是实战案例,都直接瞄准生产环境,带领读者解决工程环境中的真实问题。
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格