首页
社区
课程
招聘
[原创] 重载可执行文件实现高效inline-hook 【源码】
发表于: 2017-6-3 15:21 9622

[原创] 重载可执行文件实现高效inline-hook 【源码】

2017-6-3 15:21
9622

前言


传统的inline-hook


新的hook方案


实现细节


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 3
支持
分享
打赏 + 10.00雪花
打赏次数 1 雪花 + 10.00
 
最新回复 (21)
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你这有点复杂啊
2017-6-3 15:42
0
雪    币: 133
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
  学习了
2017-6-3 16:03
0
雪    币: 3738
活跃值: (3872)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
先m后看!
2017-6-3 16:32
0
雪    币: 766
活跃值: (2369)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
学习一下
2017-6-3 17:04
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
6
这不就是传说中的Page  hook+重定向到新模块么
2017-6-3 18:52
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
7
火勺 你这有点复杂啊
这个算简单了
2017-6-3 19:20
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
8
hzqst 这不就是传说中的Page hook+重定向到新模块么
正是
2017-6-3 19:20
0
雪    币: 2325
活跃值: (4908)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
只有代码片段  就  申精了?
2017-6-3 21:44
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
10
值得怀疑 只有代码片段 就 申精了?
本来想移植到linux再发源码的,现在只有osx的版本。既然你这么说了,那就发吧。其实上面就是核心的代码了,懂行的人,一看就明白,其他的代码不过是工具函数罢了。
2017-6-3 23:37
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
srh
11
666大神膜拜呀!
2017-8-31 10:22
0
雪    币: 1597
活跃值: (719)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
 

make编译运行后在下面这个函数这里

    void *shm1 = mmap(data_ptr, data_size, PROT_READ | PROT_WRITE, MAP_SHARED|MAP_FILE|MAP_FIXED, fd, 0);

报错Error: mmap for new_image_ptr: Cannot allocate memory
请问下大佬这个是什么原因导致的?

2017-11-9 20:09
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
mark
2017-12-1 11:13
0
雪    币: 1380
活跃值: (116)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
14
mark
2017-12-16 12:18
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
15
chdgyue make编译运行后在下面这个函数这里 ``` void *shm1 = mmap(data_ptr, data_size, PROT_READ | PROT_WRITE, MAP_SHAR ...
可能是基址或size没对齐,不像oom。
2017-12-16 12:46
0
雪    币: 40
活跃值: (701)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
mark
2017-12-19 15:22
0
雪    币: 140
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
已放弃osx,装回windows了
2017-12-20 15:55
0
雪    币: 120
活跃值: (1673)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
aka:  复制一份  rx  segment,  映射  rw  segment  至同一物理内存  ?  但是这种对畸形  macho  还要需要处理所有的  rw  属性的  segment  感觉有点复杂哇.  而且内存消耗也是问题.  随便搞下就几个  0x4000
2017-12-20 17:02
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
mark
2017-12-20 17:51
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
20
jmpews aka: 复制一份 rx segment, 映射 rw segment 至同一物理内存 ? 但是这种对畸形 macho 还要需要处理所有的 rw 属性的 segment 感觉有点复杂哇. 而且内存消耗 ...
不用处理macho,也不用单独处理segment,整片拷就行了。想省内存的话,rw  segment一般不大,hook一个点4k内存。这点内存还是可以接受的。有时候效果比那点内存更重要
2017-12-20 19:46
0
雪    币: 19
活跃值: (128)
能力值: ( LV9,RANK:146 )
在线值:
发帖
回帖
粉丝
21
救命啊,朕不是皇上
2018-2-10 20:40
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
你好,请问有Linux版的demo吗?
对machO不是特别熟,看了下代码,想确定下,是要把目标函数所在的文件的整个内存段都映射出来?还是只映射目标函数的内存段就可以了?
2021-8-20 19:04
0
游客
登录 | 注册 方可回帖
返回
//