首页
社区
课程
招聘
[求助]请教一下创建命名管道中的两种数据流类型的区别? 还有DebugActiveProcessStop
发表于: 2007-12-27 14:39 5392

[求助]请教一下创建命名管道中的两种数据流类型的区别? 还有DebugActiveProcessStop

2007-12-27 14:39
5392
请教一下创建命名管道
HANDLE CreateNamedPipe(
  LPCTSTR lpName,
  DWORD dwOpenMode,
  DWORD dwPipeMode,
  DWORD nMaxInstances,
  DWORD nOutBufferSize,
  DWORD nInBufferSize,
  DWORD nDefaultTimeOut,
  LPSECURITY_ATTRIBUTES lpSecurityAttributes);
中的dwPipeMode 有两种模式PIPE_TYPE_BYTE
OR
PIPE_TYPE_MESSAGE
在使用中有什么不一样么,基于字节和基于信息有什么区别?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
2

命名管道有两种基本通信模式:字节模式和消息模式。在字节模式中,数据是以字节流的形式在管道种传输,数据之间没有边界,在管道写入和读出操作中是以字节流即数据块为基本单位操作的,这适合传输大容量数据;在消息模式中,数据是以一条条不连续的消息为基本传输单元,消息和消息之间有边界,在管道写入和读出操作中也是以消息为单位进行操作的,这种方式适合传输量小的数据。因为现在的文件大小常常有几百K甚至更大,所以程序中选择使用字节模式。

这段是网上拉的。个人认为当所传输的数据是作为消息或者时间通知用的,那么就用消息模式。
如果仅仅作为数据,用于被读取端处理,那么就用字节流模式。
这并非固定,看个人喜好
2007-12-27 16:41
0
雪    币: 222
活跃值: (69)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
多谢指教.
再问一个问题,记得你在那篇根据IAT读内存中PE文件调用的API的地址中有用到调试API,提到过
DebugActiveProcessStop这个API,我试了一下,Active之后调用这个API,但怎么样都是反回0,
不成功.DebugActiveProcessStop这个API是否能让调试进程和被调试进程分离,而结束调试进程
时,被调试的进程不结束呢?(关于这个问题在Ring3下能否实现,内核级的调试器又是怎样做到这一
点的,像SI,Syser这些),哈哈,我的问题好像不指一个
2007-12-27 18:24
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
4
在ring3下不能实现调试进程和被调试进程分离后正常运行,至于内核调试器怎么实现就不清楚了
2007-12-28 19:50
0
游客
登录 | 注册 方可回帖
返回
//