iOS面试题 如何防止函数被hook

被问到一个问题:假如你做SDK给外部使用,怎样保证提供的函数不被外部hook? 我们知道,iOS中的hook基本原理有两个: 1.OC的动态性,利用 Method Swizzling 进行hook; 2.C语言在iOS中的动态性,利用符号重绑定进行hook。 所以,我们可以利用OC的Method Swizzling来hook方法,有以下三种方法: 1、方法交换 OBJC_EXPORT void

关于我丨芋圆的闲逛说明书

嗨,我是芋圆,欢迎来到我的简书吖。 想了很久,也没想好开头应该说些什么,应该如何介绍自己。我既是活泼的,又是安静的;既是社牛的,又是社恐的;既是勇敢的,又是胆小的;既是勤奋的,又是懒惰的。 但我想说的是,不管哪一种,都是真实的我。 以下是我的文集 一. 书写生活 二. 百事可爱 万事碎碎念 三. 路过人间 四. 阅读、观影 五. 半截的诗 六. 天马行空 七. 收集一只蝴蝶结 八. 我与写作这件事

mysql安装和登录

Linux:ubantu 一、安装步骤 ubuntu上安装mysql非常简单只需要几条命令就可以完成: $sudo apt-get install mysql-server $apt-get isntall mysql-client $sudo apt-get install libmysqlclient-dev 安装完成之后可以使用如下命令来检查是否安装成功: $sudo netstat -t

python实现excel数据与mysql数据库互通有无

file 【阅读全文】 python在制作一些小工具上本身就有着得天独厚的优势,大多数非标准库的应用只需要进行简单的安装即可使用。 比如:使用python将excel中的数据导入到mysql数据库表中,或是将mysql数据库表中的数据直接导出为excel都只需要简单的几行代码就可以完成,假如使用Java来做这件事强那可就有些复杂了呢。 话不多说,接下来直接进入正题... 这里使用两个p

【R画图学习9.3】加入截断的柱状图

break就是截断的意思,一般主要是在画图的时候,Y轴上某些值过大,容易把其它规律给掩盖掉,所以这时候就需要一个截断操作。 今天用下面一组简单的测试数据。 library(ggplot2) library(ggbreak) data <- read.table("week.data.txt",header=T,sep="\t") head(data) data$day =fac

wei信卸载

数据也都没了, 所以呢, 卸载之前先登录电脑, 同步一下, 里面应该有备份, 27的版本耗电量吓人, 机子也卡的不行, 卸载了吧, 重新换回25的版本, 降级必须要卸载之前的27, 所以数据提前保存备份, 登录之后有个验证, 原来手机上没什么, 如果是新的或者很久没用过的, 那么就要验证, 好友发数字, 原来手机上扫二维码, 还有一个发短信的, 所以, 提前找好几个好友, 都在线这样就可以快速通过

linux下的进程管理

标题一:理解进程和线程1.1 进程程序运行之后的实例就是进程。程序是存放在磁盘的静态文件,进程是载入内存、占用 CPU/内存资源的动态运行实体,系统为每个进程分配唯一编号 PID(进程 ID),内核依靠 PID 管理、调度进程。特征: 占用内存、CPU 等系统资源 拥有独立生命周期:创

ESXi 8.0U3i 新版本深度解析|官方原版核心优势 + 部署指南,稳定运维首选

随着企业虚拟化、私有云部署需求的不断升级,一款稳定、安全、可追溯的底层虚拟化系统,成为数据中心、机房运维与合规生产的核心诉求。VMware ESXi 8.0U3i(版本 8.0U3i-25205845)作为 8.0 系列 2026 年最新推出的稳定版本,在安全补丁、性能优化、硬件兼容上实现全面升级,相较于旧版本&#