首页
社区
课程
招聘
[原创]简单的双核下inline hook.r3
发表于: 2008-9-17 11:23 7787

[原创]简单的双核下inline hook.r3

2008-9-17 11:23
7787

有些程序(比如QQMusic)很郁闷 老是抢我的80端口(有时候需要架个简单的web服务器,发现80端口老被某些程序占用了,于是得先退出那个抢我端口的程序 然后再....很麻烦), 于是写了小Dll 在Dllentry hook bind. 判断sockaddr_in里面的 port是不是80 是80就返回-1

Hook,
先写五个nop jmp bind1
后剩下一个jmp short 只要2byte,可以用cmpxchg原子操作了~
用原子操作cmpxchg ...

nop*5
bind:
mov edi,edi
..........

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
谢谢分享。
请问这个根双核下有什么关系?
2008-9-17 12:47
0
雪    币: 249
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
在这里~~~~
先写五个nop jmp bind1
然后剩下一个jmp short 只要2byte,可以用cmpxchg原子操作了~
用原子操作cmpxchg
2008-9-17 12:51
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
用得着吗?
有现成的函数 writeProcessMemory 一次性搞定
2008-10-6 17:06
0
雪    币: 126
活跃值: (184)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
writeProcessMemory方式Hook在多核电脑上不安全,如果当时指令被装入到处理器的指令缓存中,Hook之后会有些处理器的指令缓存没有更新,造成Hook不完全成功.
所以writeProcessMemory之后要FlushInstructionCache同步处理器的指令缓存
2008-10-8 12:08
0
游客
登录 | 注册 方可回帖
返回
//