Получение полезных данных из проприетарного файла данных C #, который выглядит как? - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть вывод из SRSLabs EC301 в формате .sec, который является частным двоичным форматом. Для чтения этого файла доступно несколько программ на базе Windows, но кто-то переместил башню, в которой есть необходимое мне программное обеспечение, и, хотя я все еще пытаюсь найти его, я также распараллеливаю поиск для получения полезных данных из этого файла.

Я просмотрел файл с помощью hexdump и получил следующее:

 00000000  00 01 00 00 00 ff ff ff  ff 01 00 00 00 00 00 00  |................|
 00000010  00 06 01 00 00 00 0f 53  52 53 4c 61 62 20 31 2e  |.......SRSLab 1.|
 00000020  37 2e 30 2e 31 30 0b 00  01 00 00 00 ff ff ff ff  |7.0.10..........|
 00000030  01 00 00 00 00 00 00 00  04 01 00 00 00 0c 53 79  |..............Sy|
 00000040  73 74 65 6d 2e 49 6e 74  33 32 01 00 00 00 07 6d  |stem.Int32.....m|
 00000050  5f 76 61 6c 75 65 00 08  02 00 00 00 0b 00 01 00  |_value..........|
 00000060  00 00 ff ff ff ff 01 00  00 00 00 00 00 00 0c 02  |................|
 00000070  00 00 00 3e 53 52 53 4c  61 62 2c 20 56 65 72 73  |...>SRSLab, Vers|
 00000080  69 6f 6e 3d 31 2e 37 2e  30 2e 31 30 2c 20 43 75  |ion=1.7.0.10, Cu|
 00000090  6c 74 75 72 65 3d 6e 65  75 74 72 61 6c 2c 20 50  |lture=neutral, P|
 000000a0  75 62 6c 69 63 4b 65 79  54 6f 6b 65 6e 3d 6e 75  |ublicKeyToken=nu|
 000000b0  6c 6c 05 01 00 00 00 12  45 43 48 6f 73 74 41 70  |ll......ECHostAp|
 000000c0  70 2e 53 52 53 45 43 44  6f 63 02 00 00 00 09 65  |p.SRSECDoc.....e|
 000000d0  63 50 72 6f 6a 65 63 74  0b 6c 69 6e 65 4d 61 6e  |cProject.lineMan|
 000000e0  61 67 65 72 04 04 11 45  43 48 6f 73 74 41 70 70  |ager...ECHostApp|
 000000f0  2e 45 43 50 72 6a 63 74  02 00 00 00 15 45 43 48  |.ECPrjct.....ECH|
 00000100  6f 73 74 41 70 70 2e 4c  69 6e 65 4d 61 6e 61 67  |ostApp.LineManag|
 00000110  65 72 02 00 00 00 02 00  00 00 09 03 00 00 00 09  |er..............|
 00000120  04 00 00 00 0c 05 00 00  00 48 53 52 53 49 6e 73  |.........HSRSIns|
 00000130  74 72 75 6d 65 6e 74 50  6f 6f 6c 2c 20 56 65 72  |trumentPool, Ver|
 00000140  73 69 6f 6e 3d 31 2e 30  2e 30 2e 30 2c 20 43 75  |sion=1.0.0.0, Cu|
 00000150  6c 74 75 72 65 3d 6e 65  75 74 72 61 6c 2c 20 50  |lture=neutral, P|
 00000160  75 62 6c 69 63 4b 65 79  54 6f 6b 65 6e 3d 6e 75  |ublicKeyToken=nu|
 00000170  6c 6c 05 03 00 00 00 11  45 43 48 6f 73 74 41 70  |ll......ECHostAp|
 00000180  70 2e 45 43 50 72 6a 63  74 0b 00 00 00 0b 61 63  |p.ECPrjct.....ac|
 00000190  74 69 6f 6e 74 69 74 6c  65 0e 6f 62 73 65 72 76  |tiontitle.observ|
 000001a0  61 62 6c 65 4c 69 73 74  09 75 73 65 72 55 6e 69  |ableList.userUni|
 000001b0  74 73 06 72 65 70 65 61  74 08 6e 6f 64 65 52 6f  |ts.repeat.nodeRo|
 000001c0  6f 74 05 74 69 74 6c 65  06 72 65 6d 61 72 6b 0c  |ot.title.remark.|
 000001d0  6f 70 65 72 61 74 6f 72  4e 61 6d 65 04 64 61 74  |operatorName.dat|
 000001e0  65 0e 69 6e 73 74 72 75  6d 65 6e 74 4c 69 73 74  |e.instrumentList|
 000001f0  0a 6d 61 69 6e 72 65 70  65 61 74 01 02 04 00 04  |.mainrepeat.....|
 00000200  01 02 02 00 03 00 22 53  52 53 49 6e 73 74 72 75  |......"SRSInstru|
 00000210  6d 65 6e 74 50 6f 6f 6c  2e 55 73 65 72 44 65 66  |mentPool.UserDef|
 00000220  69 6e 65 64 55 6e 69 74  73 05 00 00 00 08 13 45  |inedUnits......E|

И так далее. Вывод, рассматриваемый как ASCII, выглядит жутко, как Java, поэтому мой вопрос: возможно, это какой-то стандартный вывод .NET, похожий на рассол, который можно довольно легко загрузить в программу Java для чтения?

Существуют классы, которыене являются частью стандартной библиотеки .NET, но я также распаковал установщик MSI и вижу некоторые имена, которые я узнаю, и считаю, что они являются файлами байт-кода.

...