E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
ios-安全攻防
iOS-
底层原理9:objc_class 中 cache 原理分析
在
iOS-
底层原理7:isa与类关联的原理和
iOS-
底层原理8:类&类结构分析中,分析了objc_class中isa和bits,这篇文章主要是分析objc_calss中的cache属性1、源码初探step1
AcmenL
·
2022-02-05 19:37
iOS-
比较两个日期的大小
还在用转化为时间戳比大小吗?一行代码搞定:/**判断两个日期的大小*date01:第一个日期*date02:第二个日期*format:日期格式如:@"yyyy-MM-ddHH:mm"*return:0(等于)1(大于)-1(小于)*/-(int)compareDate:(NSString*)date01withDate:(NSString*)date02toDateFormat:(NSString
天空是灰色的白
·
2022-02-05 13:51
iOS-
底层探索19:KVO原理
iOS底层探索文章汇总目录一、什么是KVO二、KVO基本使用三、KVO实现原理四、总结参考一、什么是KVOKVO是基于KVC的,全称是Key-Value-Observer键值观察者。KVO提供一种机制,指定一个被观察的对象(A类),当对象某个属性(A中的属性name)发生更改时,对象会获得通知,并作出相应处理;【且不需要给被观察的对象添加任何额外代码,就能使用KVO机制】。KVO是Objectiv
differ_iOSER
·
2022-02-05 09:54
iOS-Block02-小谈block的底层数据结构
在写这篇文章的时候,距离上一篇写block的文章已经过了很久了
iOS-
谈谈自己知道的block(菜鸟的总结)。
IBigLiang
·
2022-02-05 05:44
iOS-
底层原理:启动优化(三)二进制重排
前提,在之前的两篇文章中,大致介绍了一些基本概念以及启动优化的思路,下面来着重介绍一个pre-main阶段的优化方案,即二进制重排,这个方案最开始是由于抖音的这篇文章抖音研发实践:基于二进制文件重排的解决方案APP启动速度提升超15%火起来的。二进制重排原理在虚拟内存部分,我们知道,当进程访问一个虚拟内存page,而对应的物理内存不存在时,会触发缺页中断(PageFault),因此阻塞进程。此时就
恍然如梦_b700
·
2022-02-03 17:01
带你深入理解
iOS-
内存对齐
前言在iOS底层源码学习中,会需要分析一个结构体所占用的内存大小,这里面就涉及到了内存对齐今天,我将结合内存对齐的概念、原因、规则、实际例子,让你深入理解内存对齐,掌握分析结构体所占内存大小的方法。目录.png源码地址MemoryAlignment简介内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。如果你想了解更加底层的秘密,探究“内存对齐”对你就不应该再
002and001
·
2022-02-03 14:27
iOS-
底层(15):iOS内存的五大区
在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域。如下图所示image下面分别介绍这五大区栈区(Stack)定义栈是系统数据结构,其对应的进程或者线程是唯一的栈是向低地址扩展的数据结构栈是一块连续的内存区域,遵循先进后出(FILO)原则栈的地址空间在iOS中是以0X7开头栈区一般在运行时分配存储栈区是由编译器自动分配并释放的,主要用来存储局部变量函数的参数,例如函数的隐藏参数(i
恍然如梦_b700
·
2022-02-03 14:04
iOS-
底层探索14:分类的加载(类的加载下)
iOS底层探索文章汇总目录一、前言二、readClass方法调用后类的结构探索三、将分类中的方法添加到类中四、懒加载与非懒加载下分类的加载情况五、LLVM相关流程分析一、前言上一篇文章iOS懒加载类与非懒加载类(类的加载中)中我们分析了懒加载类与非懒加载类的加载流程,并分析了分类的加载原理。我们知道了什么时候添加分类,什么时候初始化rwe,但是什么时候将分类添加到类中不知道。那么这篇文章我们就继续
differ_iOSER
·
2022-02-03 14:49
iOS-
离屏渲染探索
iOS项目性能优化时,不得不提到离屏渲染,为了提升性能,我们要求尽量减少离屏渲染的发生。那,什么是离屏渲染?离屏渲染如何会被触发?1:什么是离屏渲染渲染流程:正常情况下,经过CPU的计算、绘制、提交位图,以及GPU的渲染之后,会将数据结果存放到帧缓冲区,随后视频控制器会读取帧缓冲区的数据,经过数模转换,再逐行显示到屏幕上(如下图)。渲染离屏渲染呢?(off-Screen)离屏缓冲区GPU渲染的过程
土豆骑士
·
2022-02-02 23:15
iOS-
底层原理3:objc4-781调试
1、准备工作objc4-781源码依赖的文件源码编译需要依赖的文件说明:其中除了其中launchd-106.10需要在MacOSX10.4.4下载,其他的均可以在最新的的版本macOS10.15中检索到2、编译调试下载完源码解压直接运行,会出现以下问题:问题1:unabletofindsdk'macosx.internal'报错1解决:选择target->objc->BuildSettings->
AcmenL
·
2022-02-02 22:01
iOS 最全动态库/静态库制作 Framework/.a
一、静态库1.创建静态库工程Xcode->CreateanewXcodeproject->
iOS-
>StaticLibraryimage.png2.将代码导入工程选择Creategroups(逻辑路径)
起床赚钱了
·
2021-12-13 09:29
iOS-
真机模拟器脚本合并framework(亲测可用)
在实际SDK项目开发中,我们会经常随时打包framwork,为了让静态库在模拟器和真机都可以正常的运行,就涉及到如何把一个工程生成的静态库打包以后生成的framework进行合并。最传统的方式,通过终端的lipo-create真机路径模拟器路径-output真机路径命令,但是太过于麻烦,网上有很多脚本,下面xcodebuild.sh脚本亲测可以帮助我们快速合并framwork.操作步骤:1、将xc
翀鹰精灵
·
2021-12-06 16:03
IOS-
私有库 GKit.podspec Pod 新版
知识时间长不用真的是容易忘,基础的教程可以看iOS开发——组件化之Cocoapods私有库详解lib_Gaos的BLOG-CSDN博客前言随着公司业务的不断发展,团队不断壮大的同时,项目也随之臃肿起来,如何保障团队协作的高效,自然的想到了组件化这个话题。下面总结下本人的梳理和思考。组件化为什么我们需要组件化项目模块间的解耦、模块实现可重用、提升团队成员之间团队之间的协作开发效率、更方便单元测试。并
Gaos的BLOG
·
2021-12-02 21:32
★IOS★
ios
【Microsoft Azure 的1024种玩法】五、基于Azure Cloud Shell 一站式创建Linux VM
【前期文章】【MicrosoftAzure的1024种玩法】一.一分钟快速上手搭建宝塔管理面板【MicrosoftAzure的1024种玩法】二.基于Azure云平台的
安全攻防
靶场系统构建
一直特立独行的兔先生
·
2021-11-22 13:00
iOS-
基础性问题
1、weak和assign的区别?iOS开发中weak和assign的区别assin与weak的区别/*__unsafe_unretained(不安全的,不引用-不持有)*如果指针指向的对象被销毁,但是assign并没有把指针清空*不会让引用计数器+1*/@property(nonatomic,assign)UIView*magentaView;/*weak一般用于修饰控件*如果指针指向的对象被销
lukyy
·
2021-11-21 23:29
用python写一个自动化盲注脚本
参考资料:《python
安全攻防
》和盲注相关的payload写
雪痕*
·
2021-11-03 19:00
【渗透测试自学系列】——Web
安全攻防
技术演化
目录1.1.1.简单网站1.1.1.1.静态页面1.1.1.2.多媒体阶段1.1.1.3.CGI阶段1.1.1.4.Ajax1.1.1.5.MVC1.1.2.数据交互1.1.2.1.简单数据交互1.1.2.2.RESTful1.1.2.3.GraphQL1.1.2.4.二进制1.1.3.中间件1.1.3.1.架构复杂化1.1.3.2.分布式1.1.3.3.CI/CD1.1.4.云服务1.1.4.1
LexSaints
·
2021-10-31 12:06
前端
mvc
asp.net
当爬虫工程师遇到 CTF丨B 站 1024
安全攻防
题解
答案参考第一题:a1cd5f84-27966146-3776f301-64031bb9第二题:36c7a7b4-cda04af0-8db0368d-b5166480第三题:9d3c3014-6c6267e7-086aaee5-1f18452a第四题:3d5dd579-0678ef93-18b70cae-cabc5d51第五题:516834cc-50e448af-bcf9ed53-9ae4328e第
·
2021-10-26 16:21
python
当爬虫工程师遇到 CTF丨2021 年 B 站 1024
安全攻防
题解
文章目录答案参考第一题:加密解密第二题:前端配置项第三题:最好的语言第四题:SQL注入第五题:APP逆向第六题:IDA逆向SO第七题:风控恶意IP总结答案参考第一题:a1cd5f84-27966146-3776f301-64031bb9第二题:36c7a7b4-cda04af0-8db0368d-b5166480第三题:9d3c3014-6c6267e7-086aaee5-1f18452a第四题:
K哥爬虫
·
2021-10-23 18:50
#
JS
逆向百例
爬虫
安全
python
安卓逆向
1024程序员节
iOS 动态库、静态库制作
一、动态库制作1.创建动态库工程Xcode->CreateanewXcodeproject->
iOS-
>Framework截屏2021-10-20下午3.20.18.png2.将代码导入工程选择Creategroups
maskerII
·
2021-10-20 18:27
iOS-
开发者账号测试设备达到100台处理办法
前言我所在的公司在一个开发者账号下有多个APP发布,APP的测试阶段是分几个测试团队进行APP测试的,由于开发、产品、测试、UI等都在开发阶段对产品进行测试体验、新的机型的上市、陈旧设备未移除等原因,造成设备达到上限,基于此分享一下处理措施处理办法:方式1发邮件image.png团队ID哪里寻找?登录开发者账号1634634276477.jpgTeamID右侧箭头指向的就是开发者账号的团队ID方式
混不吝丶
·
2021-10-19 17:05
iOS-
发布代码到cocoapods上,使用cocoapods管理代码
一、创建工程到本地目录代码本地位置cd/Users/xxx/Desktop///JYCCToolpod'JYCCTool'podlibcreateJYCCTool注意:(1)JYCCTool是开源库的名字,可以根据自己的功能开取名;这个命令执行后,命令行会问下面几个问题:(2)当被问及创建Swift还是OC项目,按自己要求回答,我选择ObjC;(3)当被问及是否创建一个demo应用包含在工程里,根
何年何月
·
2021-10-15 10:59
php
安全攻防
利用文件上传漏洞与绕过技巧详解
目录前言文件上传漏洞的一些场景场景一:前端js代码白名单判断.jpg|.png|.gif后缀场景二:后端PHP代码检查Content-type字段场景三:代码黑名单判断.asp|.aspx|.php|.jsp后缀场景四:代码扩大黑名单判断绕过方式——htaccsess:绕过方式——大小写绕过:场景五:一些复合判断空格、点绕过(windows)::$DATA绕过(windows)双写绕过%00截断%
·
2021-10-14 18:20
php
安全攻防
世界unserialize函数反序列化示例详解
目录步骤总结步骤首先打开题目,发现给了一段源码:分析源码,发现类里面有三个魔术方法:__construct():构造函数,对类的变量进行初始化,创建时自动调用,用得到的参数覆盖$file__destruct():销毁时调用,会显示文件的代码,这里要显示fl4g.php__wakeup():在进行反序列化之前会调用,会把$file重置成index.php正则表达式的含义:o或c开头,冒号,一个或多个
·
2021-10-14 16:42
iOS-
屏幕适配(AutoLayout)Trait Variations
AutoLayout简介AutoLayout旨在替代Autoresizing,所以在同一个项目中,AutoLayout和Autoresizing是不能共存的,二者只能选其一,如果你选择了AutoLayout,那么Autoresizing自动被屏蔽掉;如果你选择了Autoresizing,那么AutoLayout自动被屏蔽掉。XCode5及其之后的版本,默认新建的项目就是使用AutoLayout关于
Ismail丶
·
2021-10-14 15:12
iOS-
如何优化界面
前言在我们的项目,我们有时候会遇到UI不太流畅,有时卡顿,给用户的感觉不那么友好,降低了体验感,那么这些问题是怎么产生的,以及如何解决这些问题,我们今天就来看下我们的UI如何优化。1卡顿的原理卡顿是因为掉帧引起的,为什么会出现掉帧呢,这就需要我们分析下屏幕显示的原理。CPU负责需要渲染的数据进行计算。GPU负责渲染,把需要渲染的数据输出到framebuffer(帧缓冲区)framebuffer再输
似水流年_9ebe
·
2021-09-25 09:03
iOS-
内存管理分析(中)
前言
iOS-
内存管理分析(上)一文我们分析了内存的五大区,taggedPointer,retain,release的底层分析,这篇文章继续分析内存管理的其它相关知识。
似水流年_9ebe
·
2021-09-21 21:57
iOS-
内存管理分析(上)
前言我们知道内存管理在任何一门编程语言中都有极其重要的地位,即然极其重要,也就意味着有难点,今天我们就来剖析iOS的内存管理相关的知识。1内存五大区内核区,用户区。用户内存五大区:堆、栈、bss(未初始化数据)、data(已初始化数据)、text(代码段)。栈区:局部变量,方法参数,函数,内存地址一般为:0x7开头堆区:通过alloc分配的对象,blockcopy,内存地址一般为:0x6开头BSS
似水流年_9ebe
·
2021-09-08 09:00
iOS-
浅析Swift开发使用的三方-SwiftyJSON
SwiftyJSON1.优点:在获取多层次结构的JSON数据时。SwiftyJSON不需要一直判断这个节点是否存在,是不是我们想要的类型,下一个节点是否存在,是不是我们想要的类型。同时,SwiftyJSON内部会自动对optional(可选类型)进行拆包(Wrapping),大大简化了代码。2.使用方法:测试数据:{"msg":"OK","data":{"_ts":1621321596832,"d
左方
·
2021-09-07 14:33
iOS-
深入了解LLVM编译器架构
前言我们会经常听到编译器这个词语,我们就会想什么是编译器,它的功能是什么,跟我们的开发又有什么关系,这篇文章就带大家走入LLVM编译器架构,揭开编译器的神秘面纱。1什么是编译器我们用Python(解释型)和C(编译型)来先对比下Python代码如下print("helloworld\n")我们通过pythonpy1.py命令执行下,看下效果,如图1python是python的解释器,这个就是解释型
似水流年_9ebe
·
2021-08-27 11:21
iOS-
锁的原理分析(二)
前言
iOS-
锁的原理分析(一)我们分析了synchronized锁,这篇文章我们继续介绍其它的锁。
似水流年_9ebe
·
2021-08-20 23:01
iOS-
初识逆向IDA工具使用
逆向小白一枚,记录下自己学习反编译的一些历程~一般学习逆向,也是需要借助一些工具的,通过反编译工具,分析二进制文件,生产汇编代码,从而转换成高级语言。常用的反编译工具如下:①Hopper(貌似macOSBigSur版本11.2.3(20D91)系统下无法破解成功)②IDA(macOSBigSur版本11.2.3(20D91)系统可用)-->IDA工具介绍IDA的使用流程:(砸壳过程pass,直接用
翀鹰精灵
·
2021-07-30 13:52
iOS SDK开发--静态库framework
1.新建一个项目,File->Project->
iOS-
>Framework,取名MyFramework,2.设置配置,设置支持iOS系统的最低版本以及支持的设备--TARGETS->Genearl->
isaaczcbj
·
2021-07-16 17:15
iOS-
快速方法查找
今天主要是objc_msgSend源码分析:ENTRY_objc_msgSend//进入_objc_msgSendUNWIND_objc_msgSend,NoFramecmpp0,#0//nilcheckandtaggedpointercheck判断消息接收者是否为空或者为taggedpointer,#ifSUPPORT_TAGGED_POINTERSb.leLNilOrTagged//(MSBt
Summit_yp
·
2021-07-03 12:31
iOS-
逆向22-砸壳
《iOS底层原理文章汇总》上一篇文章《
iOS-
逆向21-越狱&OpenSSH》介绍了越狱&OpenSSH,本文介绍砸壳。
一亩三分甜
·
2021-06-30 17:36
iOS - 内存管理(三)之ARC
前言阅读本文前请先理解前面的两篇内容《
iOS-
内存管理(一)之MRR》和《
iOS-
内存管理(二)之Copy》,因为本文会结合MRR的内存管理规则来解释ARC。
FKSky
·
2021-06-27 21:44
iOS-
自定义交互式转场动画
自定义转场动画主要有以下步骤自定义导航栏自定义交互动画通过UIPercentDrivenInteractiveTransition协议实现交互自定义导航栏自定义导航栏需要遵守协议,该协议主要有两个协议方法://该方法返回导航跳转时的动画,如果返回nil,则是系统默认的跳转动画,并且通过operation来判断当前执行push还是pop-(id)navigationController:(UINav
cdcyd
·
2021-06-27 15:50
iOS-
图书管理系统
//判断程序是否第一次打开NSUserDefaults*TimeOfBootCount=[NSUserDefaultsstandardUserDefaults];if(![TimeOfBootCountvalueForKey:@"firstLaunch"]){[TimeOfBootCountsetBool:YESforKey:@"firstLaunch"];ViewController*v1=[[
iOS_阿辉
·
2021-06-27 14:17
iOS-
内存管理
1内存管理【手动内存管理MRC】关闭ARC//工程—>Targets—>BuildSetting—>搜索【gar】【YES】—>【NO】//引用计数器的数值怎么计算创建对象时默认就是1(alloc,new,copy)给对象发送一条retain消息加1给对象发送一条release消息减1给对象发送一条retainCount消息获取计数器的数值//对象销毁销毁的前提:引用计数器为0销毁时做的事情:调用
亦晴工作室
·
2021-06-27 08:03
iOS-
底层原理 07:isa与类关联的原理
iOS底层原理文章汇总本文的主要目的是理解类与isa是如何关联的在介绍正文之前,首先需要理解一个概念:OC对象的本质是什么?OC对象本质在探索oc对象本质前,先了解一个编译器:clangClangclang是一个由Apple主导编写,基于LLVM的C/C++/OC的编译器主要是用于底层编译,将一些文件``输出成c++文件,例如main.m输出成main.cpp,其目的是为了更好的观察底层的一些结构
Style_月月
·
2021-06-27 05:55
iOS-
史上最全的社交分享封装(QQ,微信,微博,短信,邮件)
1.需求:国内几大常见的社交分享(只写了具体分享操作的代码,前期的配置和Appdeltegate中的回调url以及第三方注册的相关方法已省略,需要自己添加)2.SSSocialMessageObject是自己封装的分享对象,按照需求自己定义,包括title,thumImage,url,text(摘要)等3.有些分享参数不符合条件可能会意外埋坑,比如微信,见代码注释/**具体分享操作@parampl
fly大梦想家
·
2021-06-26 23:17
iOS-
底层原理13-类的加载上
《iOS底层原理文章汇总》上一篇文章《
iOS-
底层原理12-应用程序加载》,之后了load_images中调用类,分类中的load方法,本文介绍类中属性,方法,协议,Categories,是如何加载到ro
一亩三分甜
·
2021-06-26 16:36
iOS-
底层原理 35:组件化(一)方案
iOS底层原理文章汇总本文主要讲解组件化的两种方案组件化组件化其实就是将模块单独抽离、分层,并指定模块间的通讯方式,从而实现解耦的一种方式,主要运用与团队开发为什么需要组件化?主要有以下四个原因1、模块间解耦2、模块重用3、提高团队协作开发效率4、单元测试当项目因为各种需求,越来越来时,如果此时的各个模块之间是互相调用,即你中有我,我中有你这种情况时,会造成高耦合的情况。一旦我们需要对某一块代码进
Style_月月
·
2021-06-26 16:14
iOS-
底层原理(16)-runtime之objc_msgSend详解
面试题1.讲一下OC的消息机制OC中的方法调用其实都是转成了objc_msgSend函数的调用,给receiver(方法调用者)发送了一条消息(selector方法名)objc_msgSend底层有3大阶段消息发送(当前类、父类中查找)动态方法解析消息转发2.什么是Runtime?平时项目中有用过么?OC是一门动态性比较强的编程语言,允许很多操作推迟到程序运行时再进行OC的动态性就是由Runtim
路飞_Luck
·
2021-06-26 14:55
iOS-
内存管理5-引用计数、__weak原理
一.引用计数1.引用计数存储在哪我们都知道,调用retain会让OC对象的引用计数+1,调用release会让OC对象的引用计数-1,那么引用计数存储在哪里呢?其实在isa存储信息分析中已经讲过了,在64bit中,引用计数可以直接存储在优化过的isa指针中,也可能存储在SideTable结构体中。如果引用计数不大(不大于19),会存储在isa的extra_rc中,其中rc是retainCount的
Imkata
·
2021-06-26 12:24
iOS-
底层原理22-多线程
《iOS底层原理文章汇总》1.进程和线程线程是进程的基本执行单元,一个进程的所有任务都在线程中执行*进程要想执行任务,必须得有线程,进程至少要有一条线程程序启动会默认开启一条线程,这条线程被称为主线程或UI线程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内通过“活动监视器”可以查看Mac系统中所开启的进程地址空间:同一进程的线程共享本进程的
一亩三分甜
·
2021-06-26 06:52
iOS-
后台任务相关
小摩丝.jpg研究一波吧.1.iOS后台任务2.NSTimer的基础用法以及程序挂起后NSTimer仍然可以在后台运行计时3.iOS语音提醒开发总结4.iOS后台任务5.iOS后台刷新介绍6.iOS保持App真后台运行7.iOS后台持续播放音乐8.实现后台推送播放自定义声音(类似于支付宝的收款提醒)9.iOS封装一个百度地图的定位类可以持续后台定位10.iOS自定义通知声音11.iOS断点+后台下
守护地中海的花
·
2021-06-26 06:26
iOS-
跨app传递图片及文件的实现分析
从微信分享图片说起直接上图(可以参考openshare这个框架)原理图第一步:把图片而二进制存入字典,其他参数也存入字典,字典外层再包一层以微信分配的appid为键的字典,二进制后存入粘贴板第二步:通过打开这个链接,可以跳转到微信.微信会验证此处的appid是否在其官网注册过,并且根据此appid从粘贴板拿到图片和参数,进行参数校验,而图片鉴黄则会在发送分享上传服务器后进行.这里需要注意:iOS1
后青春期的诗大喵
·
2021-06-26 05:32
iOS-
底层原理:LLVM编译流程 & Clang插件开发
本文主要是理解LLVM的编译流程以及clang插件的开发LLVMLLVM是架构编译器的框架系统,以C++编写而成,用于优化任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)。对开发者保持开放,并兼容已有脚本传统编译器设计源码SourceCode+前端Frontend+优化器Optimizer+
恍然如梦_b700
·
2021-06-26 03:28
iOS-
自己的项目使用CocoaPods管理
参考链接:https://www.cnblogs.com/ludashi/p/8778945.html1.新建xcode项目2.找到项目目录:(快捷键:找到项目文件夹,control+C,进入到Terminal,control+V)cd/Users/zangmina/Desktop/zmn/zmnMasonryTest3.创建podfilevimPodfile4.编辑PodFile5.保存后,执行
tianlanse1213
·
2021-06-25 23:37
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他