首页
社区
课程
招聘
[求助]关于海风月影的 ApiHook库 内存异常错误
发表于: 2016-10-16 19:08 5382

[求助]关于海风月影的 ApiHook库 内存异常错误

2016-10-16 19:08
5382
最近用了 海风月影的Hook库  发现有些程序不知道为什么 当执行到  HookStub 这个区段的代码后就造成了内存访问执行异常,但是在其他的程序中可以完全使用没异常,再次不知道原因来看雪看看。


#pragma comment(linker, "/SECTION:HookStub,RW")  // 读写权限  改成 RWE权限一样是不可以执行

#define ALLOCATE_HookStub ALLOCATE(HookStub)

#pragma code_seg("HookStub")
#pragma optimize("",off)
ALLOCATE_HookStub HOOKENVIRONMENT pEnv={0};
NAKED DWORD GetDelta()
{
	__asm
	{
		call next
next:
		pop eax
		sub eax,offset next
		ret
	}
}
NAKED void NewStub()
{
	__asm
	{	
		jmp next
back:
		_emit 0xE9
		NOP
		NOP
		NOP
		NOP
next:
		push [esp]
		push [esp]
		push eax		//保存一下Stub中唯一使用到的EAX
		call GetDelta
		lea eax,[eax+pEnv]
		mov dword ptr [esp+0xC],eax
		pop eax			//恢复EAX
		jmp back
	}
}
NAKED DWORD GetEndAddr()
{
	__asm
	{
		call next              //执行Call 异常
next:
		pop eax
		sub eax,5
		ret
	}
}
#pragma optimize("",off)
#pragma code_seg()




12D27030   /EB 05           JMP SHORT 12D27037
12D27032  -|E9 90909090     JMP A36300C7
12D27037   \FF3424          PUSH DWORD PTR SS:[ESP]
12D2703A    FF3424          PUSH DWORD PTR SS:[ESP]
12D2703D    50              PUSH EAX
12D2703E    E8 DDFFFFFF     CALL 12D27020
12D27043    8D80 0070D212   LEA EAX,DWORD PTR DS:[EAX+12D27000]
12D27049    894424 0C       MOV DWORD PTR SS:[ESP+C],EAX
12D2704D    58              POP EAX
12D2704E  ^ EB E2           JMP SHORT 12D27032
12D27050    E8 00000000     CALL 12D27055     ; <<---- 执行异常
12D27055    58              POP EAX
12D27056    83E8 05         SUB EAX,5
12D27059    C3              RETN



Log data, 条目 0
地址=773A15DE
消息=访问违规: 读取 [12D27050]    // 这里是OD调试日志的异常 看了内存明显是可以访问的 就是没有运行的权限 但是别个的程序就可以 不解

不知道看雪还有没有往年前辈热情的解答

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 4928
活跃值: (967)
能力值: ( LV9,RANK:175 )
在线值:
发帖
回帖
粉丝
2
你跟一下 执行到那里的指令出错了,hook过程有没有错误,hook后是不是跟预想的一样
2016-10-16 21:14
0
雪    币: 204
活跃值: (69)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
内存属性不可执行,执行就异常
2016-10-16 21:42
0
雪    币: 4928
活跃值: (967)
能力值: ( LV9,RANK:175 )
在线值:
发帖
回帖
粉丝
4
VirtualProtect 设置呢
2016-10-17 16:29
0
雪    币: 204
活跃值: (69)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
http://bbs.pediy.com/showthread.php?t=63212&page=5
看了这个改好了
2016-10-18 00:21
0
雪    币: 22
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
用C的人,好多哇。。。
2016-10-18 04:27
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
7
你的版本可能太老了,下个最新版吧

//////////////////////////////////////////////////////////////////////////
HookApi 0.6

thanks to xIkUg ,sucsor

by 海风月影[RCT]
2011.06.08

//////////////////////////////////////////////////////////////////////////
//更新内容
2011.06.08        0.6
1,增加cdecl的hook
2,使用malloc申请内存,节约空间
3,新接口InstallHookStub,支持直接传函数地址去hook
4,hook还没完成的时候,不会发生调用hookproc的情况(主要是VirtualProtect函数)
上传的附件:
2016-10-19 10:29
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
本尊亲自出马,果段收藏
我以前用的时候也出过这样的问题vs2008,后来跟进去发现代码被优化掉了,所以造成异常,改成不优化就好了,
2016-10-19 20:17
0
雪    币: 204
活跃值: (69)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
[QUOTE=海风月影;1448965]你的版本可能太老了,下个最新版吧

//////////////////////////////////////////////////////////////////////////
HookApi 0.6

thanks to xIkUg ,sucsor

by 海风月影[RCT]
2011....[/QUOTE]

OK 了 谢谢海月老大
2016-12-3 22:27
0
游客
登录 | 注册 方可回帖
返回
//