Esempio n. 1
0
        private int Disassemble(DisassembleOptions options)
        {
            string path = Path.GetFullPath(options.FileName);

            if (!File.Exists(path))
            {
                PrintError("File does not exist: " + path);
                return(2);
            }

            FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read);
            AcsFormat  format = AcsFormatIdentifier.IdentifyFormat(stream);

            if (format == AcsFormat.NotAcs)
            {
                stream.Dispose();
                PrintError(path + " is not an ACS file!");
                return(3);
            }

            Console.WriteLine("Detected format: " + format);

            string outputPath = Path.GetFullPath(options.OutputFile);

            if (File.Exists(outputPath))
            {
                File.Delete(outputPath);
            }

            FileStream outputStream = new FileStream(outputPath, FileMode.OpenOrCreate, FileAccess.Write);

            AcsFile file = new AcsFile(stream, format);

            file.Disassemble(outputStream);

            outputStream.Dispose();
            stream.Dispose();

            return(0);
        }
Esempio n. 2
0
        public void Dasm_command_tests(string name)
        {
            // Arrange
            var content  = _testSource.BinFiles[name];
            var expected = _testSource.BinVrilFiles[name];
            var options  = new DisassembleOptions()
            {
                FilePath = name
            };
            var reader        = MockFactory.NewFileReader(content);
            var writer        = MockFactory.NewFileWriter();
            var configuration = MockFactory.NewConfiguration();

            // Act
            DisassembleCommand.Run(options, reader, writer, configuration);

            // Assert
            var file   = Assert.Single(writer.Files.Values);
            var actual = Assert.IsType <string>(file);

            Assert.Equal(expected, actual);
        }