ZCMUCZX的博客

学习的脚步

lldb+debugserver调试app

这里我们主要做的就是去调试我们的短信app,利用debugserver和lldb 调试步骤 1、ssh到iPhone 2、debugserver -x backboard *:1234 /Applications/MobileSMS.app/MobileSMS 这个就是去启动MobileSM...

2018-05-18 11:55:51

阅读数:71

评论数:0

ios下的hook的原理

其实Hook就是一种改变程序执行流程的一种技术的统称,下面就简单的介绍下在ios中的几种Hook的方式 1、Method Swizzle 利用OC的Runtime特性,动态去改变SEL(方法编号)和IMP(方法实现)的对应关系,达到OC方法调用流程改变的目的。主要用于OC方法。 2、...

2018-05-17 22:35:24

阅读数:234

评论数:0

MonkeyDev中hook系统NSLog函数

讲道理,利用fishhook进行hook其实就可以了 比如说我们的ViewDidLoad方法当中的方法里面有输出123,456 我们想要对其进行hook - (void)viewDidLoad { [super viewDidLoad]; NSLog(@&qu...

2018-05-17 12:38:48

阅读数:403

评论数:0

分析iPhone的SpringBoard重启实现

首先我们拿到SpringBoard.app的可执行文件,然后进行用IDA进行分析,然后定位了relaunch SpringBoard函数 我们在下面可以看到下面调用的是beginIgnoringInteractionEvents方法就是去开始忽略所有用户交互的事件 接着调用hide...

2018-05-14 15:52:20

阅读数:520

评论数:0

汇编利用cmp指令将小写字母转换为大写字母

这里主要是先和0进行比较,如果cx为0了,那么就直接利用jcxz指令直接跳转到ret助理,然后再利用cmp指令去进行和小写a的ASCII码进行比较,比较之后如果是小于就直接再去寻找下一个字符,程序如下所示 assume cs:codesg,ds:datasg datasg segm...

2018-05-13 09:54:24

阅读数:58

评论数:0

fishhook源码分析

最近也学习了下这个fishhook库,感觉200多行代码就能实现方法的交换确实挺厉害的,下面就进行简单的分析下 首先我们先来查看下fishhook.h文件 #ifndef fishhook_h #define fishhook_h #include &am...

2018-05-12 12:02:46

阅读数:108

评论数:0

利用方法交换重写URLWithString方法

系统自带的URLWithString:方法如果我们参数传入的包含有中文,那么url就为空,如果我们想自己定制一个这样的方法,比如说如果通过这个方法调用出来的url为nil的话,就让程序崩溃,那么我们可以在调用URLWithString:方法的过程中里面加一个断言 所以我们可以这么做,创建...

2018-05-11 13:20:29

阅读数:91

评论数:0

利用8086汇编除法函数和显示函数计算公司数据

讲道理关于这道题,真的哎呀痛苦是一方面,其实真的不怎么想写,不过最后还是去把这个程序自己给调试了一下 题目如下所示 这里其实就是需要注意的就是寄存器的保护,以及之前几篇文章中讲的函数的调用 assume cs:code data segment db '1975',...

2018-05-08 18:11:52

阅读数:49

评论数:0

8086汇编将数值显示在屏幕

题目如下所示 大致其实就是上面已经给出了算法,我们需要做的就是取得每一次的余数,然后保存起来,可以先压入栈中,因为栈是先进后出的,可以满足我们的需要,因为我们第一次获取的是我们要显示的最后的一个字符 程序如下所示 assume cs:code,ss:stack ...

2018-05-08 11:14:48

阅读数:766

评论数:0

8086汇编解决dword除word的数据溢出问题

讲道理,这道题刚开始真的写看公式以为要按照公式来,然后写了超级复杂的代码考虑来考虑去栈啊甚至都要用到状态寄存器了,不过忽然发现,好像到这一块,状态寄存器还没讲,然后就重新来,先看下题目 程序如下所示 assume cs:code,ss:stack stack segmen...

2018-05-07 00:34:12

阅读数:47

评论数:0

8086汇编显示字符串

做了题目也总结一下,如下所示 程序如下所示 assume cs:code,ss:stack,ds:data data segment db 'Welcome to masm!',0 data ends stack segment db 48 dup...

2018-05-06 22:33:20

阅读数:106

评论数:0

8086汇编下的ret指令和retf指令

关于ret指令和retf指令 在这里主要是想做个记录 ret指令是用栈中的数据,修改IP的内容,从而实现了近转移(就是只修改IP) retf指令是用栈中的数据,修改CS和IP的内容,从而实现了远转移(就是修改了CS和IP) 当CPU执行指令ret的时候,会进行下面的操作 1、...

2018-05-06 17:10:18

阅读数:119

评论数:0

Xcode下的全局变量在可执行文件中的位置

Xcode下的全局变量在可执行文件中的位置 首先我们先声明两个变量,然后编译生成可执行文件 int a = 10; NSString * name = @"zx"; 然后我们通过MachOView来查看其的可执行文件 再去MachOView中去查看数...

2018-05-06 15:04:54

阅读数:118

评论数:0

8086汇编转移指令

转移指令 我们把可以修改IP,或者同时修改CS和IP的指令统称为转移指令 如果只修改IP的称为段内转移,比如说jmp ax 同时修改CS和IP的称为段间指令,比如说jmp 1000:0 由于转移指令对IP的修改范围的不同,软内转移又可以分为短转移和近转移 短指令IP的...

2018-05-05 14:07:59

阅读数:46

评论数:0

利用汇编在80x25彩色字符模式下打印3行不同字符属性的Welcome to masm!字符串

简单介绍 这道题目说真的做的有点久的,不过也很好的可以总结了前面的知识,还是不错的 先看下资料把,资料如下所示 注意:闪烁的效果必须要在全屏的DOS方式下才能看到 编写代码如下 assume cs:codesg,ds:data,ss:stack data...

2018-05-05 12:07:07

阅读数:41

评论数:0

分析8086汇编指令jmp的跳转程序

程序如下所示 assume cs:codesg codesg segment mov ax,4c00h int 21h start:mov ax,0 s:nop nop mov di,offset s mov si, offse...

2018-05-05 09:41:12

阅读数:81

评论数:0

8086汇编下的div指令

首先我们需要去了解的是div是除法指令,除数有8位和16位两种,被除数默认是放在AX或者DX和AX当中,如果除数为8位,被除数则为16位默认是放在AX当中的,如果除数为16位,被除数就为32位是在DX和AX当中存放,DX存放的是高16位,AX存放的是低16位。 如果除数是8位的话,那么...

2018-05-03 13:14:12

阅读数:107

评论数:0

通过汇编寻址方式修改数据

比如说有这么一条记录 这些数据在内存中存放的位置如下所示 如果这个时候这个公司的情况发生了改变,情况如下所示 这个时候我们需要去对这些数据利用汇编指令进行修改,我们可以这么做 mov ax,seg mov ds,ax mov bx,60h ;...

2018-05-03 12:41:01

阅读数:71

评论数:0

X86_64架构下的函数的if判断

函数如下所示 void func(int a) { if(a==1) { printf("1"); } else if(a==2) { printf("2&q...

2018-05-02 19:41:00

阅读数:45

评论数:0

用or和and指令转换大写字母和小写字母

用or和and指令转换大写字母和小写字母 我们如果去观察A、B、C、D、E、F和a、b、c、d、e、f 这些字母的二进制表示形式为 A:01000001 a:01100001 B:01000010 b:01100010 C:01000011 c:...

2018-04-29 19:06:23

阅读数:326

评论数:0

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