Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

DCE::Perl::RPC
Perl extension for DCE RPC protocol composer/parser

DCE::Perl::RPC - Perl extension for DCE RPC protocol composer/parser


NAME

DCE::Perl::RPC - Perl extension for DCE RPC protocol composer/parser


SYNOPSIS

use DCE::Perl::RPC; use constant DCOM_IREMOTEACTIVATION => pack(``H32'', ``B84A9F4D1C7DCF11861E0020AF6E7C57''); use constant DCOM_IF_VERSION => pack(``V'', 0); use constant DCOM_XFER_SYNTAX => pack(``H32'', ``045D888AEB1CC9119FE808002B104860''); use constant DCOM_XFER_SYNTAX_VERSION => pack(``V'', 2);


    $rpc = new DCE::Perl::RPC;

    $bind_msg = $rpc->rpc_bind(1, DCOM_IREMOTEACTIVATION . DCOM_IF_VERSION,

        (DCOM_XFER_SYNTAX . DCOM_XFER_SYNTAX_VERSION, $nltm_negotiate_msg);

    $bind_resp_msg = $rpc->rpc_bind_resp($ntlm_auth_msg);

    $request_msg = $rpc->rpc_co_request("Hi, there! This is Stub!", 1, 0x0e, DCOM_IREMOTEACTIVATION, "Authentication Credentials");

    $alt_ctx_msg = $rpc->rpc_alt_ctx(1, DCOM_IREMOTEACTIVATION . DCOM_IF_VERSION,

        (DCOM_XFER_SYNTAX . DCOM_XFER_SYNTAX_VERSION));


DESCRIPTION

The DCE RPC protocol is an application level protocol from OpenGroup that allows applications to do Remote Procedure Calls. It is the underlying wire protocol for DCOM (Distributed Common Object Model) by Microsoft.




This module was motivated by an reverse-engineering effort on a DCOM

client. Therefore, functions that are implemented gear more toward

client side implementation. Also, the initial version only supports

Connection Oriented version of DCE RPC. It also assumes NTLMSSP as 

the underlying authentication protocol. This can change based on the

input of the users of this modules.


DEPENDENCIES

There is no dependencies for this module. However, to build a DCOM client running in Microsoft environment, you may need to install an NTLM module such as Authen::Perl::NTLM.


ASSUMPTIONS

1) The version of DCE RPC Connection Oriented protocol supported is 5.0.

2) NTLM is the authentication scheme of choice.

3) AUTH_LEVEL_CONNECT is the authentication level of choice.

4) Network Data Representation (NDR) is assumed to be ASCII for characters, little endian for integers and IEEE for floating points.

5) Call Id is always zero. It seems to me my client works regardless of the value of call id.


TO-DO

1) Support fragmented CO Requests.

2) Put authentication type as an argument in the constructor.

3) Implement Connection Oriented server side functions.

4) Implement Connection-less functions.

5) Implement the module in C.


BUGS

Nothing known.


AUTHOR

This implementation was written by Yee Man Chan (ymc@yahoo.com) Copyright (c) 2002 Yee Man Chan. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


SEE ALSO

Authen::Perl::NTLM(3), perl(1), m4(1).

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy