Получение nca_proto_error / DCERPC_FAULT_PROTO_ERROR при использовании JCIFS для связи с удаленным экземпляром Windows - PullRequest
0 голосов
/ 04 января 2012

В настоящее время я пытаюсь сделать что-то похожее на PSExec, но полностью на Java.Я думаю, что моя проблема напрямую не связана с тем, что я делаю, но как.В настоящее время я пытаюсь реализовать создание и запуск службы удаленно.

Для этого я взял в руки инструмент midlc (версия 0.6.1) и расширил svcctl.idl с помощью вызовов CreateService и DeleteService.После этого я использовал midlc для генерации кода для использования с jcifs (-t jcifs).Затем я создал тестовую программу для использования этого класса и jcifs для связи с удаленной машиной Windows.

Вот код для этого:

        rpc.policy_handle scHandle = new rpc.policy_handle();
        SvcCtl.OpenSCManager openSCManagerRpc = new SvcCtl.OpenSCManager(host, null, 0x0001 | 0x0002, scHandle);

        // Connection-oriented DCE/RPC over SMB named pipes.
        DcerpcHandle handle = DcerpcHandle.getHandle("ncacn_np:" + host + "[\\PIPE\\svcctl]",
                ConcurrentNtlmAuthenticator.getInstance().getNtlmPasswordAuthentication());
        try {
            handle.sendrecv(openSCManagerRpc);
            if (openSCManagerRpc.retval != 0) {
                throw new SmbException(openSCManagerRpc.retval, true);
            }
        } catch(Exception e) {
            e.printStackTrace();
        } finally {
            try {
                handle.close();
            } catch(IOException ioe) {
                ioe.printStackTrace();
            }
        }

К сожалению, я получаю псевдоним DCERPC_FAULT_PROTO_ERRORnca_proto_error alias 0x1c01000b

Итак, мой простой вопрос: что я делаю не так?

Крис

1 Ответ

0 голосов
/ 22 марта 2012

Хорошо,

Я разобрался с этим.Проблема заключалась в том, что тип запроса не был инициализирован и, таким образом, установлен на -1, что не является допустимым значением.Установив это вручную, я смог фактически выполнить задачи, которые пытался выполнить:

https://dev.c -ware.de / confluence / pages / viewpage.action? PageId = 15007754

Крис

...