首页
社区
课程
招聘
[求助]为什么这个API HOOK不能成功呢????大家进来看一下源代码
发表于: 2008-7-24 16:48 4230

[求助]为什么这个API HOOK不能成功呢????大家进来看一下源代码

2008-7-24 16:48
4230
代码:
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
.data
szdll db 'user32.dll',0
szMsgBox db 'MessageBoxA',0
addressAPI dd ?
ddjmp db 5 dup (?)
sztext db 'successful',0
sztitle db 'congratulation',0
.code
a10:  invoke Beep,1000,1000    ;如果HOOK 成功就用声音提示一下
      mov edx,addressAPI      
      mov bl,[esi]             ;还原读出来的5个字节
      mov [edx],bl
      mov ebx,[esi+1]
      mov [edx+1],ebx
      jmp edx                  ;跳去执行MessageBoxA函数
start:
      invoke LoadLibrary,offset szdll
      invoke GetProcAddress,eax,offset szMsgBox
      mov addressAPI,eax
      push eax
      invoke VirtualProtect,eax,5,PAGE_EXECUTE_READWRITE,PAGE_EXECUTE_READ    ;改掉内存保护属性,就是调用这个函数失败了
      invoke GetLastError
      pop eax
      lea esi,offset ddjmp          ;读出函数头的前5个字节
      mov bl,[eax]
      mov [esi],bl
      mov ebx,[eax+1]
      mov [esi+1],ebx
;-----------------------------------
      mov edi,offset a10            ;插入一条JMP指令
      mov BYTE ptr [eax],0e9h       ;这条指令产生异常,就是内存的保护属性没改成功的原因
      sub edi,addressAPI
      mov [eax+1],edi
      invoke MessageBoxA,0,offset sztext,offset sztitle,0
      invoke ExitProcess,0
      end start
请大家帮忙看一下


[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己顶一下
2008-7-25 01:50
0
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
invoke VirtualProtect,eax,5,PAGE_EXECUTE_READWRITE,PAGE_EXECUTE_READ   
最后一个参数是一个指针用来保存旧的保护属性,你传PAGE_EXECUTE_READ   肯定失败
2008-7-26 09:32
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
麻烦楼上的在帮我一下
2008-7-27 16:17
0
雪    币: 249
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
invoke VirtualProtect,eax,5,PAGE_EXECUTE_READWRITE,esp,ecx
pop ecx
2008-7-27 18:16
0
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
oldProtect dd   0
.....................
invoke VirtualProtect,eax,5,PAGE_EXECUTE_READWRITE,addr oldProtect
2008-7-28 08:06
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢大家对我的帮助,还是热心人多啊
2008-7-28 11:02
0
游客
登录 | 注册 方可回帖
返回
//