Example #1
0
        public void Write(Stream stream)
        {
            using var binaryWriter = new BinaryWriter(stream);
            DexWriter dexWriter = new DexWriter(this);

            dexWriter.WriteTo(binaryWriter);
        }
Example #2
0
        private void TestReadWrite(string file, out DexReader dexreader, out DexWriter dexwriter)
        {
            TestContext.WriteLine("Testing {0}", file);


            using (Stream fs = new FileStream(file, FileMode.Open))
            {
                var dex = new Dex(fs);
                dexreader = new DexReader(dex);

                var reader = new BinaryReader(dex.buffer);
                dexreader.ReadFrom(reader);

                dexwriter = new DexWriter(dex);

                if (Extralog)
                {
                    using (Stream ofs = new FileStream(file + ".out", FileMode.Create))
                        using (var writer = new BinaryWriter(ofs))
                            dexwriter.WriteTo(writer);
                }
                else
                {
                    using (Stream ofs = new MemoryStream())
                        using (var writer = new BinaryWriter(ofs))
                            dexwriter.WriteTo(writer);
                }
            }
        }
Example #3
0
File: Dex.cs Project: oujunke/Dexer
        public void Write(Stream stream, bool bufferize)
        {
            var          deststream   = stream;
            MemoryStream memorystream = null;

            if (bufferize)
            {
                memorystream = new MemoryStream();
                deststream   = memorystream;
            }

            using (var binaryWriter = new BinaryWriter(deststream))
            {
                var writer = new DexWriter(this);
                writer.WriteTo(binaryWriter);

                if (!bufferize)
                {
                    return;
                }

                memorystream.Position = 0;
                memorystream.CopyTo(stream);
            }
        }
Example #4
0
File: Dex.cs Project: rfcclub/dot42
        public void Write(string filename, bool bufferize)
        {
            using (var filestream = new FileStream(filename, FileMode.Create))
            {
                Stream deststream = filestream;
                MemoryStream memorystream = null;

                if (bufferize)
                {
                    memorystream = new MemoryStream();
                    deststream = memorystream;
                }

                using (var binaryWriter = new BinaryWriter(deststream))
                {
                    var writer = new DexWriter(this);
                    writer.WriteTo(binaryWriter);

                    if (bufferize)
                    {
                        memorystream.Position = 0;
                        memorystream.CopyTo(filestream);
                    }
                }
            }
        }
Example #5
0
        public void Write(string filename, bool bufferize)
        {
            using (var filestream = new FileStream(filename, FileMode.Create))
            {
                Stream       deststream   = filestream;
                MemoryStream memorystream = null;

                if (bufferize)
                {
                    memorystream = new MemoryStream();
                    deststream   = memorystream;
                }

                using (var binaryWriter = new BinaryWriter(deststream))
                {
                    var writer = new DexWriter(this);
                    writer.WriteTo(binaryWriter);

                    if (!bufferize)
                    {
                        return;
                    }

                    memorystream.Position = 0;
                    memorystream.CopyTo(filestream);
                }
            }
        }
Example #6
0
 public InstructionWriter(DexWriter dexWriter, MethodDefinition method)
 {
     DexWriter = dexWriter;
     MethodDefinition = method;
     LookupLast = new Dictionary<Instruction, int>();
     _ip = 0;
     _extraOffset = 0;
 }
Example #7
0
        internal Dictionary <Instruction, int> LookupLast;        // ending offsets by instruction

        public InstructionWriter(DexWriter dexWriter, MethodDefinition method)
        {
            DexWriter        = dexWriter;
            MethodDefinition = method;
            LookupLast       = new Dictionary <Instruction, int>();
            _ip          = 0;
            _extraOffset = 0;
        }
Example #8
0
 public InstructionWriter(DexWriter dexWriter, MethodDefinition method)
 {
     this.dexWriter = dexWriter;
     methodDefinition = method;
     LookupLast = new Dictionary<Instruction, int>();
     Ip = 0;
     ExtraOffset = 0;
 }
Example #9
0
        private void TestReadWrite(string file, out DexReader dexreader, out DexWriter dexwriter)
        {
            TestContext.WriteLine("Testing {0}", file);

            var dex = new Dex();

            dexreader = new DexReader(dex);

            using (Stream fs = new FileStream(file, FileMode.Open))
                using (var reader = new BinaryReader(fs))
                    dexreader.ReadFrom(reader);

            dexwriter = new DexWriter(dex);
            dexwriter.WriteTo(new BinaryWriter(new MemoryStream()));
        }
Example #10
0
        private void TestReadWrite(string file, out DexReader dexreader, out DexWriter dexwriter)
        {
            TestContext.WriteLine("Testing {0}", file);

            var dex = new Dex();
            dexreader = new DexReader(dex);

            using (Stream fs = new FileStream(file, FileMode.Open))
            using (var reader = new BinaryReader(fs))
                dexreader.ReadFrom(reader);

            dexwriter = new DexWriter(dex);
            dexwriter.WriteTo(new BinaryWriter(new MemoryStream()));
        }