📄 lsarpc.java
字号:
_dst.enc_ndr_long(_domainss);
int _domainsi = _dst.index;
_dst.advance(12 * _domainss);
_dst = _dst.derive(_domainsi);
for (int _i = 0; _i < _domainss; _i++) {
domains[_i].encode(_dst);
}
}
}
public void decode(NdrBuffer _src) throws NdrException {
_src.align(4);
count = (int)_src.dec_ndr_long();
int _domainsp = _src.dec_ndr_long();
max_count = (int)_src.dec_ndr_long();
if (_domainsp != 0) {
_src = _src.deferred;
int _domainss = _src.dec_ndr_long();
int _domainsi = _src.index;
_src.advance(12 * _domainss);
if (domains == null) {
if (_domainss < 0 || _domainss > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
domains = new LsarTrustInformation[_domainss];
}
_src = _src.derive(_domainsi);
for (int _i = 0; _i < _domainss; _i++) {
if (domains[_i] == null) {
domains[_i] = new LsarTrustInformation();
}
domains[_i].decode(_src);
}
}
}
}
public static class LsarTranslatedName extends NdrObject {
public short sid_type;
public rpc.unicode_string name;
public int sid_index;
public void encode(NdrBuffer _dst) throws NdrException {
_dst.align(4);
_dst.enc_ndr_short(sid_type);
_dst.enc_ndr_short(name.length);
_dst.enc_ndr_short(name.maximum_length);
_dst.enc_ndr_referent(name.buffer, 1);
_dst.enc_ndr_long(sid_index);
if (name.buffer != null) {
_dst = _dst.deferred;
int _name_bufferl = name.length / 2;
int _name_buffers = name.maximum_length / 2;
_dst.enc_ndr_long(_name_buffers);
_dst.enc_ndr_long(0);
_dst.enc_ndr_long(_name_bufferl);
int _name_bufferi = _dst.index;
_dst.advance(2 * _name_bufferl);
_dst = _dst.derive(_name_bufferi);
for (int _i = 0; _i < _name_bufferl; _i++) {
_dst.enc_ndr_short(name.buffer[_i]);
}
}
}
public void decode(NdrBuffer _src) throws NdrException {
_src.align(4);
sid_type = (short)_src.dec_ndr_short();
_src.align(4);
if (name == null) {
name = new rpc.unicode_string();
}
name.length = (short)_src.dec_ndr_short();
name.maximum_length = (short)_src.dec_ndr_short();
int _name_bufferp = _src.dec_ndr_long();
sid_index = (int)_src.dec_ndr_long();
if (_name_bufferp != 0) {
_src = _src.deferred;
int _name_buffers = _src.dec_ndr_long();
_src.dec_ndr_long();
int _name_bufferl = _src.dec_ndr_long();
int _name_bufferi = _src.index;
_src.advance(2 * _name_bufferl);
if (name.buffer == null) {
if (_name_buffers < 0 || _name_buffers > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
name.buffer = new short[_name_buffers];
}
_src = _src.derive(_name_bufferi);
for (int _i = 0; _i < _name_bufferl; _i++) {
name.buffer[_i] = (short)_src.dec_ndr_short();
}
}
}
}
public static class LsarTransNameArray extends NdrObject {
public int count;
public LsarTranslatedName[] names;
public void encode(NdrBuffer _dst) throws NdrException {
_dst.align(4);
_dst.enc_ndr_long(count);
_dst.enc_ndr_referent(names, 1);
if (names != null) {
_dst = _dst.deferred;
int _namess = count;
_dst.enc_ndr_long(_namess);
int _namesi = _dst.index;
_dst.advance(16 * _namess);
_dst = _dst.derive(_namesi);
for (int _i = 0; _i < _namess; _i++) {
names[_i].encode(_dst);
}
}
}
public void decode(NdrBuffer _src) throws NdrException {
_src.align(4);
count = (int)_src.dec_ndr_long();
int _namesp = _src.dec_ndr_long();
if (_namesp != 0) {
_src = _src.deferred;
int _namess = _src.dec_ndr_long();
int _namesi = _src.index;
_src.advance(16 * _namess);
if (names == null) {
if (_namess < 0 || _namess > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
names = new LsarTranslatedName[_namess];
}
_src = _src.derive(_namesi);
for (int _i = 0; _i < _namess; _i++) {
if (names[_i] == null) {
names[_i] = new LsarTranslatedName();
}
names[_i].decode(_src);
}
}
}
}
public static class LsarClose extends DcerpcMessage {
public int getOpnum() { return 0x00; }
public int retval;
public rpc.policy_handle handle;
public LsarClose(rpc.policy_handle handle) {
this.handle = handle;
}
public void encode_in(NdrBuffer _dst) throws NdrException {
handle.encode(_dst);
}
public void decode_out(NdrBuffer _src) throws NdrException {
handle.decode(_src);
retval = (int)_src.dec_ndr_long();
}
}
public static class LsarQueryInformationPolicy extends DcerpcMessage {
public int getOpnum() { return 0x07; }
public int retval;
public rpc.policy_handle handle;
public short level;
public NdrObject info;
public LsarQueryInformationPolicy(rpc.policy_handle handle, short level, NdrObject info) {
this.handle = handle;
this.level = level;
this.info = info;
}
public void encode_in(NdrBuffer _dst) throws NdrException {
handle.encode(_dst);
_dst.enc_ndr_short(level);
}
public void decode_out(NdrBuffer _src) throws NdrException {
int _infop = _src.dec_ndr_long();
if (_infop != 0) {
_src.dec_ndr_short(); /* union discriminant */
info.decode(_src);
}
retval = (int)_src.dec_ndr_long();
}
}
public static class LsarLookupSids extends DcerpcMessage {
public int getOpnum() { return 0x0f; }
public int retval;
public rpc.policy_handle handle;
public LsarSidArray sids;
public LsarRefDomainList domains;
public LsarTransNameArray names;
public short level;
public int count;
public LsarLookupSids(rpc.policy_handle handle,
LsarSidArray sids,
LsarRefDomainList domains,
LsarTransNameArray names,
short level,
int count) {
this.handle = handle;
this.sids = sids;
this.domains = domains;
this.names = names;
this.level = level;
this.count = count;
}
public void encode_in(NdrBuffer _dst) throws NdrException {
handle.encode(_dst);
sids.encode(_dst);
names.encode(_dst);
_dst.enc_ndr_short(level);
_dst.enc_ndr_long(count);
}
public void decode_out(NdrBuffer _src) throws NdrException {
int _domainsp = _src.dec_ndr_long();
if (_domainsp != 0) {
if (domains == null) { /* YOYOYO */
domains = new LsarRefDomainList();
}
domains.decode(_src);
}
names.decode(_src);
count = (int)_src.dec_ndr_long();
retval = (int)_src.dec_ndr_long();
}
}
public static class LsarOpenPolicy2 extends DcerpcMessage {
public int getOpnum() { return 0x2c; }
public int retval;
public String system_name;
public LsarObjectAttributes object_attributes;
public int desired_access;
public rpc.policy_handle policy_handle;
public LsarOpenPolicy2(String system_name,
LsarObjectAttributes object_attributes,
int desired_access,
rpc.policy_handle policy_handle) {
this.system_name = system_name;
this.object_attributes = object_attributes;
this.desired_access = desired_access;
this.policy_handle = policy_handle;
}
public void encode_in(NdrBuffer _dst) throws NdrException {
_dst.enc_ndr_referent(system_name, 1);
if (system_name != null) {
_dst.enc_ndr_string(system_name);
}
object_attributes.encode(_dst);
_dst.enc_ndr_long(desired_access);
}
public void decode_out(NdrBuffer _src) throws NdrException {
policy_handle.decode(_src);
retval = (int)_src.dec_ndr_long();
}
}
public static class LsarQueryInformationPolicy2 extends DcerpcMessage {
public int getOpnum() { return 0x2e; }
public int retval;
public rpc.policy_handle handle;
public short level;
public NdrObject info;
public LsarQueryInformationPolicy2(rpc.policy_handle handle, short level, NdrObject info) {
this.handle = handle;
this.level = level;
this.info = info;
}
public void encode_in(NdrBuffer _dst) throws NdrException {
handle.encode(_dst);
_dst.enc_ndr_short(level);
}
public void decode_out(NdrBuffer _src) throws NdrException {
int _infop = _src.dec_ndr_long();
if (_infop != 0) {
_src.dec_ndr_short(); /* union discriminant */
info.decode(_src);
}
retval = (int)_src.dec_ndr_long();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -