示例#1
0
        private bool method_1()
        {
            var num = _class1870.method_0(16);

            if (num < 0)
            {
                return(false);
            }
            _class1870.method_1(16);
            num = ((num << 8 | num >> 8) & 65535);
            if (num % 31 != 0)
            {
                throw new SharpZipBaseException("Header checksum illegal");
            }
            if ((num & 3840) != 2048)
            {
                throw new SharpZipBaseException("Compression Method unknown");
            }
            if ((num & 32) == 0)
            {
                _int4 = 2;
            }
            else
            {
                _int4 = 1;
                _int6 = 32;
            }
            return(true);
        }
示例#2
0
        public int method_1(Class187 class187_0)
        {
            int num;

            if ((num = class187_0.method_0(9)) >= 0)
            {
                int num2;
                if ((num2 = (int)this.short_0[num]) >= 0)
                {
                    class187_0.method_1(num2 & 15);
                    return(num2 >> 4);
                }
                int num3 = -(num2 >> 4);
                int int_ = num2 & 15;
                if ((num = class187_0.method_0(int_)) >= 0)
                {
                    num2 = (int)this.short_0[num3 | num >> 9];
                    class187_0.method_1(num2 & 15);
                    return(num2 >> 4);
                }
                int num4 = class187_0.method_2();
                num  = class187_0.method_0(num4);
                num2 = (int)this.short_0[num3 | num >> 9];
                if ((num2 & 15) <= num4)
                {
                    class187_0.method_1(num2 & 15);
                    return(num2 >> 4);
                }
                return(-1);
            }
            else
            {
                int num5 = class187_0.method_2();
                num = class187_0.method_0(num5);
                int num2 = (int)this.short_0[num];
                if (num2 >= 0 && (num2 & 15) <= num5)
                {
                    class187_0.method_1(num2 & 15);
                    return(num2 >> 4);
                }
                return(-1);
            }
        }
示例#3
0
        public int method_1(Class187 class1870)
        {
            int num;

            if ((num = class1870.method_0(9)) >= 0)
            {
                int num2;
                if ((num2 = _short0[num]) >= 0)
                {
                    class1870.method_1(num2 & 15);
                    return(num2 >> 4);
                }
                var num3 = -(num2 >> 4);
                var int_ = num2 & 15;
                if ((num = class1870.method_0(int_)) >= 0)
                {
                    num2 = _short0[num3 | num >> 9];
                    class1870.method_1(num2 & 15);
                    return(num2 >> 4);
                }
                var num4 = class1870.method_2();
                num  = class1870.method_0(num4);
                num2 = _short0[num3 | num >> 9];
                if ((num2 & 15) <= num4)
                {
                    class1870.method_1(num2 & 15);
                    return(num2 >> 4);
                }
                return(-1);
            }
            else
            {
                var num5 = class1870.method_2();
                num = class1870.method_0(num5);
                int num2 = _short0[num];
                if (num2 >= 0 && (num2 & 15) <= num5)
                {
                    class1870.method_1(num2 & 15);
                    return(num2 >> 4);
                }
                return(-1);
            }
        }
示例#4
0
    private void method_1(Stream A_0, Interface61 A_1, string A_2)
    {
        SHA1 sha = new SHA1Managed();

        using (Stream1 stream = A_1.imethod_2(BookmarkStart.b("欭帯儱䘳伵䠷丹唻儽⸿ୁ⩃⁅❇", 8)))
        {
            Class62 class2 = new Class62();
            class2.method_1(0x40004);
            class2.method_3(0x40);
            Class187 class3 = class2.method_4().method_0();
            this.method_3(class3);
            class3.method_15(this.method_10(class3.method_0()));
            Class190 class4 = class2.method_4().method_4().method_0();
            this.method_4(class4);
            class4.method_17(this.method_10(class4.method_2()));
            byte[] buffer  = this.method_10(class4.method_2());
            byte[] buffer2 = new byte[] { 0xfe, 0xa7, 210, 0x76, 0x3b, 0x4b, 0x9e, 0x79 };
            byte[] buffer3 = this.class299_0.method_9(A_2, class4.method_16(), buffer2, class4.method_6() >> 3, class4.method_0());
            class4.method_19(this.method_11(buffer, class4.method_4(), buffer3, class4.method_16()));
            byte[] buffer4 = new byte[] { 0xd7, 170, 15, 0x6d, 0x30, 0x61, 0x34, 0x4e };
            buffer3 = this.class299_0.method_9(A_2, class4.method_16(), buffer4, class4.method_6() >> 3, class4.method_0());
            class4.method_21(this.method_11(sha.ComputeHash(buffer), class4.method_4(), buffer3, class4.method_16()));
            byte[] buffer5 = this.method_10(class3.method_4() / 8);
            byte[] buffer6 = new byte[] { 20, 110, 11, 0xe7, 0xab, 0xac, 0xd0, 0xd6 };
            buffer3 = this.class299_0.method_9(A_2, class4.method_16(), buffer6, class4.method_6() >> 3, class4.method_0());
            class4.method_23(this.method_11(buffer5, class4.method_4(), buffer3, class4.method_16()));
            Class188 class5  = class2.method_4().method_2();
            byte[]   buffer7 = new byte[] { 0x5f, 0xb2, 0xad, 1, 12, 0xb9, 0xe1, 0xf6 };
            byte[]   buffer8 = sha.ComputeHash(this.class299_0.method_12(class3.method_14(), buffer7));
            buffer8 = this.class299_0.method_13(buffer8, class3.method_2(), 0);
            byte[] buffer9 = this.method_10(class3.method_6());
            class5.method_1(this.method_11(buffer9, class3.method_2(), buffer5, buffer8));
            byte[]   buffer10 = this.method_2(A_0, A_1, class3, buffer5);
            HMACSHA1 hmacsha  = new HMACSHA1 {
                Key = this.class299_0.method_13(buffer9, class3.method_6(), 0)
            };
            byte[] buffer11 = new byte[] { 160, 0x67, 0x7f, 2, 0xb2, 0x2c, 0x84, 0x33 };
            byte[] buffer12 = sha.ComputeHash(this.class299_0.method_12(class3.method_14(), buffer11));
            buffer12 = this.class299_0.method_13(buffer12, class3.method_2(), 0);
            class5.method_3(this.method_11(hmacsha.ComputeHash(buffer10), class3.method_2(), buffer5, buffer12));
            class2.method_5(stream);
        }
    }
示例#5
0
        public bool method_0(Class187 class1870)
        {
            while (true)
            {
                switch (_int3)
                {
                case 0:
                    _int4 = class1870.method_0(5);
                    if (_int4 >= 0)
                    {
                        _int4 += 257;
                        class1870.method_1(5);
                        _int3 = 1;
                        goto IL_1FD;
                    }
                    return(false);

                case 1:
                    goto IL_1FD;

                case 2:
                    goto IL_1AF;

                case 3:
                    goto IL_176;

                case 4:
                    break;

                case 5:
                    goto IL_2C;

                default:
                    continue;
                }
IL_F4:
                int num;
                while (((num = _class1970.method_1(class1870)) & -16) == 0)
                {
                    _byte1[_int9++] = (_byte2 = (byte)num);
                    if (_int9 == _int7)
                    {
                        return(true);
                    }
                }
                if (num >= 0)
                {
                    if (num >= 17)
                    {
                        _byte2 = 0;
                    }
                    else if (_int9 == 0)
                    {
                        goto IL_2A6;
                    }
                    _int8 = num - 16;
                    _int3 = 5;
                    goto IL_2C;
                }
                return(false);

IL_176:
                while (_int9 < _int6)
                {
                    var num2 = class1870.method_0(3);
                    if (num2 < 0)
                    {
                        return(false);
                    }
                    class1870.method_1(3);
                    _byte0[Int2[_int9]] = (byte)num2;
                    _int9++;
                }
                _class1970 = new Class197(_byte0);
                _byte0     = null;
                _int9      = 0;
                _int3      = 4;
                goto IL_F4;
IL_2C:
                var num3 = Int1[_int8];
                var num4 = class1870.method_0(num3);
                if (num4 < 0)
                {
                    return(false);
                }
                class1870.method_1(num3);
                num4 += Int0[_int8];
                if (_int9 + num4 > _int7)
                {
                    break;
                }
                while (num4-- > 0)
                {
                    _byte1[_int9++] = _byte2;
                }
                if (_int9 == _int7)
                {
                    return(true);
                }
                _int3 = 4;
                continue;
IL_1AF:
                _int6 = class1870.method_0(4);
                if (_int6 >= 0)
                {
                    _int6 += 4;
                    class1870.method_1(4);
                    _byte0 = new byte[19];
                    _int9  = 0;
                    _int3  = 3;
                    goto IL_176;
                }
                return(false);

IL_1FD:
                _int5 = class1870.method_0(5);
                if (_int5 >= 0)
                {
                    _int5++;
                    class1870.method_1(5);
                    _int7  = _int4 + _int5;
                    _byte1 = new byte[_int7];
                    _int3  = 2;
                    goto IL_1AF;
                }
                return(false);
            }
            throw new SharpZipBaseException();
IL_2A6:
            throw new SharpZipBaseException();
        }
示例#6
0
        public bool method_0(Class187 class187_0)
        {
            while (true)
            {
                switch (this.int_3)
                {
                case 0:
                    this.int_4 = class187_0.method_0(5);
                    if (this.int_4 >= 0)
                    {
                        this.int_4 += 257;
                        class187_0.method_1(5);
                        this.int_3 = 1;
                        goto IL_1FD;
                    }
                    return(false);

                case 1:
                    goto IL_1FD;

                case 2:
                    goto IL_1AF;

                case 3:
                    goto IL_176;

                case 4:
                    break;

                case 5:
                    goto IL_2C;

                default:
                    continue;
                }
IL_F4:
                int num;
                while (((num = this.class197_0.method_1(class187_0)) & -16) == 0)
                {
                    this.byte_1[this.int_9++] = (this.byte_2 = (byte)num);
                    if (this.int_9 == this.int_7)
                    {
                        return(true);
                    }
                }
                if (num >= 0)
                {
                    if (num >= 17)
                    {
                        this.byte_2 = 0;
                    }
                    else if (this.int_9 == 0)
                    {
                        goto IL_2A6;
                    }
                    this.int_8 = num - 16;
                    this.int_3 = 5;
                    goto IL_2C;
                }
                return(false);

IL_176:
                while (this.int_9 < this.int_6)
                {
                    int num2 = class187_0.method_0(3);
                    if (num2 < 0)
                    {
                        return(false);
                    }
                    class187_0.method_1(3);
                    this.byte_0[Class198.int_2[this.int_9]] = (byte)num2;
                    this.int_9++;
                }
                this.class197_0 = new Class197(this.byte_0);
                this.byte_0     = null;
                this.int_9      = 0;
                this.int_3      = 4;
                goto IL_F4;
IL_2C:
                int num3 = Class198.int_1[this.int_8];
                int num4 = class187_0.method_0(num3);
                if (num4 < 0)
                {
                    return(false);
                }
                class187_0.method_1(num3);
                num4 += Class198.int_0[this.int_8];
                if (this.int_9 + num4 > this.int_7)
                {
                    break;
                }
                while (num4-- > 0)
                {
                    this.byte_1[this.int_9++] = this.byte_2;
                }
                if (this.int_9 == this.int_7)
                {
                    return(true);
                }
                this.int_3 = 4;
                continue;
IL_1AF:
                this.int_6 = class187_0.method_0(4);
                if (this.int_6 >= 0)
                {
                    this.int_6 += 4;
                    class187_0.method_1(4);
                    this.byte_0 = new byte[19];
                    this.int_9  = 0;
                    this.int_3  = 3;
                    goto IL_176;
                }
                return(false);

IL_1FD:
                this.int_5 = class187_0.method_0(5);
                if (this.int_5 >= 0)
                {
                    this.int_5++;
                    class187_0.method_1(5);
                    this.int_7  = this.int_4 + this.int_5;
                    this.byte_1 = new byte[this.int_7];
                    this.int_3  = 2;
                    goto IL_1AF;
                }
                return(false);
            }
            throw new SharpZipBaseException();
IL_2A6:
            throw new SharpZipBaseException();
        }