首页
社区
课程
招聘
直接执行 函数地址
发表于: 2011-9-16 23:44 13250

直接执行 函数地址

2011-9-16 23:44
13250
收藏
免费 6
支持
分享
最新回复 (33)
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
26
还有一个问题,test_ReadProcessMemory函数的声明少了WINAPI ,

__declspec( naked )  void WINAPI test_ReadProcessMemory(  HANDLE hProcess,    LPCVOID lpBaseAddress,    LPVOID lpBuffer,    DWORD nSize,    LPDWORD lpNumberOfBytesRead)
{
    __asm
    {
			mov edi,edi
			push ebp
			mov ebp,esp
			mov eax,ReadProcessMemory
			add eax,5
			jmp eax
    }
}
2011-9-19 09:28
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
7C8021CE      90            nop
7C8021CF      90            nop
7C8021D0 >    8BFF          mov edi,edi                              ;  ReadProcessMemory
7C8021D2      55            push ebp
7C8021D3      8BEC          mov ebp,esp
7C8021D5      8D45 14       lea eax,dword ptr ss:[ebp+0x14]        我要从这里执行
7C8021D8   .  50            push eax
7C8021D9   .  FF75 14       push dword ptr ss:[ebp+0x14]
7C8021DC   .  FF75 10       push dword ptr ss:[ebp+0x10]

我曾经遇到过这样的问题,API模糊调用就与此类似。看你的地址这段代码应该是在某个dll中,如果你想直接该dll中的函数应该是
call 7C8021D0这种格式吧,或者是call XXXXXXXX,然后在XXXXXXXX地址是个jmp 7C8021D0。如果你想从7C8021D5位置调用,原理上是没有问题的,但是前提是你要保持堆栈平衡。如果是正常调用,在call之后,堆栈应该压入函数的返回地址,在程序正常执行到7C8021D5之前,7C8021D2处的push改变了堆栈,如果你想直接从7C8021D5处开始调用,那么就要保证在调用7C8021D5之前的堆栈和正常调用7C8021D0时的堆栈是一样的,也就是说你在程序中使用call 7C8021D5之前还要单独的调用一次push语句用来保持堆栈平衡。
2011-9-20 20:58
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
naked 要自己ret,无它
2011-9-21 09:01
0
雪    币: 343
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
29
再次领略了乌龟大师的风范!
2011-9-21 10:49
0
雪    币: 1259
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stu
30
一般都用汇编,就是嫌这些太麻烦了。
2011-9-21 15:26
0
雪    币: 435
活跃值: (1212)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
31
直接调ZwWriteVirtualMemory?
2011-9-21 15:40
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
可以理解问test_ReadProcessMemory会把堆栈重写,而ReadProcessMemory则不会重写堆栈吗?
2011-9-22 13:57
0
雪    币: 230
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
高手!
2011-9-25 09:58
0
雪    币: 435
活跃值: (1212)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
34
晕 我只是问问潜水中的各位牛 这么做可不可以
感觉上应该是可以的,不过没试过
r3下inline hook readprocessmemory 防止读进程 好像没用吧
2011-9-25 20:52
0
游客
登录 | 注册 方可回帖
返回
//