ios逆向笔记之破坏 ‘修改RESTRICT段的防护’ 以及对应

2020-06-13  本文已影响0人  第x个等于4乘x的阶乘

1.利用synalyze it !pro来修改RESTRICT段

将对应的二进制修改一个字段 达到修改RESTRICT段无效 继续hook

2.那么接下来如果我想防止别人更改我的二进制 应该怎么做呢 我要确保我macho里面有__RESTRICT这个段 并且值为__restrict 那么首先我们需要拿到我们的macho文件的信息


3.首先我门回到dyld源码里面看下这个函数 只要我们能拿到我们自己的macho文件信息 那么就能拿到我们自己添加的__RESTRICT段和__restrict


4.在我们的项目里面导入

1)#import

#import <mach-o/dyld.h>

这两个头文件

首先在#import 里面

可以看到有两个这个头的结构体

2)在#import 里面

我们能拿到我们的头信息

5.将dyld函数拷贝到我们的项目里

1)回到我们的dyld看这些爆红的参数是怎么定义的

首先我们看下LC_SEGMENT_COMMAND这个函数的定义

将这些定义拷贝到我们代码里面 同时定义macho_header

2)extern const struct mach_header*  _dyld_get_image_header(uint32_t image_index)        __OSX_AVAILABLE_STARTING(__MAC_10_1,__IPHONE_2_0);

这个函数image_index是个什么呢?

运行项目LLDB调试image list

这个就是我们的macho文件

3)

我们将#import <mach-o/loader.h>的macho_header定义到宏里面

4)那么我们现在可以直接检测了

然后运行 

那么基于修改二进制的防护也就成功了
上一篇 下一篇

猜你喜欢

热点阅读