用拦截消息钩子()将dll注入目标进程,当然先要找到目标进程窗口,然后注入。然后就是对目标api函数入口地址进行改写,也就是对send(),recv,wsasend(),wsarecv(),等等函数的入口地址进行改写。方法有两种
  1,最简单的,就是按照csdn开发高手上的madcodehook控件,用hookapi进行拦截再在自己改写的代码中对buf进行处理。
  2,自己进行改写,比较麻烦,但过程也比较固定。在csdn文档里,有几篇这样的文章。我们可以用他们的思路,也就是在hookpro过程中载入'ws2_32.dll',并找到send,recv,wsasend,wsarecv,的地址,然后通过跳转指令和对内存的读写,达到修改的目的,并在自己的代码中对完成对buf的处理。  关于对buf的处理,我认为对其进行内存影射。在mysend或myrecv函数中用copymen将buf考出,在包含mysend单元的初始化中对buf的复制buf进行隐射,并定义redbuf函数将对buf的读结果作为result返回。在影射之前用CreateMutex进行读写控制,并对主窗体发送消息,在主窗体的响应函数中调用redbuf达到输出buf内容的目的。以上是我对一些技术实现的看法,请高手指点一下。
我还有几个问题1, 一般apihook用send,还是wsasend,还是用wsasend就能解决问题,还是要看目标进程用的是什么?
2,关于对buf包进行读取的结构定义,一般的是怎样定义的??3, 对buf显示用什么控件比较好