CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

实用代码:【源码下载】类:CVBAPIHooker —— 可以让你事件化处理API拦截的类

楼主supergreenbean(超级绿豆(MSMVP - VB) - 升级归来~)2005-04-01 00:43:37 在 VB / API 提问

【源码下载地址】:http://60.191.21.235:1122/vbapihooker.rar    
   
  使用这个类可以很方便的拦截并处理目标进程中的导入api函数…… 问题点数:0、回复次数:19Top

1 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2005-04-01 00:48:43 得分 0

1Top

2 楼supergreenbean(超级绿豆(MSMVP - VB) - 升级归来~)回复于 2005-04-01 00:56:12 得分 0

下面是拦截api后跳转到的汇编代码,其中0x11223344代表的是在目标进程中所分配内存段的起始地址……  
   
  这是每个api都不同的小代码段,主要功能是写入api钩子的序号  
  tinystub:  
  mov   eax,0x11223344  
  mov   dword   ptr   [eax+0x18],1   //APIHOOKID  
  jmp   dword   ptr   stub   //跳转到  
   
   
  这个是每个api最终都要到达的地方,主要功能么当然就是api拦截的主要工作咯  
  stub:  
  mov   eax,0x11223344  
  pop   ebx  
  mov   [eax+0x44],ebx  
  pop   eax  
  push   ebp  
  mov   ebp,0x11223344  
  mov   [ebp+0x44],eax  
  cmp   dword   ptr   [ebp+0xC],0  
  jnz   beforecall   //已经有sendmessage的地址则跳转  
  lea   eax,[ebp+0x30]  
  push   eax  
  call   dword   ptr   [ebp+0x0]   //call   getmodulehandle  
  cmp   eax,0    
  jnz   getsendmsg   //已经有User32在内存中则跳转  
  lea   edi,[ebp+0x30]  
  push   edi  
  call   dword   ptr   [ebp+0x4]   //call   loadlibrary  
  getsendmsg:  
  lea   edi,[ebp+0x37]  
  push   edi  
  push   eax  
  call   dword   ptr   [ebp+0x8]   //call   getprocaddress  
  mov   [ebp+0xC],eax  
  beforeaction:  
  mov   [ebp+0x14],esp  
  //-----------------------------------  
  /*   current   process   */  
  push   0x11  
  push   0x123456//lpthis  
  call   dword   ptr   [id]//call   callproc  
  //-----------------------------------  
  //-----------------------------------  
  /*   other   process   */  
  push   0  
  push   0x11  
  push   [ebp+0x28]//msg  
  push   [ebp+0x24]//hwnd  
  call   dword   ptr   [ebp+0xC]   //sendmessage  
  mov   [ebp+0x1C],1  
  loop1:  
  cmp   [ebp+0x1C],1  
  jz   loop1  
  //-----------------------------------  
  xor   eax,eax  
  cmp   [ebp+0x20],1   //check   block   flag  
  jz   blockcall  
  pop   ebp  
  mov   edi,0x11223344  
  call   dword   ptr   [edi+0x10]//addr  
  push   ebp  
  mov   ebp,0x11223344  
  jmp   afteraction  
  blockcall:  
  mov   edi,[ebp+0x50]  
  mov   eax,[esp]  
  lea   esp,[esp+edi*4+4]  
  push   eax  
  xor   eax,eax  
  afteraction:  
  lea   edi,[ebp+0x2C]  
  mov   [edi],eax  
  //-----------------------------------  
  /*   current   process   */  
  push   0x22  
  push   0x123456//lpthis  
  call   dword   ptr   [id]//call   callproc  
  //-----------------------------------  
  //-----------------------------------  
  /*   other   process   */  
  push   0  
  push   0x22  
  push   [ebp+0x28]//msg  
  push   [ebp+0x24]//hwnd  
  call   dword   ptr   [ebp+0xC]   //sendmessage  
  mov   [ebp+0x1C],1  
  loop2:  
  cmp   [ebp+0x1C],1  
  jz   loop2  
  //-----------------------------------  
  mov   eax,[ebp+0x2C]  
  pop   ebp  
  mov   edi,0x11223344  
  push   [edi+44]  
  ret  
   
   
  注:我汇编学的不好,所以写的代码在懂汇编的人看起来可能会有很多多余的地方……不过,我是懒猪,只求功能正常就好,嘿嘿~~        
  Top

3 楼supergreenbean(超级绿豆(MSMVP - VB) - 升级归来~)回复于 2005-04-01 00:57:41 得分 0

哎呀,写错了……  
   
  jnz   beforecall   //已经有sendmessage的地址则跳转  
  应该是  
  jnz   beforeaction   //已经有sendmessage的地址则跳转  
   
  阿门~~Top

4 楼boywhp()回复于 2005-04-01 07:38:19 得分 0

我靠!N人出来拉!!!Top

5 楼rainstormmaster(暴风雨 v2.0)回复于 2005-04-01 07:54:42 得分 0

5Top

6 楼boywhp()回复于 2005-04-01 08:03:50 得分 0

大虾!收我为徒吧!我很有潜力的!  
  rainstormmaster(暴风雨   v2.0)    
  supergreenbean(超级绿豆   -   要准备发芽了)    
  QQ:343435488  
  EMail:Boywhp@126.comTop

7 楼pxb0420(三疯幽幽)回复于 2005-04-01 08:27:53 得分 0

还没看程序,一看汇编就是不一般了,以后你回答的问题要好好看看了.Top

8 楼tanaya(唐博士http://blog.csdn.net/tanaya)回复于 2005-04-01 09:14:15 得分 0

 
    顶,超级upTop

9 楼jlum99(闲人)回复于 2005-04-01 09:22:59 得分 0

markTop

10 楼roger_xiong(卖女孩的小火柴~)回复于 2005-04-01 09:46:33 得分 0

我顶~~~Top

11 楼KaKaMo(无级)回复于 2005-04-01 11:48:31 得分 0

楼主太棒了!偶喜欢,顶!Top

12 楼tztz520(午夜逛街)回复于 2005-04-01 11:52:20 得分 0

豆子犀利Top

13 楼qyii(劳心劳力)回复于 2005-04-02 13:33:26 得分 0

哦?是吗?啊,那好!嗯...行,行,行!好的,谢谢了!呵呵~Top

14 楼dongge2000(目前叫西西了)回复于 2005-04-02 14:08:29 得分 0

哇!老大酷哦!Top

15 楼eglic(圪圪) (理由永远是谎言,信仰永远是自慰)回复于 2005-04-02 14:15:22 得分 0

强,学习Top

16 楼boyzhang(张郎)(爱你爱到Windows没BUG的那天)回复于 2005-04-02 15:23:35 得分 0

豆子又出山了!  
   
  好呀!     :)Top

17 楼supergreenbean(超级绿豆(MSMVP - VB) - 升级归来~)回复于 2005-04-07 16:01:16 得分 0

往包里加入了一个更加详细的使用例子……还有野猪,hoho~~~~~Top

18 楼galanz(微小就是永恒)回复于 2005-04-07 16:05:00 得分 0

1Top

19 楼bob008(冻冬)回复于 2005-04-08 03:37:30 得分 0

我喜欢吃豆子哦,加偶,偶来拜师,要不成立个VB豆子帮让你当老大,偶当小流氓也行  
  QQ:13841047Top

相关问题

  • 如何拦截Api函数
  • 关于游戏汉化(拦截API)
  • 如何拦截API函数TextOut?
  • Win2K下的Api函数的拦截
  • 一个拦截WINSOCK API的问题!
  • 关于系统api函数的拦截
  • API函数CreateProcess的拦截---急!急!
  • 哪有下载J2ME API源码?
  • 求跨进程hook api的源码。
  • 高分求拦截网络数据包的方法与源码.请详细说明.up,gz有分.

关键词

  • 代码
  • api
  • 拦截
  • ebp+0
  • 跳转
  • jnz
  • 地址
  • dword ptr
  • sendmessage
  • lea

得分解答快速导航

  • 帖主:supergreenbean

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo