iOS逆向
华为云云享专家认证|阿里云开发社区博客专家,定期分享Java、iOS资讯(包括基础知识储备)、小程序开发与运营、阅读与写作。只为你呈现有价值的信息,专注于移动端技术研究领域。
展开
-
常见面试问题
但是,它本身也能说明一些问题。如果公司成立已经超过四年,又没有新项目,但是新员工却很多,这往往说明公司文化不是很健康。你会对公司的技术路线有所了解和准备,一旦入职,就能更好地适应公司的需要。如果他的回答是项目时间紧迫,或者需要更多的资金,那你就要小心一点了,公司管理上面可能有问题。很少有公司,会百分之百满意自身的现状,即使那些状况很良好的公司也是如此。阿里巴巴和腾讯这样的企业每年都有很多校招,而且还会解决户口,只要自己基础不错,还是有机会的。这个问题会让你了解自己在公司的角色,以及你的岗位对公司是否重要。原创 2023-04-14 20:34:34 · 688 阅读 · 0 评论 -
iOS小技能:base64字符串和图片的互转
前言之前的同事 误认为二维码是app侧自己生成,直接将base64字符串 作为二维码的内容去生成,一张二维码容不下这么长的内容。就生成失败了。其实只要直接将base64字符串转图片。initQRCodeForInputByteSize cannot find proper rs block info (input data too big?)code将base64字符串转为图片/*.....................原创 2020-04-18 10:55:30 · 12437 阅读 · 0 评论 -
iOS小技能:__attribute__的应用
LLVM和其他 GCC 特性一样,Clang 支持了 attribute, 还加入了一小部分扩展特性。语法格式为:hook 函数,进行反反调试。自定义打印方法:用真正的方法替换去拦截 NSLog 的功能(),使用 进行实现,extern进行申明公共方法。1.2 对格式化字符串进行类型检查表明一些函数参数应该是非空的指针确保线程在应用整个生命周期内都能一直运行: AFNetworking 在网络请求线程的入口使用 noreturn 属性,用于网络请求的 NSThread。原创 2022-06-14 17:10:51 · 1052 阅读 · 0 评论 -
iOS小技能:常用预处理指令(移除程序中的identifier、发布模式关闭NSLog、导出和隐藏符号)
文章目录引言I、iOS常用预处理指令1.1 移除程序中的指定identifier(标识符)1.2 DEBUG 宏的应用1.3 、导出和隐藏符号1.3.1 导出符号信息1.3.2 控制符号是否导出引言I、iOS常用预处理指令1.1 移除程序中的指定identifier(标识符)#pragma clang poison identifier应用场景:禁止使用ObjC 的运行时API例子:#pragma clang poison NSLog1.2 DEBUG 宏的应用1、原原创 2021-03-03 13:32:11 · 3004 阅读 · 7 评论 -
iOS小技能: static、extern 存储类的应用(创建共享实例、申明公共方法、全局字符串常量)
1、单例模式的基本实现2、单例模式的完善3、GCD和宏实现单例-- 宏定义的代码不好调试4、ARC、MRC的适配(条件编译)原创 2017-07-04 10:51:53 · 10660 阅读 · 0 评论 -
iOS小技能:装箱和拆箱(boxing、unboxing)
包装类是使用面向对象的思想把简单的数据类型封装成类(示例:Integer i=1,int p=i;//将包装类Integer转化成简单数据类型int)注:Integer的拆箱方法为 int intValue(),其他的包装类以此类推。1)包装类都重写了toString方法,equals方法,hashCode方法2)Integer的API:将int类型的数据以二进制字符串形式返回 将字符串转化成int类型将字符串转化成对应的进制 类型,str为被转换的字符串,i为进制类型(10,8,16) 将字符串原创 2022-06-09 15:33:15 · 961 阅读 · 0 评论 -
iOS小技能: get 和post 布尔值参数处理、按照时间分页的数据重复的处理
前言如果后台Bool 参数没有同时支持【 0,1】 ;和【 true false】,get请求的时候 就需要特殊处理。问题 [params setValue:[NSNumber numberWithBool:self.viewModel.multipleSwitchCellTableViewCellModel.IsSon] forKey:@"IsSon"];//这个代码使用P.........原创 2020-03-27 12:03:03 · 13385 阅读 · 0 评论 -
iOS小技能:合成指令@synthesize的应用
1.objective-c下如果某属性的getter,setter都要重写的话需要加上@synthesize propertyName = _propertyName;// 合成指令,主动指定属性使用的成员变量名称@synthesize image = _image;//@synthesize iconF = _iconF;/** 一旦重写了readonly属性的getter方法,_的成员变量...............原创 2017-09-13 17:19:10 · 10805 阅读 · 0 评论 -
编码小技能:编码原则、面向对象、网络通讯五元组、LSP
先说说对我影响比较深的编码原则:object是指一个具体的事物实例Object oriented:指面向客观事物之间的关系(对象与对象)面向对象的定义:根据用户需求抽象出业务对象,然后再根据需求进行合理划分;形成相对独立的业务功能,之后再设计业务逻辑。利用面向对象的特点(封装、抽象、继承、多态)的编程思想实现业务需求,最后通过每个业务之间功能的关系进行整合,从而满足客户的要求。在分析项目业务关系的时候,应用一些UML(Unified Modeling Language)图,例如常用的用例图(use case原创 2022-06-01 17:21:02 · 775 阅读 · 0 评论 -
iOS面试题:多线程在iOS开发中的应用
概述重点: NSThread 多线程基础、pthread、开启线程的3种方式线程的状态、线程安全问题、线程间的通信GCD 同步方法和异步方法、队列的使用、线程间的通信延迟执行、一次性代码、队列组、单例模式-ARC、单例模式-MRC、用宏抽取单例模式NSOperation NSOperation和NSOperationQueue的概念理解、NSInvocationOperation、NSB原创 2017-07-04 09:44:11 · 10608 阅读 · 0 评论 -
编译器的工作过程
前言源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include stdio.h>int main(void){ fputs("Hello, world!\n", stdout); return 0;}要先用编译器处理一下,才能运行。$ gcc tes原创 2015-11-20 09:58:25 · 10499 阅读 · 0 评论 -
iOS面试题:1、LLVM架构的主要组成部分2、llvm 编译的整个流程介绍3、安装编译LLVM 4、【介绍如何编写、编译、加载、运行一个pass】
iOS 进阶:【什么是LLVM?】LLVM架构的主要组成部分、llvm 编译的整个流程介绍原创 2017-07-16 13:36:45 · 11086 阅读 · 0 评论 -
iOS面试题:Swift 文件 的编译过程
前言隐私条款 修改图片分辨率app-store-connect/原创 2019-05-31 11:26:17 · 11205 阅读 · 0 评论 -
iOS面试:编译原理
文章目录引言I 编译原理面试题1.1 编译程序包括那几个阶段?简述各个阶段的主要任务。1.2 目标程序有几种形式?1.3 什么是活动记录?它主要由哪些内容组成1.4 简述三种存储分配策略适用的语言特点II iOS编译2.1 iOS 项目编译流程步骤2.2 Clang (a C language family frontend for LLVM)III 编译过程3.1 预处理3.2 语意和语法分析3.2.1 AST :abstract syntax tree3.2.2 静态分析3.3 生成 LLVM 代码原创 2022-03-27 18:15:38 · 4599 阅读 · 0 评论 -
iOS面试题:新增weak修饰的object属性的实现方式
I、新增weak修饰的object属性的实现方式?先利用OBJC_ASSOCIATION_ASSIGN 进行修饰object;此时需要捕获对象object释放,对OBJC_ASSOCIATION_ASSIGN的属性置为空。 利用object 的强引用对象的dealloc方法捕获释放的时机----利用weak的实现原理进行实现。see alsoruntime/objc-weak.h类别(C...原创 2018-11-06 15:14:01 · 10665 阅读 · 2 评论 -
iOS面试题: Runloop的基本使用
文章目录引言I 使用例子1.1 往运行循环添加特定事件的目标和动作1.2 往运行循环添加计时器1.3 UI 事件处理的RunLoopMode、和定时器的NSRunLoopMode 的关系是什么样的时,可以保证它们能并发执行不影响个自的运行?引言RunLoop:An event-processing loop, during which events are received and dispatched to appropriate handlers.作用1、决定程序在何时应该处理哪些原创 2022-03-25 20:58:22 · 3204 阅读 · 0 评论 -
iOS面试题: Runloop的构成、应用案例
文章目录引言I 、使用例子1.1 add target/action for particular event1.2 往运行循环添加timer1.3 UI 事件处理的NSRunLoopMode、和定时器的NSRunLoopMode 的关系是什么样的时候,可以保证它们能并发执行不影响个自的运行?II 、基础知识2.1 RunLoop消息类型(事件源)2.3 runloop模式引言RunLoop:An event-processing loop, during which events are rece原创 2021-03-10 16:37:29 · 4152 阅读 · 12 评论 -
iOS 面试题:基于CFRunLoopDoSources0自定义Operation(应用案例:ASO执行切换IP任务)
文章目录引言I、基于CFRunLoopDoSources0自定义Operation1.1 Operation 头文件1.2 Operation 实现1.3 原理: CFRunLoopDoSources0II、应用案例引言应用场景:自定义Operation执行切换IP任务I、基于CFRunLoopDoSources0自定义OperationOperation状态枚举CF_ENUM(NSInteger) { Operat原创 2021-03-12 10:35:05 · 3681 阅读 · 9 评论 -
iOS面试指南:消息发送的步骤
前言RuntimeKit类是将Runtime常用的功能进行了简单的封装,TestClass以及相关的类目就是我们Runtime要操作的对象。一、构建Runtime测试用例二、RuntimeKit的封装对Runtime常用的方法进行了简单的封装。主要是动态的获取类的一些属性和方法的,以及动态方法添加和方法交换。1、获取类名使用class_getName(Class)就可以在运行时来获取类的名称clas...........................原创 2017-10-20 10:53:33 · 22125 阅读 · 0 评论 -
iOS面试题:load的调用时机 |快速列出App的所有+load方法
前言Objective C +load 方法是个神奇又邪恶的方法。当新手得到它时,会惊讶于它的神奇。当高手得到它时,会沉迷其中无法自拔。当老手得到它时,会惊恐于它的邪恶。多数大型App都已经或者正在想办法去摆脱它。那么,如果快速看到你的App中有多少+load方法,看看中毒有多深。那么想想,如果这些+load方法中的代码出现了crash,你的crash监控(bugly等等)能监控到吗?I、列出App的所有+load方法点击一下Pause,然后输入(lldb) br s -r "\+\[.+原创 2020-08-11 14:12:03 · 13512 阅读 · 0 评论 -
iOS面试:简历模版(A4纸正反两面)
文章目录I 联系方式II 个人信息III 求职意向IV 工作经验2018年-11月-至今全城淘信息技术服务有限公司2017年07月-2018年-11月湖南微流网络科技有限公司2013年09月-2017年07月湖南高阳通联信息技术有限公司V 项目经验2018年11月-至今全城淘2017年07月-2018年11月ASO(机刷)2017年10月-2018年11月越狱插件的开发2014年01月-2017年07月和包支付(和包-数智生活服务平台)2015年01月-2017年07月和包商户版2013年11月-2014年原创 2022-03-25 10:58:19 · 6630 阅读 · 1 评论 -
iOS面试:基础业务知识
文章目录引言I 类1.1实例对象、isa的关系1.2 NSObject 对象初始化时占用的多少内存空间?1.3 copy和mutableCopy1.4 load|initializeII blockIII runtime(消息转发机制)IV runloop引言struct objc_classs结构体里存放的数据称为元数据(metadata),存放着创建一个实例的相关信息,包括指向父类的指针、类的名字、版本、实例大小、实例变量列表、方法列表、缓存、遵守的协议列表等;block在创建的时候它原创 2022-03-24 20:24:36 · 3332 阅读 · 0 评论 -
iOS面试:要点梳理
引言I socket粘包现象:即发送方发送的若干包数据到接收方接收时粘成一包II 消息推送⭕ 解决iOS15之后本地通知通知栏弹出多次的问题:使用Service Extension拦截消息推送,修改UNNotificationSound为本地拼接的音频,来避免产生多条横幅。合并的音频保存在AppGroup⭕ 解决金额转换为对应的文字的细节问题(numFormatter的兼容处理)⭕ 通知携带 collapse id 参数,将会覆盖掉通知中心里携带相同 collapse id 的通知,col原创 2022-03-24 13:24:07 · 3402 阅读 · 1 评论 -
公告抄袭我文章的掘金账号:[freesan44](https://juejin.cn/user/1063982986970984) 和公众号:小集
引言今天公布下抄袭我文章的掘金账号:freesan44 和公众号:小集原创不易,免费文章容易被抄袭,请掘金运营协助下处理下 @掘金-优狐 BR_掘金运营证据抄袭我文章:https://juejin.cn/post/7026900619831017486抄袭的公众号文章:https://mp.weixin.qq.com/s/cP5FPcY_rvqX4J1YWCxUUg原文1:https://juejin.cn/post/7026217314081046564原文2:https://juejin原创 2021-11-17 09:32:52 · 3639 阅读 · 0 评论