标签分类
当前位置:首页 > 移动开发电子书 > iOS移动开发电子书网盘下载
iOS应用逆向与安全 iOS应用逆向与安全
583895819

583895819 提供上传

资源
43
粉丝
5
喜欢
183
评论
14

    iOS应用逆向与安全 PDF 完整超清版

    iOS移动开发电子书
    • 发布时间:

    给大家带来的一篇关于iOS移动开发相关的电子书资源,介绍了关于iOS、应用、逆向、安全方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小13.3 MB,刘培庆编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.1,更多相关的学习资源可以参阅 移动开发电子书、等栏目。

  • iOS应用逆向与安全 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1ST-BICZR2EhV5pmNCKs5kQ
  • 分享码:rno8
  • iOS应用逆向与安全 PDF

    iOS应用逆向与安全》从顺向开发设计、专用工具的应用、反向实战及安全性维护等层面,对iOS运用的反向与安全性开展了解读。这书內容包含基本要素、反向自然环境的提前准备、常见反向剖析专用工具、类的构造、App签字、Mach-O格式文件、hook基本原理等,并根据在苹果越狱服务平台和非苹果越狱服务平台上的反向剖析案例,领着用户学习培训反向剖析的构思和方式 。在运用安全性及维护层面,这书內容涉及到数据传输、检测服务、代码混淆等。

    1.15年添加网易网从业iOS安全性维护有关工程项目,开发设计了一整套iOS结构加固维护的专用工具2.16年从业手机端有关开发设计,并在网易云课堂视频录制了《iOS反向与安全性》的课程内容。3.17年上半年度从业前端工程师和手机端特性监控器工作中,现再次回安全部从业iOS结构加固维护的工作中。

    目录

    • 第1章 概述
    • 1.1 逆向工程简介 1
    • 1.1.1 iOS逆向学习基础 1
    • 1.1.2 iOS逆向的流程 1
    • 1.1.3 iOS逆向使用的工具 2
    • 1.1.4 iOS逆向的应用场景 2
    • 1.2 应用面临的安全风险 2
    • 1.2.1 静态修改文件 3
    • 1.2.2 动态篡改逻辑 3
    • 1.2.3 协议分析 3
    • 1.3 应用保护手段 3
    • 1.3.1 数据加密 3
    • 1.3.2 程序混淆 4
    • 1.3.3 安全监测 4
    • 1.4 本书工具 4
    • 1.4.1 效率工具 4
    • 1.4.2 实用工具 5
    • 1.4.3 逆向工具 5
    • 第2章 越狱设备
    • 2.1 什么是越狱 6
    • 2.2 Cydia 6
    • 2.3 SSH 7
    • 2.3.1 安装OpenSSH 8
    • 2.3.2 配置dropbear 10
    • 2.3.3 修改默认密码 11
    • 2.3.4 公钥登录 11
    • 2.3.5 通过USB登录 13
    • 2.4 iOS系统结构 14
    • 2.4.1 文件目录 15
    • 2.4.2 文件权限 17
    • 2.5 Cydia Substrate 18
    • 2.5.1 MobileHooker 19
    • 2.5.2 MobileLoader 19
    • 2.5.3 Safe mode 20
    • 2.6 越狱必备工具 21
    • 2.6.1 adv-cmds 21
    • 2.6.2 appsync 21
    • 2.6.3 iFile 21
    • 2.6.4 scp 22
    • 第3章 逆向工具详解
    • 3.1 应用解密 23
    • 3.1.1 dumpdecrypted 23
    • 3.1.2 Clutch 28
    • 3.1.3 小结 30
    • 3.2 class-dump 30
    • 3.2.1 class-dump的使用 30
    • 3.2.2 class-dump的原理 33
    • 3.2.3 OC和Swift混编 40
    • 3.3 Reveal 41
    • 3.3.1 开发集成Reveal 41
    • 3.3.2 越狱注入Reveal 42
    • 3.4 Cycript 43
    • 3.4.1 开发集成Cycript 44
    • 3.4.2 使用Cycript越狱 45
    • 3.4.3 使用Cycript分析应用 46
    • 3.4.4 Cycript的高级用法 49
    • 3.5 抓包 52
    • 3.5.1 Charles抓包 53
    • 3.5.2 修改网络请求 55
    • 3.5.3 HTTPS抓包 59
    • 3.5.4 Wireshark抓包 60
    • 第4章 开发储备
    • 4.1 App的结构及构建 66
    • 4.1.1 获取应用包 66
    • 4.1.2 应用包的格式 71
    • 4.1.3 应用的构建过程 72
    • 4.2 界面结构和事件传递 76
    • 4.2.1 界面的组成 76
    • 4.2.2 界面事件的响应 79
    • 4.3 类与方法 83
    • 4.3.1 类与方法的底层实现 84
    • 4.3.2 运行时类的结构 89
    • 4.3.3 消息机制 91
    • 4.3.4 runtime的应用 94
    • 4.4 App签名 98
    • 4.4.1 配置Xcode签名 98
    • 4.4.2 App签名的原理 100
    • 4.4.3 重签名 107
    • 第5章 分析与调试
    • 5.1 静态分析 109
    • 5.1.1 Hopper 109
    • 5.1.2 IDA 118
    • 5.1.3 静态库分析 125
    • 5.2 动态调试 128
    • 5.2.1 LLDB调试 128
    • 5.2.2 LLDB解密 141
    • 5.2.3 用Xcode调试第三方应用 144
    • 5.2.4 LLDB的高级调试技巧 151
    • 5.3 Theos 167
    • 5.3.1 Theos的安装 168
    • 5.3.2 Theos的基本应用 168
    • 5.3.3 Theos的高级应用 172
    • 5.4 MonkeyDev 177
    • 5.4.1 安装MonkeyDev 178
    • 5.4.2 Logos Tweak 179
    • 5.4.3 CaptainHook Tweak 181
    • 5.4.4 Command-line Tool 185
    • 第6章 逆向进阶
    • 6.1 程序加载 186
    • 6.1.1 dyld简介 186
    • 6.1.2 dyld加载流程 187
    • 6.2 Mach-O文件格式 206
    • 6.2.1 Mach-O文件的基本格式 206
    • 6.2.2 Mach-O头部 208
    • 6.2.3 Load Command 210
    • 6.2.4 虚拟地址和文件偏移 214
    • 6.2.5 懒加载和非懒加载 217
    • 6.2.6 Code Signature 223
    • 6.3 ARM汇编 228
    • 6.3.1 ARM架构和指令集 228
    • 6.3.2 AArch64寄存器 229
    • 6.3.3 指令集编码 231
    • 6.3.4 AArch64指令 233
    • 6.3.5 栈和方法 236
    • 6.3.6 Objective-C汇编 245
    • 6.4 hook 247
    • 6.4.1 Method Swizzle 247
    • 6.4.2 fishhook 248
    • 6.4.3 Cydia Substrate 253
    • 6.4.4 Swift hook 256
    • 6.5 动态库 259
    • 6.5.1 编译和注入 260
    • 6.5.2 导出和隐藏符号 260
    • 6.5.3 C 和OC动态库 263
    • 6.5.4 其他常见问题 267
    • 第7章 实战演练
    • 7.1 越狱设备分析 270
    • 7.1.1 分析准备 270
    • 7.1.2 开始分析 272
    • 7.1.3 编写Tweak 284
    • 7.1.4 安装与小结 287
    • 7.2 非越狱设备分析 288
    • 7.2.1 创建MonkeyDev项目 288
    • 7.2.2 非越狱逆向实战 291
    • 7.2.3 编写hook代码 303
    • 7.2.4 制作非越狱Pod 304
    • 7.2.5 小结 308
    • 7.3 Frida实战应用 309
    • 7.3.1 Frida的安装 309
    • 7.3.2 Frida的初级使用 311
    • 7.3.3 Frida的高级使用 319
    • 7.3.4 小结 326
    • 第8章 安全保护
    • 8.1 数据加密 327
    • 8.1.1 本地存储加密 328
    • 8.1.2 网络传输加密 328
    • 8.1.3 字符串加密 333
    • 8.2 静态混淆 341
    • 8.2.1 宏定义 342
    • 8.2.2 二进制修改 347
    • 8.3 动态保护 349
    • 8.3.1 反调试 349
    • 8.3.2 反反调试 352
    • 8.3.3 反注入 359
    • 8.3.4 hook检测 360
    • 8.3.5 完整性校验 361
    • 8.4 代码混淆 363
    • 8.4.1 什么是LLVM 363
    • 8.4.2 下载和编译LLVM 364
    • 8.4.3 开发和调试Pass 366
    • 8.4.4 OLLVM源代码分析 373
    • 8.4.5 替换Xcode编译器 379
    • 8.4.6 静态库混淆 389
    • 8.5 本章总结 390

    上一篇:Node.js:来一打(C++ 扩展)  下一篇:凤凰项目:一个IT运维的传奇故事

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    iOS移动开发相关电子书
    学习笔记
    网友NO.126065

    vue axios 二次封装的示例代码

    这段时间告诉项目需要,用到了vue。 刚开始搭框架的时候用的是vue-resource后面看到官方推荐axios就换过来了 顺便封装了一下 //引入axiosimport axios from 'axios'let cancel ,promiseArr = {}const CancelToken = axios.CancelToken;//请求拦截器axios.interceptors.request.use(config = { //发起请求时,取消掉当前正在进行的相同请求 if (promiseArr[config.url]) { promiseArr[config.url]('操作取消') promiseArr[config.url] = cancel } else { promiseArr[config.url] = cancel } return config}, error = { return Promise.reject(error)})//响应拦截器axios.interceptors.response.use(response = { return response}, error = { return Promise.resolve(error.response)})axios.defaults.baseURL = '/api'//设置默认请求头axios.defaults.headers = { 'X-Requested-With': 'XMLHttpRequest'}axios.defaults.timeout = 10000export default { //get请求 get (url,param) { return new Promise((resolve,reject) = { axios({ method: 'get', url, params: param, cancelToken: new CancelToken(c = { cancel = c }) }).then(res = { resolve(res) }) }) }, //post请求 post (url,param) { return new Promise((resolve,reject) = { axios({ method: 'post', url, data: param, cancelToken: new CancelToken(c = { cancel = c }) }).then(res = { resolve(res) }) }) } } 说明 1、为防止发起请求时,当前正在进行的相同请求,在请求拦截器中加入了hash判断,将相同请求url拦截 2、将axios中get,post公共配置抽离出来 axios.defaults.baseURL……

    网友NO.885989

    解决vue axios的封装 请求状态的错误提示问题

    如下所示: /*** axios配置,输出为vue组建* */import axios from 'axios';import qs from 'qs'import CookiesJS from 'js-cookie'import router from '../router'// http request 拦截器axios.interceptors.request.use(config = {config.headers = {'Content-Type': 'application/x-www-form-urlencoded'};// 在post请求发送出去之前,对其进行编码if (config.method === 'post') {config.data = qs.stringify(config.data);}return config;},err = {return Promise.reject(err);});// http response 拦截器axios.interceptors.response.use(response = {return response;},error = {if (error.response) {console.log("请求错误");console.log(error.response.status);switch (error.response.status) {case 401:// store.dispatch('logout');console.log("401");break;case 404:router.push('/Error/Error404');break;case 500:router.push('/Error/Error500');}}return Promise.reject(error);// 返回接口返回的错误信息});export default axios;--------------------- 以上这篇解决vue axios的封装 请求状态的错误提示问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

    网友NO.812298

    IOS 开发之NSDictionary转换成JSON字符串

    IOS 开发之NSDictionary转换成JSON字符串 普通情况下,你可能会用一个NSDictionary的分类去做NSDictionary转JSON,如下代码: NSError *error;NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:if (! jsonData) { return @"{}";} else { return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];} 然而,NSDictionary装的数据类型鱼龙混杂,有可能是NSDate,NSNumber,NSValue等Objective-C对象,而 [NSJSONSerialization dataWithJSONObject:options:error:] 这个方法是不能解析这些对象的,如果有这些对象,则会导致crash。所以我们应该在调用NSJSONSerialization之前加一步,将所有数据处理成NSString,代码如下: NSError *error = nil;NSData *jsonData = nil;if (!self) { return nil;}NSMutableDictionary *dict = [NSMutableDictionary dictionary];[self enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { NSString *keyString = nil; NSString *valueString = nil; if ([key isKindOfClass:[NSString class]]) { keyString = key; }else{ keyString = [NSString stringWithFormat:@"%@",key]; } if ([obj isKindOfClass:[NSString class]]) { valueString = obj; }else{ valueString = [NSString stringWithFormat:@"%@",obj]; } [dict setObject:valueString forKey:keyString];}];jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:if ([jsonData length] == 0 || error != nil) { retu……

    网友NO.137435

    小程序兼容安卓和IOS数据处理问题及坑

    最近开发微信小程序,遇到到过种坑,例如什么前端发送请求,后端请求成功,没有获取到前端传递的值;后端请求成功,并且值,前端就是出不来数据;请求接口出现Provision headers are shown的现象;到最后苹果手机上出现数据,安卓手机出现不了数据等等,非常多的bug。备注后端我用的php开发的,框架用的TP5.0,我一度怀疑是我框架的原因。安卓需要的是字符串,苹果好像都行吧,我是做的兼容处理。 作为一名程序员,连bug都没有,你还开发什么软件?废话不说了先上问题吧; 1.小程序前端发送请求给后端,常用的有2中方式,一种是get请求,一种是POST请求,首先举例get请求吧, wx.request({ url: that.globalData.baseUrl + 'user/add',//请求后台接口 data: { code: avatarUrl, username: nickName } header: { 'content-type':'application/json',// 默认值 token: wx.getStorageSync('token') }, method: "get", success: function (res) { // console.log(res) } }) 这种传递方式是没有什么问题,后端怎么都会接受到数据,前端也可以接受到数据。 主要是看第二种post方法; wx.request({ url: that.globalData.baseUrl + 'wx/getToken',//请求后台接口 data: { code: res.code }, header: { "Content-Type": "application/x-www-form-urlencoded", }, method: "POST", success: function (res) { console.log(res); wx.setStorageSync('token', res.data.data) } }) 这种情况是后端……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明