➠更多技术干货请戳:听云博客 0x01 iOS体系架构 1.1 iOS 系统的整体体系架构 用户体验( The User Experience layer ):SpringBoard 同时支持 Spotlight. 应用软件开发框架(The Application Frameworks layer):Cocoa ( Cocoa Touch ). 核心开发框架(The Core Frameworks):图形和多媒体一类软件的开发环境,包括 核心框架,Open GL和QuickTime等. Darw…
Windows内核基础知识-5-调用门(32-Bit Call Gate) 调用门有一个关键的作用,就是用来提权.调用门其实就是一个段. 调用门: 这是段描述符的结构体,里面的s字段用来标记是代码段还是数据段还是系统段,前面解析的时候讲的是 S==1的情况,也就是Code or data的情况,这次的调用门就是当s==0时的情况. 当s==0时,type的内容如下: 那么调用门其实就是 type为12的情况下的一个段寄存器. 32-Bit Call Gate.32位情况下的一个调用门. 就是一个…
效果如下: ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end ViewController.m #import "ViewController.h" @interface ViewController () - (void)userNotificationDidPush:(UIApplication *)application; @end @i…
Linux源代码阅读——内核引导 转自:http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html 目录 Linux 引导过程综述 BIOS POST 自举过程 Boot loader 主引导扇区结构 GRUB stage1 GRUB stage2 内核初始化:体系结构相关部分 内核映像结构 header.S 初始化与保护模式 自解压内核 startup_32 内核初始化:体系结构无关部分 核心数据结构初始化 设备初始化 1 Lin…
Windows内核基础知识-1-段寄存器 学过汇编的应该都知道段寄存器,在Windows里段寄存器有很多,之前可能只接触了ds数据段,cs 代码段这种,今天这个博客就介绍Windows一些比较常用的段寄存器. 段:Segment,段寄存器肯定是以s结尾的.通过olldydbg软件可以看到这六个常用的段寄存器 寄存器 描述 ES expand segment扩展段 CS code segment代码段 SS stack segment栈段 DS data segment数据段 FS 取teb的时候…
Windows内核基础知识-2-段描述符 比如: ES 002B 0(FFFFFFFF) 意思就是es段寄存器,段选择子/段选择符 为002B, 起始地址base为0, 限制范围Limit地址最大能寻找的长度为:FFFFFFFF,表示的是一个范围.从.base到最后最长的地址的相对值. 简单来说就是偏移地址的范围.地址=段寄存器基址base+偏移地址,这个limit可以理解为偏移地址的范围 可以看到所有的段寄存器除了FS别的都是一样的. 获取段寄存器的信息: 如果你正常在调试,用什么WinDbg…
Windows内核基础知识-8-监听进程.线程和模块 Windows内核有一种强大的机制,可以在重大事件发送时得到通知,比如这里的进程.线程和模块加载通知. 本次采用链表+自动快速互斥体来实现内核的主要架构. 进程通知 只要在内核里面注册了进程通知那么创建进程就会反馈给内核里面. //注册/销毁进程通知函数NTSTATUS PsSetCreateProcessNotifyRoutineEx(  PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,//回…
runtime 完整总结 好东西,应该拿出来与大家分享... 南峰子博客地址:http://southpeak.github.io/blog/categories/ios/ 原文链接:http://www.jianshu.com/p/6b905584f536 类和对象 Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等.这种特性意味着…
WDA facebook wda 2015年Facebook 开源了一款 iOS 移动测试框架WebDriverAgent,WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备.你可以启动.杀死应用,点击.滚动视图,或者确定页面展示是否正确.它通过链接 XCTest.framework 并调用苹果的 API 直接在设备上执行命令.这使得它成为应用程序端到端测试或通用设备自动化的完美工具 wda作为任何U…
➠更多技术干货请戳:听云博客 0x01  Mach-O格式简单介绍 Mach-O文件格式是 OS X 与 iOS 系统上的可执行文件格式,类似于windows的 PE 文件 与 Linux(其他 Unix like)的 ELF 文件,如果不彻底搞清楚Mach-O的格式与相关内容,那么深入研究 xnu 内核就无从谈起. Mach-O文件的格式如下图所示: 有如下几个部分组成: 1. Header:保存了Mach-O的一些基本信息,包括了平台.文件类型.LoadCommands的个数等等. 2. L…