自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(245)
  • 资源 (13)
  • 收藏
  • 关注

转载 CoreML 与Vision

本文环境为Swift4和iOS11.4参考文章1,参考文章2CoreMLCoreML是苹果在WWDC2017 新发布的Framework,方便了Machine Learning在苹果自家平台的接接入与使用,同时苹果提供了Python的coremltools,方便将各大开源模型训练工具的现有模型转化为MLModel。VisionVision是一个新的,强大的,易于使用的框架,是苹果于WWDC 2017上针对CoreML使用所提出的新Framework,能快速有效的用于面部检测、面部特征...

2021-06-19 23:29:36 364

转载 用机器学习来驱动一个iOS应用:如何开始使用Create ML和Core ML

转:https://zhuanlan.zhihu.com/p/90919163本文中提到的所有资源都可以从这里下载:GitHub repository机器学习目前是科技行业最热门的话题之一。能够将以前依赖人工操作的任务自动化,为许多创新和令人兴奋的可能性打开了大门。由于机器学习算法需要相当大的计算能力,过去它们只能在强大的后端实现。但是,随着手持设备嵌入了越来越强大的中央处理器(cpu),在这些设备上实现机器学习开始成为一个可行的选择。智能手机制造商抓住了这个机会。他们开始定期发布工具,使开发人

2021-06-19 11:50:26 501

原创 逆向学习 - class-dump

一、class-dump1. class-dump是用来dump目标文件的类信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的classes、categories和protocols信息提取出来,并生成对应的.h文件2. git: https://github.com/nygard/class-dump二、源码分析1. 读取文件1.1 ...

2019-06-10 12:33:40 1048 1

原创 Mach-O 学习

学习逆向,掌握Mach-O 结构和原理必不可少,这方面的资料还是很多,把学习到的简单记录如下:1. iOS逆向学习笔记之--Mach-O文件结构介绍了Mach header 和 Load Commands;https://blog.csdn.net/wj610671226/article/details/825627642.class-dump 分析类方法名称的原理介绍从Data 模...

2019-04-06 20:05:17 267

原创 iOS 逆向工具 - restore-symbol

iOS应用在上线前都会裁去符号表,以避免被逆向分析,restore-symbol 便是用于恢复符号表的利器。符号表原理:https://blog.csdn.net/sharpyl/article/details/88610991git:https://github.com/tobefuturer/restore-symbol1.下载源码编译git clone --recursive ht...

2019-03-20 17:02:04 1482

转载 fishhook原理

fishhook是Facebook提供的一个动态修改链接mach-O文件的工具。利用MachO文件加载原理,通过修改懒加载和非懒加载两个表的指针达到C函数HOOK的目的。前提在分析fishhook原理前,我们先来想两个问题:1. Mach-O文件是被谁加载的?我们知道,在程序启动的时候 Mach-O 文件会被 DYLD (动态加载器)加载进内存。加载完 Mach-O 后,DYLD接着会...

2019-03-17 02:57:25 1434

转载 iOS-符号表恢复&逆向支付宝

转:https://blog.csdn.net/MinggeQingchun/article/details/80070534前言符号表历来是逆向工程中的“必争之地”,而iOS应用在上线前都会裁去符号表,以避免被逆向分析。本文会介绍一个自己写的工具,用于恢复iOS应用的符号表。直接看效果,支付宝恢复符号表后的样子:文章有点长,请耐心看到最后,亮点在最后。为什么要恢复符号...

2019-03-17 00:23:00 350

原创 iOS 逆向工具 - IDA

1. IDA简介逆向工程中神器之一!2. IDA加载文件打开IDA,直接将可执行文件拖到app里即可;3. IDA窗口功能a. Function Window. 展现分析出来的所有函数;双击函数,Main window 显示函数体;. Class-dump 导出的都是OC函数,可读性高;IDA还将所有subroutine罗列出来;subroutine的名称是一个代号,分析难度大。...

2019-03-03 15:39:14 1509

原创 iOS 逆向工具 - OpenSSH

OpenSSh 会在iOS上安装 SSH 服务。常用命令:1. ssh user@iOSIP用于远程登录例:ssh mobile@192.168.1.12. scp /path/local user@iOSIP:/path/remote 或 scp user@iOSIP:/path/remove /path/local本地、iOS之间文件拷贝例:scp ~/1.png roo...

2019-03-03 15:36:06 380

转载 理解和分析App崩溃报告(译)

转:https://www.jianshu.com/p/574a5a6d00c5Apple Develop官方原文:Understanding and Analyzing Application Crash Reports简介当一个应用程序崩溃, 会产生一个崩溃报告(crash report) ,并存储到那个设备。崩溃报告描述了应用程序崩溃的条件,大多数情况会包含每个执行线程的一个完整...

2019-03-01 21:05:56 2747

原创 iOS 逆向工具 - Reveal

Reveal 是一款UI分析工具,非常强大。下面介绍如何安装。1. 安装Reveal2LoaderCydia 搜索安装即可。2. 配置Reveal2Loader设置 - Reveal - 打开要调试的app3. 安装Reveal官方下载Reveal17;(https://revealapp.com/download/)下载Patcher17,把Reveal17拖到Patcher...

2018-11-03 00:19:03 630 2

原创 iOS 逆向工具 - Theos

一、安装和配置Theos是一个越狱开发工具包,Logos语法。1. 指定安装路径export THEOS=/opt/theos2. 从github下载sudo git clone --recursive git://github.com/DHowett/theos.git $THEOS3. 配置ldid. 用来签名iOS可执行文件的工具,用以在越狱iOS中取代Xcode自带的c...

2018-10-14 21:48:18 355

原创 iOS 9.3.5 越狱

1. 下载impactor;地址:https://cydia.ooo/cydia-impactor/2. 下载Phoenix.ipa;3. 运行impactor ,安装Phoenix.ipa 到手机上;4. 运行Phoenix. 点击prepare for jailbreak. 然后点Accept. 接着点击Dismiss. 点击下面的Proceed with jai...

2018-10-13 17:24:03 4809 2

原创 iOS 逆向工具 - class-dump

利用oc的runtime特性,将存储在Mach-O文件中的头文件信息提取出来,并生成对应.h文件。1. 定位App 可执行文件a. 进入app 目录;b. plutil -p Info.plist | grep CFBundleExecutable2. class-dump 可执行文件,生成头文件class-dump -S -s -H testApp -o /path/headers...

2018-10-13 11:39:52 166

原创 iOS 逆向常见问题

1. IDA 在 mojave macOS crash     (2018-10-12)解决:下载工程中的libqcocoa.dylib 替换/Applications/IDA Pro 7.0/ida.app/Contents/PlugIns/platforms/libqcocoa.dylib。git: https://github.com/fjh658/IDA7.0_SP2. /usr/...

2018-10-12 23:04:10 921

原创 iOS 逆向-基础知识

一、汇编1.iOS arm64汇编中寄存器和基本指令https://blog.csdn.net/u012581760/article/details/80182494二、了解逆向1. iOS 逆向 - 微信 helloWorldhttps://www.jianshu.com/p/04495a429324三、工具包括:a.逆向检测工具:Reveal, snoop-it,...

2018-09-29 15:40:36 515

原创 xcodebuild 打包

1. 工程设置为手动签名2. plist 中添加:   provisioningProfiles   Dictionary       $buildleID    String  profile name   method          String   $method   其中:$buildleID 为app Bundle Identifier        $method 包含四种,a...

2018-02-08 21:21:19 418

原创 MVVM 参考

1. iOS MVVM+RAC 从框架到实战https://www.jianshu.com/p/3beb21d5def2?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends2. MVVMFramework https://github.com/lovemo/MV

2018-01-07 22:58:18 252

转载 iOS Reactivecocoa(RAC)知其所以然(源码分析,一篇足以)

前言如今RAC大行其道,对其讲解的博客也多不胜数,稍微有点经验的估计也已经对这个爽到不要不要的框架运用自如了,真正沉下来研究其实现原理的估计也不在少数,这里仅仅是记录一下自己的分析理解,更是在写这篇博客的过程中深化自己对RAC的认知,可能就是想到哪写到哪,各位朋友能从其中学到东西是最好了,要是感觉没什么干货也别对小弟拍砖啊!一、关于常见类1、RACSiganl 信号

2017-12-31 21:37:17 491

转载 ReactiveCocoa进阶

在上篇文章中介绍了ReactiveCocoa的基础知识,接下来我们来深入介绍ReactiveCocoa及其在MVVM中的用法。转载自最快让你上手ReactiveCocoa之进阶篇,稍作修改ReactiveCocoa进阶思维导图常见操作方法介绍操作须知所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,因此只要继承RACStream

2017-11-27 23:45:01 444 1

转载 ReactiveCocoa基础

本文转载自最快让你上手ReactiveCocoa之基础篇,在此基础上稍作修改,欢迎交流。有关对 ReactiveCocoa 的看法可以看一下唐巧的这篇ReactiveCocoa 讨论会ReactiveCocoa思维导图ReactiveCocoa简介ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的

2017-11-27 23:43:34 1104

原创 Xcode 技巧

1. 对当前文件进行预处理,展开当前文件的宏定义:Product -> Perform Action -> Preprocess “MyViewController”;2. 打开block捕获self的强引用编译警告:Build Settings - Implicit retain of 'self' within block;

2017-11-23 23:50:48 271

原创 YYKit 学习

一、YYLabel学习 YYTextAsyncExample,YYLabel 异步绘制效率要比UILabel高许多。简单看下YYLabel实现原理:1. YYLabel 设置 textLayout 属性;2. YYLabel - setTextLayout   a. 解析属性,   b. 调用[self.layer setNeedsDisplay];

2017-11-01 00:11:20 680

原创 SDWebImage 学习

一、 通过 FLAnimatedImageView 、UIImageView、UIView、UIButton 调用sd_setImageWithURL...实现网络图片异步加载,缓存等功能,demo:FLAnimatedImageView *customImageView = [[FLAnimatedImageView alloc] initWithFrame:CGRectMake

2017-10-31 00:41:07 253

原创 setNeedsLayout、layoutIfNeeded and layoutSubviews区别

一、layoutSubviews在以下情况下被调用:1、init初始化不会触发layoutSubviews,但是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,会触发;2、addSubview会触发layoutSubviews;3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化;4、滚

2017-10-25 11:12:08 308

转载 iOS事件传递和响应机制-原理篇

前言:按照时间顺序,事件的生命周期是这样的:  事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应)其中重点和难点是:  1.如何寻找最合适的view  2.寻找最合适的view的底层实现(hitTest:withEvent:底层

2017-10-15 18:03:29 283

转载 iOS知识原理篇

runtime怎么添加属性、方法等ivar表示成员变量class_addIvarclass_addMethodclass_addPropertyclass_addProtocolclass_replaceProperty是否可以把比较耗时的操作放在NSNotificationCenter中首先必须明确通知在哪个线程中发出,那么处理接受到通知的方法也在这个线程中调用如果在异步线程

2017-10-15 13:40:51 338

转载 iOS Block原理和内存中位置

Posted by 微博@iOS音视频原创文章,自由转载-非商用-非衍生-保持署名简介今天回顾一下blcok,基本用法在我的这篇文章中有较为详细的描述,这次不再回顾,本次block的原理和内存中的位置 是主角。如何理解blcokblock:可以理解为匿名的函数,就是预先准备好的一段代码,在需要的时候调用。底层实现block是一个指针结构体,在终端

2017-10-15 10:33:36 1153

转载 iOS分类实现原理

iOS 分类底层是怎么实现的?本文将分如下四个模块进行探究分类的结构体编译时的分类分类的加载总结本文使用的runtime源码版本是 objc4 - 680文中类与分类代码如下//类@interface Person : NSObject@property (nonatomic ,copy) NSString *presonName;@end@implementat

2017-10-15 10:04:28 2578

转载 iOS中保证线程安全的几种方式与性能对比

一、前言前段时间看了几个开源项目,发现他们保持线程同步的方式各不相同,有@synchronized、NSLock、dispatch_semaphore、NSCondition、pthread_mutex、OSSpinLock。后来网上查了一下,发现他们的实现机制各不相同,性能也各不一样。不好意思,我们平常使用最多的@synchronized是性能最差的。下面我们先分别介绍每个加锁方式的使用

2017-10-14 14:50:53 334

转载 iOS copy使用

介绍copy和mutableCopy介绍深拷贝与浅拷贝block为什么要用copycopy相对于直接赋值的好处总结预备知识 :内存的栈区 : 由编译器自动分配释放, 存放函数的参数值, 局部变量的值等. 其操作方式类似于数据结构中的栈. 内存的堆区 : 一般由程序员分配释放, 若程序员不释放, 程序结束时可能由OS回收. 注意它与数据结构中的堆是两回事, 分配方式倒是类似于链表

2017-10-14 12:36:21 369

原创 strong和copy对NSString的影响

讨论再声明一个NSString属性时,什么时候该用strong,什么时候用copy。code:@interface StringObj ()@property (nonatomic, strong) NSString *strongString;@property (nonatomic, copy)   NSString *copyedString;@end- (v

2017-10-14 11:33:01 206

转载 【腾讯Bugly干货分享】iOS App 签名的原理

本文来自 WeRead 团队博客: http://wereadteam.github.io/iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出错,本文尝试从原理出发,一步步推出为什么会有这么多概念,希望能有助于理解 iOS App 签名的原

2017-10-09 23:04:30 537

转载 如何定位Obj-C野指针随机Crash(一):先提高野指针Crash率

原:http://blog.csdn.net/tencent_bugly/article/details/46277055陈其锋,腾讯软件开发工程师,主要负责iOS平台音视频功能开发,热衷于移动开发,以及各类APP体验。是的,你没有看错,现在要说的就是提高Crash率!欲让其灭亡先让其疯狂,我们当然不是人为制造Crash,准确地说,是使隐藏的随机性C

2017-10-08 22:53:45 604

转载 iOS中Crash采集及PLCrashReporter使用

CrashReporter首先,iOS有自己的CrashReporter机制。在真机上产生的crash,在一下两个地方可以找到:Xcode-Window-Devices - View Device Logs中可以看到crash文件。这是我的截图:QQ20170125-0@2x.png关于各个字段的含义,我搜集了相关博客的介绍,有不对的地方大家可以指出:

2017-10-07 21:04:18 1703

转载 iOS最佳实践

iOS最佳实践译者注本文翻译自 futurice 公司的iOS Good Practices,译文在 Github 上进行维护,同时在 简书 上进行发布。本文发出几天后发现网上也有了另外一个翻译版本:http://ios.jobbole.com/81830/原标题是iOS Good Practices,应该翻译成 iOS 良好实践/优秀实践的,不过好拗口,而且已经发

2017-10-07 15:18:38 500

转载 FBRetainCycleDetector源码分析

概述FBRetainCycleDetector是facebook开源的一个用来检测对象是否有强引用循环的静态库。strong和weakstrong和weak在声明中使用表示这是一个强引用还是弱引用对象。强引用:只要引用存在,对象就不能被销毁。弱引用:弱引用不会导致对象不能销毁,只要没有强引用了,对象就会销毁,对象销毁后,弱引用会自动设置为nil。当一个对象不再有st

2017-07-05 19:36:36 982

原创 methodForSelector 和 instanceMethodForSelector

使用方法:- (void)testIMP{    //1. 实例方法无参数    TestClass *adapt = [[TestClassalloc] init];    SEL sel =@selector(test);    IMP imp = [adaptmethodForSelector:sel];    vo

2017-06-07 12:12:59 1221

原创 动态库的调用方式

一. Embedded Binaries 方式1. 把 xx.framework 添加到 Embedded Binaries 中;2. 保证Build Setting - Runpath Search Paths 中设置路径,例如:@executable_path/Frameworks(xcode 一般会自动设置好);3. 代码中直接使用 xx.framework 头文件中提供的类即可

2017-05-17 21:15:24 786

转载 实现performSelector 传递多个参数

- (id)performSelector:(SEL)selector withObjects:(NSArray *)objects  {      // 方法签名(方法的描述)      NSMethodSignature *signature = [[self class] instanceMethodSignatureForSelector:selector];      i

2017-05-11 15:53:25 1207

C++ Primer 第5版

C++ Primer 第5版 非常棒的偶,新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!新手必看!

2020-11-18

深入理解C++11:C++11新特性解析与应用

深入理解C++11:C++11新特性解析与应用 深入理解C++11:C++11新特性解析与应用 深入理解C++11:C++11新特性解析与应用

2020-11-18

iOS 5核心框架

iOS 5核心框架

2016-07-01

3D游戏开发步步高系列课程(5

3D游戏开发步步高系列课程(5):人工

2008-01-07

3D游戏开发步步高系列课程(4)

3D游戏开发步步高系列课程(4):碰撞

2008-01-07

3D游戏开发步步高系列课程(3

3D游戏开发步步高系列课程(3):背景

2008-01-07

3D游戏开发步步高系列课程(2

3D游戏开发步步高系列课程(2)_3D引擎

2008-01-07

Visual C++游戏编程2

3D 游戏开发,支持。 原代码!

2007-08-13

Visual C++游戏编程

Visual C++游戏编程

2007-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除