首页
社区
课程
招聘
[旧帖] CsrClientCallServer 在win7 64位下失败,有研究过的吗 0.00雪花
发表于: 2013-9-8 08:38 7902

[旧帖] CsrClientCallServer 在win7 64位下失败,有研究过的吗 0.00雪花

2013-9-8 08:38
7902
RtlZeroMemory(&BaseApiMsg, sizeof(BaseApiMsg));
BaseApiMsg.u.CreateProcessW.ClientId.UniqueProcess = ClientId.UniqueProcess;
BaseApiMsg.u.CreateProcessW.ClientId.UniqueThread = ClientId.UniqueThread;
BaseApiMsg.u.CreateProcessW.ProcessHandle = (HANDLE)((ULONG)ProcessHandle | 3);
BaseApiMsg.u.CreateProcessW.ThreadHandle = ThreadHandle;
BaseApiMsg.u.CreateProcessW.CreationFlags = 0xFFFFFFFC;
Status = CsrClientCallServer(&BaseApiMsg,NULL,0x10000, sizeof(BaseApiMsg));

win7 下创建进程ZwCreateProcess,有遇到过的吗

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
返回值是0xc000000d
2013-9-8 11:12
0
雪    币: 1700
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
BaseApiMsg 的定义要改成64位的
2013-9-8 12:06
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
兄台能否明示?我看了它的定义,没发现有可改的地方啊
2013-9-8 14:08
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
typedef struct _PORT_MESSAGE
{
        USHORT                DataSize;
        USHORT                MessageSize;
        USHORT                MessageType;
        USHORT                VirtualRangesOffset;
        CLIENT_ID        ClientId;
        ULONG                MessageId;
        ULONG                SectionSize;
//        UCHAR                Data[];
} PORT_MESSAGE, *PPORT_MESSAGE;

typedef struct _CSR_CAPTURE_HEADER {
    ULONG Length;
    struct _CSR_CAPTURE_HEADER *RelatedCaptureBuffer;
    ULONG CountMessagePointers;
    PCHAR FreeSpace;
    ULONG_PTR MessagePointerOffsets[1]; // Offsets within CSR_API_MSG of pointers
} CSR_CAPTURE_HEADER, *PCSR_CAPTURE_HEADER;

typedef ULONG CSR_API_NUMBER;

typedef struct  _BASE_CREATETHREAD_MSG
{
    HANDLE hThread;
    CLIENT_ID ClientId;
}BASE_CREATETHREAD_MSG, *PBASE_CREATETHREAD_MSG;

typedef struct _PBASE_CREATEPROCESS_MSG
{
        HANDLE hProcess;
        HANDLE hThread;
        DWORD dwProcessId;
        DWORD dwThreadId;
        DWORD CreationFlags;
        CLIENT_ID DebuggerClientId;
        DWORD VdmBinaryType;
}BASE_CREATEPROCESS_MSG ,*PBASE_CREATEPROCESS_MSG;

typedef struct _BASE_API_MSG
{
    PORT_MESSAGE          PortMessage;
    PCSR_CAPTURE_HEADER   CaptureBuffer;
        CSR_API_NUMBER        ApiNumber;
        ULONG                 Status;
        ULONG                 Reserved;
        union
        {
           BASE_CREATETHREAD_MSG  BaseCreateThread;
           BASE_CREATEPROCESS_MSG BaseCreateProcess;
        }u;
}BASE_API_MSG,*PBASE_API_MSG;

typedef struct _CSR_API_CONNECTINFO
{
    OUT HANDLE ObjectDirectory;
    OUT PVOID SharedSectionBase;
    OUT PVOID SharedStaticServerData;
    OUT PVOID SharedSectionHeap;
    OUT ULONG DebugFlags;
    OUT ULONG SizeOfPebData;
    OUT ULONG SizeOfTebData;
    OUT ULONG NumberOfServerDllNames;
    OUT HANDLE ServerProcessId;
} CSR_API_CONNECTINFO, *PCSR_API_CONNECTINFO;

typedef struct _CSR_CLIENTCONNECT_MSG
{
    IN ULONG ServerDllIndex;
    IN OUT PVOID ConnectionInformation;
    IN OUT ULONG ConnectionInformationLength;
} CSR_CLIENTCONNECT_MSG, *PCSR_CLIENTCONNECT_MSG;

typedef struct _CSR_API_MSG
{
    PORT_MESSAGE h;
    union
        {
            CSR_API_CONNECTINFO ConnectionRequest;
            struct
                        {
                PCSR_CAPTURE_HEADER CaptureBuffer;
                CSR_API_NUMBER ApiNumber;
                ULONG ReturnValue;
                ULONG Reserved;
                union
                                {
                    CSR_CLIENTCONNECT_MSG ClientConnect;
                    ULONG_PTR ApiMessageData[39];
                } u;
                        };
        };
} CSR_API_MSG, *PCSR_API_MSG;

NTSYSAPI
NTSTATUS
NTAPI
CsrClientCallServer(
        IN OUT PCSR_API_MSG m,
        IN OUT PCSR_CAPTURE_HEADER CaptureBuffer OPTIONAL,
        IN CSR_API_NUMBER ApiNumber,
        IN ULONG ArgLength
);

是这样吗 我改了还是不起作用
2013-9-8 14:27
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
6
win7 64 下找不到这个API,你怎么调用?
2013-9-9 08:41
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
7
你是在 kernelbase 下找的,还是 ntdll?
2013-9-9 08:47
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
native程序 win7的DDK能识别啊 只是调用不成功
2013-9-9 21:09
0
游客
登录 | 注册 方可回帖
返回
//