Beispiel #1
0
    internal static DigitalSignature smethod_0(BinaryReader A_0, byte[] A_1)
    {
        bool             flag;
        int              num       = 12;
        DigitalSignature signature = new DigitalSignature(DigitalSignatureType.CryptoApi);

        try
        {
            int num2 = A_0.ReadInt32();
            int num3 = A_0.ReadInt32();
            smethod_1(A_0);
            uint num4     = A_0.ReadUInt32();
            uint num5     = A_0.ReadUInt32();
            long fileTime = num4;
            fileTime  = fileTime << 0x20;
            fileTime |= num5;
            signature.method_0(DateTime.FromFileTimeUtc(fileTime));
            A_0.ReadInt32();
            int count = A_0.ReadInt32();
            int num8  = A_0.ReadInt32();
            A_0.ReadInt32();
            int num9  = A_0.ReadInt32();
            int num10 = A_0.ReadInt32();
            A_0.ReadInt32();
            Class813.smethod_5(A_0, (num2 + 1) * 2);
            Class813.smethod_5(A_0, (num3 + 1) * 2);
            byte[] array   = A_0.ReadBytes(count);
            byte[] rawData = A_0.ReadBytes(num8);
            A_0.ReadBytes(num9);
            A_0.ReadBytes(num10);
            if (num8 == 0)
            {
                throw new InvalidOperationException(BookmarkStart.b("瘱崳儵儷丹崻刽怿ㅁⵃⅅ♇⭉㡋㭍≏㝑穓", num));
            }
            X509Certificate2 certificate = new X509Certificate2(rawData);
            signature.method_3(certificate);
            RSAParameters parameters = ((RSACryptoServiceProvider)certificate.PublicKey.Key).ExportParameters(false);
            Array.Reverse(array);
            byte[] buffer3          = Class1078.smethod_0(array);
            Rsa    rsa              = new Rsa(parameters.Modulus, parameters.Exponent);
            byte[] sourceArray      = Class1078.smethod_1(Class1078.smethod_2(rsa, buffer3), rsa.Modulus.method_0() >> 3);
            byte[] destinationArray = new byte[0x10];
            Array.Copy(sourceArray, sourceArray.Length - 0x10, destinationArray, 0, 0x10);
            MD5 md = new MD5();
            md.Update(A_1, A_1.Length);
            md.Update(BitConverter.GetBytes(num5), 4);
            md.Update(BitConverter.GetBytes(num4), 4);
            md.FinalUpdate();
            flag = Class85.smethod_1(destinationArray, md.Digest);
        }
        catch (Exception)
        {
            flag = false;
        }
        signature.method_2(flag);
        return(signature);
    }
Beispiel #2
0
    private static Form4 smethod_8(BinaryReader A_0)
    {
        string str;
        int    num      = 1;
        Form4  form     = new Form4();
        int    position = (int)A_0.BaseStream.Position;
        int    num3     = A_0.ReadByte();
        int    num4     = A_0.ReadByte();

        form.method_42(((FontPitch)num4) & (FontPitch.Variable | FontPitch.Fixed));
        form.method_44((num4 & 4) != 0);
        form.method_40((FontFamily)((num4 & 0x70) >> 4));
        form.method_48(A_0.ReadInt16());
        form.method_38(A_0.ReadByte());
        A_0.ReadByte();
        form.method_36(new byte[10]);
        A_0.Read(form.method_35(), 0, form.method_35().Length);
        form.method_46(new byte[0x18]);
        A_0.Read(form.method_45(), 0, form.method_45().Length);
        int num5 = ((int)A_0.BaseStream.Position) - position;

        if (num3 > 0x29)
        {
            int num6 = (num3 - num5) + 1;
            str = Class813.smethod_5(A_0, num6);
        }
        else
        {
            str = "";
        }
        int index = str.IndexOf('\0');

        if (index < 0)
        {
            if (!Class567.smethod_16(str))
            {
                str = BookmarkStart.b("猦䀨䘪䠬尮ᄰ紲倴䀶ᤸ椺刼刾⁀ⵂ", num);
            }
            form.method_57(str);
            return(form);
        }
        string str2 = str.Substring(0, index);
        string str3 = str.Substring(index + 1);

        str2 = str2.Replace(BookmarkStart.b("Ⱖ┨", num), string.Empty);
        if (!Class567.smethod_16(str2))
        {
            str2 = Class567.smethod_16(str3) ? str3 : BookmarkStart.b("猦䀨䘪䠬尮ᄰ紲倴䀶ᤸ椺刼刾⁀ⵂ", num);
        }
        form.method_57(str2);
        form.method_34(str3);
        return(form);
    }
Beispiel #3
0
    internal Class702(BinaryReader A_0)
    {
        this.arrayList_0 = new ArrayList();
        A_0.ReadInt16();
        this.int_3  = A_0.ReadInt32();
        this.int_1  = A_0.ReadInt32();
        this.int_2  = A_0.ReadInt32();
        this.sdtt_0 = (Sdtt)A_0.ReadInt32();
        int num  = A_0.ReadInt32();
        int num2 = A_0.ReadInt32();

        for (int i = 0; i < num; i++)
        {
            this.arrayList_0.Add(new Class167(A_0));
        }
        if (num2 > 0)
        {
            this.string_0 = Class813.smethod_5(A_0, num2);
        }
    }
Beispiel #4
0
    private void method_1(Class1111 A_0)
    {
        int num  = A_0.int_0;
        int num2 = A_0.int_1;

        if (num2 != 0)
        {
            this.binaryReader_0.BaseStream.Position = num;
            int  num3  = num + num2;
            int  num4  = this.binaryReader_0.ReadInt16();
            bool flag  = (num4 & 2) != 0;
            bool flag2 = (num4 & 4) != 0;
            this.class460_0.method_28((MailMergeMainDocumentType)((num4 & 120) >> 3));
            this.class460_0.method_18((num4 & 0x400) == 0);
            this.class460_0.method_16((MailMergeDestination)((num4 & 0xe000) >> 13));
            int index = this.binaryReader_0.ReadByte();
            int num6  = this.binaryReader_0.ReadByte();
            this.class460_0.method_4(this.binaryReader_0.ReadInt32());
            Class1058[] classArray = new Class1058[] { new Class1058(this.binaryReader_0), new Class1058(this.binaryReader_0) };
            if (flag)
            {
                Class1058 class2 = classArray[num6];
                this.class460_0.method_14(class2.mailMergeDataType_0);
                this.class460_0.method_12(this.class342_0.method_5(class2.int_0));
                this.class460_0.method_22(class2.bool_0);
                if (this.class460_0.method_13() == MailMergeDataType.TextFile)
                {
                    this.class460_0.method_36(class2.mailMergeLegacySeparator_0);
                    this.class460_0.method_38(class2.mailMergeLegacySeparator_1);
                }
            }
            if (flag2)
            {
                Class1058 class3 = classArray[index];
                this.class460_0.method_20(this.class342_0.method_5(class3.int_0));
                if (this.class460_0.method_13() == MailMergeDataType.TextFile)
                {
                    this.class460_0.method_40(class3.mailMergeLegacySeparator_0);
                    this.class460_0.method_42(class3.mailMergeLegacySeparator_1);
                }
            }
            int num7 = this.binaryReader_0.ReadInt16();
            this.class460_0.method_34((num7 & 1) != 0);
            this.class460_0.method_8((MailMergeCheckErrors)(((num7 & 6) >> 1) + 1));
            bool flag3 = (num7 & 0x10) != 0;
            bool flag4 = (num7 & 0x80) != 0;
            this.class460_0.method_24(!flag3 && !flag4);
            int num8 = this.binaryReader_0.ReadInt16();
            int num9 = this.binaryReader_0.ReadInt16();
            this.class460_0.method_32(Class813.smethod_5(this.binaryReader_0, num9));
            if (num8 != 0)
            {
                StringCollection strings = new StringCollection();
                int num10 = num3 - ((int)this.binaryReader_0.BaseStream.Position);
                Class343.smethod_2(this.binaryReader_0, (int)this.binaryReader_0.BaseStream.Position, num10, strings);
                this.class460_0.method_10(strings[0]);
                string text1 = strings[1];
                this.class460_0.method_26(strings[2]);
                this.class460_0.method_6(strings[3]);
            }
            if (this.binaryReader_0.BaseStream.Position < num3)
            {
                int num11 = this.binaryReader_0.ReadInt32();
                this.class460_0.method_28((MailMergeMainDocumentType)num11);
            }
        }
    }
Beispiel #5
0
 internal override void vmethod_2(BinaryReader A_0)
 {
     this.string_0 = Class813.smethod_5(A_0, base.method_1());
 }