-
-
[旧帖]
[求助]驱动中内联汇编后的地址动态重定位问题?
0.00雪花
-
发表于:
2012-5-19 16:17
1083
-
[旧帖] [求助]驱动中内联汇编后的地址动态重定位问题?
0.00雪花
DDK编译驱动中,我发现offset确定的偏移和函数地址是静态的,如果将代码copy一块内存去执行那么地址就不对头了。
下面是我测试的一个函数,直接调用没问题,但是ExAllocatePool后把函数复制进去执行却总是蓝屏,
我真的要奔溃了,我发现可能是DbgPrint函数的地址问题,可是试了 push xxxx ret 和 mov eax, xxxx jmp eax硬编码还是蓝屏。求大牛帮帮忙啊?这段函数怎么写可以copy执行,而且我里面有硬编码怎么去除呢?
__declspec(naked) MyTest()
{
__asm{
/////////////////////////////////////////////////////////////////
//Code here
//
pushad
pushfd
call _next
_next:
pop eax
add eax, 14 //加上14字节调到下面的_title数据区
push eax //1 byte
call DbgPrint //5 bytes
pop eax //1 byte
popfd //1 byte
popad //1 byte
ret //1 byte
/////////////////////////////////////////////////////////////////
//Data here
//
//_title:
_emit 0x41
_emit 0x42
_emit 0x43
_emit 0x44
_emit 0x45
_emit 0x46
_emit 0x47
_emit 0x48
_emit 0x49
_emit 0x50
_emit 0x00
}
}
[课程]FART 脱壳王!加量不加价!FART作者讲授!