iOS开发笔记
学无止境!
WinJayQ
学无止境!
展开
-
iOS暴力更改状态栏背景颜色
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];statusBar.backgroundColor = [UIColor whiteColor];原创 2018-05-16 10:45:06 · 1506 阅读 · 0 评论 -
iOS-LLDB调试命令(Low Lever Debug)
断点设置断点 $breakpoint set -n XXX set 是子命令 -n 是选项 是–name 的缩写!查看断点列表 $breakpoint list 删除 $breakpoint delete 组号禁用/启用 breakpointdisable禁用breakpointdisable禁用breakpoint disable 禁用 breakpoint enab...原创 2018-05-16 10:46:43 · 146 阅读 · 0 评论 -
iOS工程中如何去掉第三方的警告
iOS开发中,编译后出现大量的警告提醒是很正常的,特别是当我们引入了一些第三方的类库时动辄就会出现几十个甚至几百个警告,而且我们又不能随意改动否则影响功能可就惨了,,,怎么办,,,那我们按以下教程暴力去除吧,gogogo一)第一种方法1.在xcode的左上找到下图,选择中间感叹号。 2.选中一个警告右键,如下图 3.选择Reveal in Log,查询警告详情出现一大串的内容,...原创 2018-05-16 10:47:16 · 1034 阅读 · 0 评论 -
Xcode调用栈时小图标代表什么意思
对底层感兴趣,经常查看调用栈的朋友,肯定发现了调用栈相关方法旁边有很多小图标,那么它们究竟代表什么意思呢?具体如下:原创 2018-05-16 10:47:57 · 304 阅读 · 0 评论 -
初识汇编(一)
汇编语言与机器语言一一对应,每一条机器指令都有与之对应的汇编指令汇编语言可以通过编译得到机器语言,机器语言可以通过反汇编得到汇编语言高级语言可以通过编译得到汇编语言 \ 机器语言,但汇编语言\机器语言几乎不可能还原成高级语言汇编语言的特点可以直接访问、控制各种硬件设备,比如存储器、CPU等,能最大限度地发挥硬件的功能能够不受编译器的限制,对生成的二进制代码进行完全的控制目...原创 2018-05-16 10:48:29 · 177 阅读 · 0 评论 -
初识汇编(二)
寄存器内部部件之间由总线连接对程序员来说,CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制不同的CPU,寄存器的个数、结构是不相同的通用寄存器ARM64拥有有31个64位的通用寄存器 x0 到 x30,这些寄存器通常用来存放一般性的数据,称为通用寄存器(有时也有特定用途)那么w0 到 w28 这些是32位的. 因为64位CPU可以兼容32位....原创 2018-05-16 10:49:07 · 177 阅读 · 0 评论 -
初识汇编(三)
函数本质SP和FP寄存器sp寄存器在任意时刻会保存我们栈顶的地址.fp寄存器也称为x29寄存器属于通用寄存器,但是在某些时刻我们利用它保存栈底的地址!() 注意:ARM64开始,取消32位的 LDM,STM,PUSH,POP指令! 取而代之的是ldr\ldp str\stp ARM64里面 对栈的操作是16字节对齐的!!关于内存读写指令 注意:读...原创 2018-05-16 10:49:39 · 253 阅读 · 0 评论 -
安装cycript出错:dyld: Library not loaded
安装cycript后,在控制台输入命令$ /opt/cycript_0.9.594$ ./cycript执行后遇到了这个问题:dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib Referenced from...原创 2018-05-16 10:50:23 · 475 阅读 · 0 评论 -
2018 iOS最新最全的手机号正则表达式
//判断是否为电话号码- (BOOL)isMobileNumberOnly:(NSString *)mobileNum{ NSString * MOBILE = @"^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$"; NSPredicate *regextestmobile = [...原创 2018-05-16 10:50:52 · 822 阅读 · 0 评论 -
iOS 内存泄漏的检测方式
内存泄漏的检测方式:一、静态检测方法1)手动静态检测 使用XCode分析功能,Product->Analyze2)自动静态检测 在项目的Build setting中,将Analyze During 'Build'设置为YES二、动态检测方法1)Instrument 工具检测 Leaks2) 第三方的内存检测工具,如MLeaksFinder三、析构方法...原创 2018-05-16 10:51:20 · 230 阅读 · 0 评论 -
iOS ipv6审核被拒绝的解决方案(已审核通过)
目前解决IPv6被拒问题只有三种方案(其他任何方案都是这三种延伸而来): ① NAT64+DNS64 中转解决方案——配置简单、稳定有效。 ② IPv6隧道技术解决方案——技术要求高、稳定性一般。 ③ IPv6带宽接入方案——成本高,适合自建服务器客户。2018年3月份因为公司的新产品上架被拒(Performance - 2.1) ,苹果审核人员在IPv6的环境下不能进入我们的APP。折...原创 2018-05-17 16:46:56 · 6634 阅读 · 0 评论 -
iOS逆向之工具篇
一、常用工具: 1)Alfred Alfred3.2 Mac 破解文档: http://www.sdifen.com/alfred32.html 常用设置和操作:https://www.jianshu.com/p/e9f3352c785f Alfred 支持iTerm2的脚本:on alfred_script(q) if application "iTerm2" is ...原创 2018-05-17 16:48:03 · 252 阅读 · 0 评论 -
iOS逆向之密码学
密码学1.HASH哈希(散列)函数 不可逆(不能用于加密和解密) 一个二进制数据只有一个HASH值2.非对称 RSA 由于是简单的数学计算,所以加密的效率比较低,一般用于加密核心的(小数据) * 公钥加密,私钥解密 * 私钥加密,公钥解密3.对称 * DES * 3DES * AESopenssl1.生成私钥:openssl genrsa -ou...原创 2018-05-17 16:49:24 · 174 阅读 · 0 评论 -
iOS逆向之App签名原理
iOS App签名原理在学习iOS签名之前,需要对密码学有一定的了解,比如RSA加密、HASH哈希函数 参考:https://www.jianshu.com/p/003288dfb3b7一、简单的签名原理:目的:保证每个App都是经过苹果公司官方认证的背景:因为手机和系统都是苹果公司生产的,所以苹果公司可以在手机上内置公钥,然后在App Store上放置私钥苹果手机:...原创 2018-05-17 16:49:55 · 596 阅读 · 0 评论 -
iOS逆向之手动重签名App
iOS逆向之手动重签名App准备工作非越狱的iPhone手机用PP助手下载: 微信6.6.5(越狱应用)步骤解压微信-6.6.5(越狱应用).ipa,直接用系统的解压工具就可以,ipa实际上就是zip包;找到Payload文件夹下的Wechat.app在终端中查看微信6.6.5(越狱应用)的签名信息 $codesign -vv -d WeChat.app ...原创 2018-05-17 16:50:24 · 498 阅读 · 0 评论 -
iOS逆向之利用Xcode重签名
iOS逆向之利用Xcode重签名准备工作非越狱的iPhone手机用PP助手下载: 微信6.6.5(越狱应用)步骤新建工程”Xocde重签名”,选择开发证书,在真机上运行解压微信6.6.5(越狱应用).ipa,在微信-6.6.5(越狱应用)->Payload下,将WeChat.app改名为Xocde重签名.app在Products->Xcode重签名上...原创 2018-05-17 16:51:05 · 686 阅读 · 1 评论 -
iOS逆向之自动化重签名
iOS逆向之自动化重签名准备工作非越狱的iPhone手机用PP助手下载: 微信6.6.5(越狱应用)步骤新建工程”自动化签名”,在工程目录下新建APP文件夹放置需要重签名的ipa包在Build Phases中添加脚本 写入如下脚本:# ${SRCROOT} 为工程文件所在的目录TEMP_PATH="${SRCROOT}/Temp"#资源文...原创 2018-05-17 16:52:03 · 1063 阅读 · 0 评论 -
iOS逆向之HOOK原理
iOS逆向之HOOK原理HOOK概述 HOOK(钩子) 其实就是改变程序执行流程的一种技术的统称! iOS中HOOK技术的几种方式1、Method Swizzle 利用OC的Runtime特性,动态改变SEL(方法编号)和IMP(方法实现)的对应关系,达到OC方法调用流程改变的目的。主要用于OC方法。2、fishhook 它是Face...原创 2018-05-17 16:52:34 · 646 阅读 · 0 评论 -
iOS逆向之代码注入(framework)
题外话:此教程是一篇严肃的学术探讨类文章,仅仅用于学习研究,也请读者不要用于商业或其他非法途径上,笔者一概不负责哟~~准备工作非越狱的iPhone手机用PP助手下载: 微信6.6.5(越狱应用)MachOView MachOView下载地址:http://sourceforge.net/projects/machoview/ MachOView源码地址:http...原创 2018-05-17 16:53:18 · 2007 阅读 · 0 评论 -
iOS性能优化之Leaks动态分析
iOS性能优化之Leaks动态分析 Instruments-Leaks有很多跟踪模块可以动态分析和跟踪内存, CPU 和文件系统(因为是动态分析 所以必须运行才能打开)。具体使用在XCode Open菜单下,点击Leaks 对App进行动态分析(快捷键CMD + i) 或者直接在工程中选择调试导航 在右侧点击Profile in instruments ...原创 2018-05-17 16:54:01 · 839 阅读 · 0 评论