Skip to content

Instantly share code, notes, and snippets.

@z38
Created October 31, 2015 21:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save z38/0d43cdbd1129a22ef2bf to your computer and use it in GitHub Desktop.
Save z38/0d43cdbd1129a22ef2bf to your computer and use it in GitHub Desktop.
MC-NBFS to XML converter
//
// MC-NBFS to XML converter
//
// Usage: decoder.exe soapbin1.bin
// Build (Linux): mcs decoder.cs /r:System.ServiceModel /r:System.Runtime.Serialization
// Author: z38 <https://github.com/z38>
// License: MIT
using System;
using System.IO;
using System.ServiceModel.Channels;
using System.Xml;
namespace Z38.BinaryXml
{
public class SoapDecoder
{
static public void Main(string[] args)
{
Stream inputStream = new FileStream(args[0], FileMode.Open);
XmlReader reader = XmlDictionaryReader.CreateBinaryReader(inputStream, SoapConstants.Dictionary, new XmlDictionaryReaderQuotas(), null);
Message msg = Message.CreateMessage(reader, 0x10000, MessageVersion.Default);
XmlWriter writer = XmlWriter.Create(Console.OpenStandardOutput());
msg.WriteMessage(writer);
writer.Close();
}
}
class SoapConstants
{
public static XmlDictionary Dictionary { get; private set; }
static SoapConstants()
{
var d = new XmlDictionary();
Dictionary = d;
foreach(var s in dictStrings) {
d.Add(s);
}
}
static readonly string[] dictStrings = {
"mustUnderstand",
"Envelope",
"http://www.w3.org/2003/05/soap-envelope",
"http://www.w3.org/2005/08/addressing",
"Header",
"Action",
"To",
"Body",
"Algorithm",
"RelatesTo",
"http://www.w3.org/2005/08/addressing/anonymous",
"URI",
"Reference",
"MessageID",
"Id",
"Identifier",
"http://schemas.xmlsoap.org/ws/2005/02/rm",
"Transforms",
"Transform",
"DigestMethod",
"DigestValue",
"Address",
"ReplyTo",
"SequenceAcknowledgement",
"AcknowledgementRange",
"Upper",
"Lower",
"BufferRemaining",
"http://schemas.microsoft.com/ws/2006/05/rm",
"http://schemas.xmlsoap.org/ws/2005/02/rm/SequenceAcknowledgement",
"SecurityTokenReference",
"Sequence",
"MessageNumber",
"http://www.w3.org/2000/09/xmldsig#",
"http://www.w3.org/2000/09/xmldsig#enveloped-signature",
"KeyInfo",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
"http://www.w3.org/2001/04/xmlenc#",
"http://schemas.xmlsoap.org/ws/2005/02/sc",
"DerivedKeyToken",
"Nonce",
"Signature",
"SignedInfo",
"CanonicalizationMethod",
"SignatureMethod",
"SignatureValue",
"DataReference",
"EncryptedData",
"EncryptionMethod",
"CipherData",
"CipherValue",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd",
"Security",
"Timestamp",
"Created",
"Expires",
"Length",
"ReferenceList",
"ValueType",
"Type",
"EncryptedHeader",
"http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd",
"RequestSecurityTokenResponseCollection",
"http://schemas.xmlsoap.org/ws/2005/02/trust",
"http://schemas.xmlsoap.org/ws/2005/02/trust#BinarySecret",
"http://schemas.microsoft.com/ws/2006/02/transactions",
"s",
"Fault",
"MustUnderstand",
"role",
"relay",
"Code",
"Reason",
"Text",
"Node",
"Role",
"Detail",
"Value",
"Subcode",
"NotUnderstood",
"qname",
"",
"From",
"FaultTo",
"EndpointReference",
"PortType",
"ServiceName",
"PortName",
"ReferenceProperties",
"RelationshipType",
"Reply",
"a",
"http://schemas.xmlsoap.org/ws/2006/02/addressingidentity",
"Identity",
"Spn",
"Upn",
"Rsa",
"Dns",
"X509v3Certificate",
"http://www.w3.org/2005/08/addressing/fault",
"ReferenceParameters",
"IsReferenceParameter",
"http://www.w3.org/2005/08/addressing/reply",
"http://www.w3.org/2005/08/addressing/none",
"Metadata",
"http://schemas.xmlsoap.org/ws/2004/08/addressing",
"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous",
"http://schemas.xmlsoap.org/ws/2004/08/addressing/fault",
"http://schemas.xmlsoap.org/ws/2004/06/addressingex",
"RedirectTo",
"Via",
"http://www.w3.org/2001/10/xml-exc-c14n#",
"PrefixList",
"InclusiveNamespaces",
"ec",
"SecurityContextToken",
"Generation",
"Label",
"Offset",
"Properties",
"Cookie",
"wsc",
"http://schemas.xmlsoap.org/ws/2004/04/sc",
"http://schemas.xmlsoap.org/ws/2004/04/security/sc/dk",
"http://schemas.xmlsoap.org/ws/2004/04/security/sc/sct",
"http://schemas.xmlsoap.org/ws/2004/04/security/trust/RST/SCT",
"http://schemas.xmlsoap.org/ws/2004/04/security/trust/RSTR/SCT",
"RenewNeeded",
"BadContextToken",
"c",
"http://schemas.xmlsoap.org/ws/2005/02/sc/dk",
"http://schemas.xmlsoap.org/ws/2005/02/sc/sct",
"http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT",
"http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT",
"http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Renew",
"http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Renew",
"http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Cancel",
"http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Cancel",
"http://www.w3.org/2001/04/xmlenc#aes128-cbc",
"http://www.w3.org/2001/04/xmlenc#kw-aes128",
"http://www.w3.org/2001/04/xmlenc#aes192-cbc",
"http://www.w3.org/2001/04/xmlenc#kw-aes192",
"http://www.w3.org/2001/04/xmlenc#aes256-cbc",
"http://www.w3.org/2001/04/xmlenc#kw-aes256",
"http://www.w3.org/2001/04/xmlenc#des-cbc",
"http://www.w3.org/2000/09/xmldsig#dsa-sha1",
"http://www.w3.org/2001/10/xml-exc-c14n#WithComments",
"http://www.w3.org/2000/09/xmldsig#hmac-sha1",
"http://www.w3.org/2001/04/xmldsig-more#hmac-sha256",
"http://schemas.xmlsoap.org/ws/2005/02/sc/dk/p_sha1",
"http://www.w3.org/2001/04/xmlenc#ripemd160",
"http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p",
"http://www.w3.org/2000/09/xmldsig#rsa-sha1",
"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256",
"http://www.w3.org/2001/04/xmlenc#rsa-1_5",
"http://www.w3.org/2000/09/xmldsig#sha1",
"http://www.w3.org/2001/04/xmlenc#sha256",
"http://www.w3.org/2001/04/xmlenc#sha512",
"http://www.w3.org/2001/04/xmlenc#tripledes-cbc",
"http://www.w3.org/2001/04/xmlenc#kw-tripledes",
"http://schemas.xmlsoap.org/2005/02/trust/tlsnego#TLS_Wrap",
"http://schemas.xmlsoap.org/2005/02/trust/spnego#GSS_Wrap",
"http://schemas.microsoft.com/ws/2006/05/security",
"dnse",
"o",
"Password",
"PasswordText",
"Username",
"UsernameToken",
"BinarySecurityToken",
"EncodingType",
"KeyIdentifier",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#HexBinary",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Text",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509SubjectKeyIdentifier",
"http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ",
"http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ1510",
"http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID",
"Assertion",
"urn:oasis:names:tc:SAML:1.0:assertion",
"http://docs.oasis-open.org/wss/oasis-wss-rel-token-profile-1.0.pdf#license",
"FailedAuthentication",
"InvalidSecurityToken",
"InvalidSecurity",
"k",
"SignatureConfirmation",
"TokenType",
"http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1",
"http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey",
"http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKeySHA1",
"http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1",
"http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0",
"http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID",
"AUTH-HASH",
"RequestSecurityTokenResponse",
"KeySize",
"RequestedTokenReference",
"AppliesTo",
"Authenticator",
"CombinedHash",
"BinaryExchange",
"Lifetime",
"RequestedSecurityToken",
"Entropy",
"RequestedProofToken",
"ComputedKey",
"RequestSecurityToken",
"RequestType",
"Context",
"BinarySecret",
"http://schemas.xmlsoap.org/ws/2005/02/trust/spnego",
"http://schemas.xmlsoap.org/ws/2005/02/trust/tlsnego",
"wst",
"http://schemas.xmlsoap.org/ws/2004/04/trust",
"http://schemas.xmlsoap.org/ws/2004/04/security/trust/RST/Issue",
"http://schemas.xmlsoap.org/ws/2004/04/security/trust/RSTR/Issue",
"http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue",
"http://schemas.xmlsoap.org/ws/2004/04/security/trust/CK/PSHA1",
"http://schemas.xmlsoap.org/ws/2004/04/security/trust/SymmetricKey",
"http://schemas.xmlsoap.org/ws/2004/04/security/trust/Nonce",
"KeyType",
"http://schemas.xmlsoap.org/ws/2004/04/trust/SymmetricKey",
"http://schemas.xmlsoap.org/ws/2004/04/trust/PublicKey",
"Claims",
"InvalidRequest",
"RequestFailed",
"SignWith",
"EncryptWith",
"EncryptionAlgorithm",
"CanonicalizationAlgorithm",
"ComputedKeyAlgorithm",
"UseKey",
"http://schemas.microsoft.com/net/2004/07/secext/WS-SPNego",
"http://schemas.microsoft.com/net/2004/07/secext/TLSNego",
"t",
"http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue",
"http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue",
"http://schemas.xmlsoap.org/ws/2005/02/trust/Issue",
"http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey",
"http://schemas.xmlsoap.org/ws/2005/02/trust/CK/PSHA1",
"http://schemas.xmlsoap.org/ws/2005/02/trust/Nonce",
"RenewTarget",
"CancelTarget",
"RequestedTokenCancelled",
"RequestedAttachedReference",
"RequestedUnattachedReference",
"IssuedTokens",
"http://schemas.xmlsoap.org/ws/2005/02/trust/Renew",
"http://schemas.xmlsoap.org/ws/2005/02/trust/Cancel",
"http://schemas.xmlsoap.org/ws/2005/02/trust/PublicKey",
"Access",
"AccessDecision",
"Advice",
"AssertionID",
"AssertionIDReference",
"Attribute",
"AttributeName",
"AttributeNamespace",
"AttributeStatement",
"AttributeValue",
"Audience",
"AudienceRestrictionCondition",
"AuthenticationInstant",
"AuthenticationMethod",
"AuthenticationStatement",
"AuthorityBinding",
"AuthorityKind",
"AuthorizationDecisionStatement",
"Binding",
"Condition",
"Conditions",
"Decision",
"DoNotCacheCondition",
"Evidence",
"IssueInstant",
"Issuer",
"Location",
"MajorVersion",
"MinorVersion",
"NameIdentifier",
"Format",
"NameQualifier",
"Namespace",
"NotBefore",
"NotOnOrAfter",
"saml",
"Statement",
"Subject",
"SubjectConfirmation",
"SubjectConfirmationData",
"ConfirmationMethod",
"urn:oasis:names:tc:SAML:1.0:cm:holder-of-key",
"urn:oasis:names:tc:SAML:1.0:cm:sender-vouches",
"SubjectLocality",
"DNSAddress",
"IPAddress",
"SubjectStatement",
"urn:oasis:names:tc:SAML:1.0:am:unspecified",
"xmlns",
"Resource",
"UserName",
"urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
"EmailName",
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"u",
"ChannelInstance",
"http://schemas.microsoft.com/ws/2005/02/duplex",
"Encoding",
"MimeType",
"CarriedKeyName",
"Recipient",
"EncryptedKey",
"KeyReference",
"e",
"http://www.w3.org/2001/04/xmlenc#Element",
"http://www.w3.org/2001/04/xmlenc#Content",
"KeyName",
"MgmtData",
"KeyValue",
"RSAKeyValue",
"Modulus",
"Exponent",
"X509Data",
"X509IssuerSerial",
"X509IssuerName",
"X509SerialNumber",
"X509Certificate",
"AckRequested",
"http://schemas.xmlsoap.org/ws/2005/02/rm/AckRequested",
"AcksTo",
"Accept",
"CreateSequence",
"http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence",
"CreateSequenceRefused",
"CreateSequenceResponse",
"http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse",
"FaultCode",
"InvalidAcknowledgement",
"LastMessage",
"http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage",
"LastMessageNumberExceeded",
"MessageNumberRollover",
"Nack",
"netrm",
"Offer",
"r",
"SequenceFault",
"SequenceTerminated",
"TerminateSequence",
"http://schemas.xmlsoap.org/ws/2005/02/rm/TerminateSequence",
"UnknownSequence",
"http://schemas.microsoft.com/ws/2006/02/tx/oletx",
"oletx",
"OleTxTransaction",
"PropagationToken",
"http://schemas.xmlsoap.org/ws/2004/10/wscoor",
"wscoor",
"CreateCoordinationContext",
"CreateCoordinationContextResponse",
"CoordinationContext",
"CurrentContext",
"CoordinationType",
"RegistrationService",
"Register",
"RegisterResponse",
"ProtocolIdentifier",
"CoordinatorProtocolService",
"ParticipantProtocolService",
"http://schemas.xmlsoap.org/ws/2004/10/wscoor/CreateCoordinationContext",
"http://schemas.xmlsoap.org/ws/2004/10/wscoor/CreateCoordinationContextResponse",
"http://schemas.xmlsoap.org/ws/2004/10/wscoor/Register",
"http://schemas.xmlsoap.org/ws/2004/10/wscoor/RegisterResponse",
"http://schemas.xmlsoap.org/ws/2004/10/wscoor/fault",
"ActivationCoordinatorPortType",
"RegistrationCoordinatorPortType",
"InvalidState",
"InvalidProtocol",
"InvalidParameters",
"NoActivity",
"ContextRefused",
"AlreadyRegistered",
"http://schemas.xmlsoap.org/ws/2004/10/wsat",
"wsat",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Completion",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Durable2PC",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Volatile2PC",
"Prepare",
"Prepared",
"ReadOnly",
"Commit",
"Rollback",
"Committed",
"Aborted",
"Replay",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Rollback",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepare",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepared",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/ReadOnly",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/Replay",
"http://schemas.xmlsoap.org/ws/2004/10/wsat/fault",
"CompletionCoordinatorPortType",
"CompletionParticipantPortType",
"CoordinatorPortType",
"ParticipantPortType",
"InconsistentInternalState",
"mstx",
"Enlistment",
"protocol",
"LocalTransactionId",
"IsolationLevel",
"IsolationFlags",
"Description",
"Loopback",
"RegisterInfo",
"ContextId",
"TokenId",
"AccessDenied",
"InvalidPolicy",
"CoordinatorRegistrationFailed",
"TooManyEnlistments",
"Disabled",
"ActivityId",
"http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics",
"http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#Kerberosv5APREQSHA1",
"http://schemas.xmlsoap.org/ws/2002/12/policy",
"FloodMessage",
"LinkUtility",
"Hops",
"http://schemas.microsoft.com/net/2006/05/peer/HopCount",
"PeerVia",
"http://schemas.microsoft.com/net/2006/05/peer",
"PeerFlooder",
"PeerTo",
"http://schemas.microsoft.com/ws/2005/05/routing",
"PacketRoutable",
"http://schemas.microsoft.com/ws/2005/05/addressing/none",
"http://schemas.microsoft.com/ws/2005/05/envelope/none",
"http://www.w3.org/2001/XMLSchema-instance",
"http://www.w3.org/2001/XMLSchema",
"nil",
"type",
"char",
"boolean",
"byte",
"unsignedByte",
"short",
"unsignedShort",
"int",
"unsignedInt",
"long",
"unsignedLong",
"float",
"double",
"decimal",
"dateTime",
"string",
"base64Binary",
"anyType",
"duration",
"guid",
"anyURI",
"QName",
"time",
"date",
"hexBinary",
"gYearMonth",
"gYear",
"gMonthDay",
"gDay",
"gMonth",
"integer",
"positiveInteger",
"negativeInteger",
"nonPositiveInteger",
"nonNegativeInteger",
"normalizedString",
"ConnectionLimitReached",
"http://schemas.xmlsoap.org/soap/envelope/",
"Actor",
"Faultcode",
"Faultstring",
"Faultactor",
"Detail"
};
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment