找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4687|回复: 3

关于安全访问内存的一个想法

[复制链接]

859

主题

2638

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36140
发表于 2014-6-29 10:24:22 | 显示全部楼层 |阅读模式
刚才在逛kernelmode.info的时候,看到有人提问如何安全访问内存:http://www.kernelmode.info/forum/viewtopic.php?f=14&t=3354
Vrtule提示使用NtSystemDebugControl,但他又说XP后可能不可用。
其实这个函数在XP后应该也是可以用的,不过需要先PATCH几个变量才行。
提示见:http://www.vbasm.com/forum.php?mod=viewthread&tid=7969

859

主题

2638

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36140
 楼主| 发表于 2014-7-16 00:58:39 | 显示全部楼层
现在想想这真是多此一举。直接从CE里抄代码即可。。。{:soso_e111:}

8

主题

69

回帖

2

精华

钻石会员

积分
3279
发表于 2015-4-19 21:50:08 | 显示全部楼层
Tesla.Angela 发表于 2014-7-16 00:58
现在想想这真是多此一举。直接从CE里抄代码即可。。。

`````,还是没看懂啊````,  推荐的那个网站 进去,是关于一个动态开启本地调试的

0

主题

5

回帖

0

精华

铜牌会员

积分
37
发表于 2016-1-27 18:19:57 | 显示全部楼层
CE 只是用KernelStackAttach,例如:

BOOLEAN WriteProcessMemory(DWORD PID,PEPROCESS PEProcess,PVOID Address,DWORD Size, PVOID Buffer)
{
        PEPROCESS selectedprocess=PEProcess;
        KAPC_STATE apc_state;
        NTSTATUS ntStatus=STATUS_UNSUCCESSFUL;
               
        if (selectedprocess==NULL)
        {
                //DbgPrint("WriteProcessMemory:Getting PEPROCESS\n");
        if (!NT_SUCCESS(PsLookupProcessByProcessId((PVOID)(UINT_PTR)PID,&selectedprocess)))
                   return FALSE; //couldn't get the PID

                //DbgPrint("Retrieved peprocess");  
        }

        //selectedprocess now holds a valid peprocess value
        __try
        {
                UINT_PTR temp=(UINT_PTR)Address;
                                               
                RtlZeroMemory(&apc_state,sizeof(apc_state));                                       

            KeAttachProcess((PEPROCESS)selectedprocess);                               
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表