Clement_Gu的博客

致力于纯代码的开发

ios oc swift混编导致打包过大问题 avoid SwiftSupport folder

####SwiftSupport 导致包过大   在OC swift混编后打包由于SwiftSupport支持文件会导致混编后的打的包文件会偏大。 ####解决方法 Build Setting -> User-Defined -> EMBEDDED_C...

2018-10-31 20:23:55

阅读数 792

评论数 1

ios Xcode 10 Multiple commands produce 问题

####Xcode运行已经存在的非10版本的项目  一般会出现以下错误 ####解决方法 File -> Workspace Settings… 在Build System: 选择Legacy Build System 运行即可

2018-10-17 17:23:51

阅读数 863

评论数 0

ios开发 mac的内存清理 mac系统文件并不是全是操作系统文件

###系统内存的激增 最近系统升级和Xcode升级的时候发现内存越来越不够用的,为此还特地买了个移动硬盘来存储使用不太频繁的文件。然而到最后升级系统甚至Xcode的时候完全没有空间了,而显示系统占用内存为200多G。所以完全不够用。 ####打包惹的祸 打开终端执行下面指令: cd ~/Libr...

2018-10-17 17:21:53

阅读数 208

评论数 0

dyld: Symbol not found: ___NSArray0__ Referenced from: /System/Library/Frameworks/CoreFoundation

dyld: Symbol not found: _NSArray0 Referenced from: /System/Library/Frameworks/CoreFoundation.framework  报类似错误的一般是低版本手机会遇到,解决方案如下: - 先确定在Build P...

2018-09-08 19:15:16

阅读数 181

评论数 0

JSON text did not start with array or object and option to allow fragments not set

###用AFN解析网页数据报错 原因是afn默认是解析json数据,修改方法如下: AFHTTPSessionManager *manager =[AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResp...

2018-08-30 18:04:14

阅读数 1125

评论数 0

ios 生成随机背景色

利用arc4random()生成随机背景色 int r = arc4random() % 255; int g = arc4random() % 255; int b = arc4random() % 255; CGFloat rr = r / 255.0; ...

2018-06-27 10:37:11

阅读数 379

评论数 0

ios KVO设置TableView和Collectionview的高度与内容一致

需求 tableView或collectionview为界面一个控件,并且在无数据的时候不显示,在有数据的时候按照数据多少显示高度和内容相等。 思路 利用KVO原理。因为tableView和Collectionview都继承于UIScrollview,所以根据其contentSize来实...

2018-06-21 10:32:50

阅读数 680

评论数 0

ios逆向- 02Mach-O文件简介.o.a动态库

Mach-O文件 官方介绍总共有11种格式! 是 Mach Object的缩写,是Mac\iOS 上用于存储程序,库的标准格式! 常见的格式: 1.可执行文件 2.objcet .o 文件(目标文件) .a 静态库文件.其实就是N个.o文件的集合 3.DYLIB: 动态库文件 dyl...

2018-06-12 12:09:41

阅读数 788

评论数 0

ios逆向- 01逆向原理&Class-dump安装及获取头文件

逆向原理 动态调试 通过界面调试Cycript\Xcode LLDB! 静态分析 利用之前学习的汇编代码,分析三方APP的源码! 代码注入 注入的其实是动态库!HOOK代码 改变原来程序的执行流程! 重签名  安装在非越狱手机上面 Class-dump 下载地址http://st...

2018-06-11 18:26:39

阅读数 182

评论数 0

arm64汇编篇-16指针的基本用法及多级指针反汇编

空指针  在win32中指针是随机值,但是在arm中指针是NULL。寄存器中值为0x0000000000000000。 下面看一组代码 void func (){ char *b; char *a = *b; } 效果如下图: 解析 b是一个指针,然后a...

2018-06-11 16:10:43

阅读数 252

评论数 0

arm64汇编篇-015指针的反汇编

指针的反汇编 1.输入如下代码: void func (){ int * a; int b = 10; a = &b; } 2.真机运行断点调试如图: 3.解析: 1.将栈空间四个字节内存给x8寄存器 2.将10赋值给w9寄存器 ...

2018-06-11 11:53:10

阅读数 144

评论数 0

arm64汇编篇 - 014 指针的运算

指针的宽度 1.写入下面代码真机运行: void func(){ int * a; printf("%lu",sizeof(a)); } 2.得出结果为8即指针在64位中的宽度为8个字节。 指针的运算 编译器决定指针不可以做乘法运算可以做加法...

2018-06-11 11:52:10

阅读数 122

评论数 0

arm64汇编篇-13编译器优化及寄存器与多线程问题

编译器模式  Debug Release不同模式下编译器的配置不同的,buildSettings -> 搜索optimization 如下图: 以下几个模式是将编译器优化的几个方向。 编译器优化效果 1.将Debug选项的none 选择为跟Release 模式...

2018-06-11 11:49:23

阅读数 236

评论数 0

arm64汇编篇-12Switch底层运行原理

switch特性介绍 1、假设switch语句的分支比较少的时候(例如3,少于4的时候没有意义)没有必要使用此结构,相当于if。 2、各个分支常量的差值较大的时候,编译器会在效率还是内存进行取舍,这个时候编译器还是会编译成类似于if,else的结构。 3、在分支比较多的时候:在编译的时候会生...

2018-06-07 12:06:41

阅读数 104

评论数 0

arm64汇编篇-11循环while、for

while循环 创建工程->main函数页面写入以下代码: void func(){ int nSum = 0; int i = 0; while (i <= 100){ nSum = nSum + 1;...

2018-06-07 12:03:45

阅读数 602

评论数 0

arm64汇编篇-10IF代码的识别

本篇主要介绍通过汇编代码逆向还原带if条件的高级代码。1.创建工程文件在main函数页面写一个带if判断语句的方法如下:int less = 10;   //全局变量void func(int a, int b){    if (a < b) {             le...

2018-06-07 12:01:24

阅读数 241

评论数 0

arm64汇编篇-常用指令篇

本篇主要记载汇编语言中常用的指令及其代表的含义,实时不断跟新。    CMP  w0 , w1  CMP (compare)的意思是比较的意思 相当于将w0减去w1但是不会改变两个寄存器的值即两个寄存器不会变化,但是其结果会影响cpsr状态寄存器的标记值(nzcv)。(把一个寄存器的内容和另一个寄...

2018-06-07 12:00:27

阅读数 1622

评论数 0

arm64汇编篇-09ida解析包的汇编代码操作

获取汇编文件1.解压ipa找到对应的应用程序 -> 右击显示包内容 ->  找到跟项目名一致的可执行文件。2.打开ida64 -> new -> cancel -> 将汇编文件拖进去 -&...

2018-06-07 11:59:44

阅读数 189

评论数 0

arm64汇编篇-08内存分区及adrp指令

内存分区代码区 特点: 可读可写可执行栈区域 放参数和局部变量堆区域 动态申请 可读可写全局: 可读可写常量区: 只读!adrp指令1)创建项目在mian 文件中写个方法然后执行此方法在汇编模式调试断点。详细操作将debug -> Debug Overflow -&a...

2018-06-07 11:58:56

阅读数 848

评论数 0

arm64汇编篇-07cpsr状态寄存器

状态寄存器    CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能不同).这种寄存器在ARM中,被称为状态寄存器就是CPSR(current program status register)寄存器    CPSR和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄...

2018-06-07 11:58:02

阅读数 436

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭