机器人技术光盘1语音识别hookapi使用手册_第1页
机器人技术光盘1语音识别hookapi使用手册_第2页
机器人技术光盘1语音识别hookapi使用手册_第3页
机器人技术光盘1语音识别hookapi使用手册_第4页
机器人技术光盘1语音识别hookapi使用手册_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

功能简HookAPIWindows32APIWindowsAPIHookAPIDLL1.5系统特点APIDelphiVBInstDLLHookAPI运行和开发平台为Windows包含的文件列表【 :调用InstHook.dll来安装HookAPI的执行程【 :安装HookAPI的DLL程【 :NT/2000/XP/XP下截获32位API函数的DLL程【HOOKAPI9x.dllWin9x32APIDLL【 :HookAPI.exe的源【 :截获Socket函数的mydll例【 :截获表函数的mydll例【 :截获文件存取的mydll例【 :win9x下的截获文件存取的mydll_9x例【 :截获文件存取的Delphi下的mydll的例【 :截取Socket函数的Delphi下的mydll的例InstHook.dll中的安装/卸载函数就可以实现自己的截获过程。开发指用户需要做的就是编写一个替换老API函数的mydll.dll,并在自己的程序中调用InstHook.dll中的安装/卸载函数就行了。Mydll文件的编写DLLmydll_9x.dll,其他操作系统(NT/2K/XP)mydll.dllmydll.cppDLLmydll.def4)mydll.dll/mydll_9x.dllmydll.cpp文件的编从三个例子程序可以看出,mydll.cpp文件其实非常简单,它包含如下内容1)mydll.hMYAPIINFO结构说明:typedefstruct{char*module_name;char*function_name;char*myfunc_name;module_nameDLLfunction_nameAPIDLLC中的说明格connect函数为:connect(SOCKET,structsockaddr*,INT)myfunc_name为自己编写的替代函数的名称,如自己编写了myconnect函数,则为win9x下的dll文件(mydll_9x.dll)#ifdef#pragma#pragmacomment(linker,"/SECTION:.bss,RWS/SECTION:.data,RWSwin9xdll文件(mydll_9x.dll){{"WSOCK32.DLL","socket(INT,INT,INT)",{"WSOCK32.DLL","connect(SOCKET,structsockaddr*,INT)",{"WSOCK32.DLL","recv(INT,char*,INT,INT)",{"WSOCK32.DLL","send(INT,char*,INT,INT)", MYAPIINFO*GetMyAPIInfo(){return}DWORD ame(type1param1,type2,param2,其中函数必须为WINAPI调用方式(Delphi下为stdcall),函数的参数必须和原api函数intWINAPImyconnect(SOCKETs,structsockaddr*name,int{structsockaddr_in*paddr=(structsockaddr_inchar*ip=inet_ntoa(paddr->sin_addr);intport=ntohs(paddr->sin_port);intret=connect(s,name,namelen);interr=WSAGetLastError();Wriog("connect:ip=%s,port=%d,ret=%d\n",ip,port,//checkfilterreturnret;}函数connect,那么在myconnect返回时,也要使用WSASetLastError或SetLastError来正确另外,在win9x下,最好在mydll中调用一下任意一个原先的api函数,以便mydll能调用dllHook不成功。mydll.def文件的编mydll.defGetMyAPIInfo InstallHook.dll文件的使InstHook.dll中的内容很简单,只有四个函数(InstHook.h):1)intWINAPIInitHookAPI();2)intWINAPImydllAPI3)intWINAPIUnhookAllProcesses();mydll4)intWINAPINTHookProcess(DWORDNTmydllAPI,进程必须已经存在5)intWINAPINTUnhookProcess(DWORDprocess_id);NTmydllAPIintWINAPINTHookProcess2(charNTHookmod_nameintWINAPINTUnhookProcess2(char此函数在NT下Unhook此函数在NT下截获和替换某个文件或模块名为mod_name的进程,例子说Socket函数的例本例子中演示了截获Windows32位SocketAPIDLL文件为WSOCK32.dll,socket,connect,recv,send。mysocketsocket()socket值,从而在所有的socket函数调用中实现虚网络调用,应用程序。myconnect函数:写日志。用户可以在此如下修改myconnect函数:不调用connect()而直接返回成功,应用程序;connect另外一个主机地址;connect另外一个端口。myrecvmyrecvrecv()函数而直接填充自己的buf,应用程序;调用recv,记录分析接收的数据包;调用recv,数据recvsend和另一端再次通讯;等等。mysend函数:写日志。用户可以在此如下修改mysend函数:不调用send()函数而直接返回成功,应用程序;记录分析要发送的数据包;加密数据包(使用另一个buffer),然send将加密包发送出去;等等。SocketAPI并不能获取所有系统对网络存取的内容,如驱动程序对网络的截获表函数的例于去除日期限制等应用。但截获标准表API并不能获取所有系统对文件存取的内容,如驱动程序对表的存取,如果要截获所有表存取情况,可以看regmon的源码,在编程上有。截获文件存取的例情况,可以看filemon的源码,在编程上有。根据上述例子,用户可以编写自己感的mydll,截获系统API或某些应用程序附带的dll中的函数的使用情况,来实现自己的特殊功能,如通过截获CreateProcessW来限编译和运myd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论