怎样知道一个文件的字节数据存储规则?

最近想破译一个文件的存储规则,会一些C#,不是专业计算机出身,希望大家能帮忙解答一下。

我们知道所有文件都是通过字节存储在计算机中,有些文件存储是有公开规范的,比如.TXT,.JPG等。但是更多专有文件是不公开的。
我最近的想破解的是一个工业机器人的控制指令程序文件,这家机器人的程序有两个格式,这两个格式在他们公司专有的软件中可以互相转换(当然要收费)。
这两种文件格式他们自己称为“ASCII文本格式(.LS)”和"二进制文件(.TP)",前者可以用记事本直接打开,后者只能放到机器人中才能打开。

我先拿我测试的一个文件给大家看看,下面是LS格式的文本,该文件为:974字节,程序名是OFFS。

/PROG  OFFS
/ATTR
OWNER        = MNEDITOR;
COMMENT        = "Offest X Y Z R";
PROG_SIZE    = 522;
CREATE        = DATE 21-03-11  TIME 10:02:16;
MODIFIED    = DATE 21-03-11  TIME 10:03:22;
FILE_NAME    = OFFEST;
VERSION        = 0;
LINE_COUNT    = 14;
MEMORY_SIZE    = 838;
PROTECT        = READ_WRITE;
TCD:  STACK_SIZE    = 0,
      TASK_PRIORITY    = 50,
      TIME_SLICE    = 0,
      BUSY_LAMP_OFF    = 0,
      ABORT_REQUEST    = 0,
      PAUSE_REQUEST    = 0;
DEFAULT_GROUP    = 1,*,*,*,*;
CONTROL_CODE    = 00000000 00000000;
/APPL
  HANDLING : TRUE ; 
/MN
   1:  !******************************** ;
   2:  !R[10] OFFSET PR CHANGE ;
   3:  !PR[R10] XYZR OFFSET CHANGE ;
   4:  !READ IN Parameter ;
   5:  !******************************** ;
   6:   ;
   7:   ;
   8:  R[10:OFFEST PR NUM]=AR[1]    ;
   9:  PR[R[10]]=LPOS    ;
  10:  PR[R[10]]=PR[R[10]]-PR[R[10]]    ;
  11:  PR[R[10],1]=AR[2]    ;
  12:  PR[R[10],2]=AR[3]    ;
  13:  PR[R[10],3]=AR[4]    ;
  14:  PR[R[10],6]=AR[5]    ;
/POS
/END

开头的很多行是程序属性,下面带行编号的是控制指令,主要是一些寄存器变量的赋值。
TP格式的文件是269字节,比文本格式小了很多,可以肯定不是按照上述文本格式存储的。我导入过机器人,程序名、注释、时间、指令等这些都在。
我用C#中的FileStream把TP文件转成字节组,如下,共269字节。

[254 239 0 1 0 0 1 159 255 0 0 4 0 79 70 70 83 252 220 255 224 253 255 255 1 0 76 77 255 78 69 68 73 84 79 82 0 255 0 79 102 
102 101 115 116 32 63 88 32 89 32 90 32 36 0 236 241 191 2 10 82 107 80 72 61 0 107 254 233 244 14 0 0 3 70 0 1 226 237 240 
50 231 246 82 1 81 2 255 255 2 207 0 34 30 42 111 15 125 10 0 0 255 24 30 82 91 49 48 93 32 254 242 241 69 84 32 80 82 32 67 
255 72 65 78 71 69 0 0 28 223 30 80 82 91 82 149 1 88 89 243 90 82 152 5 163 5 19 30 82 69 255 65 68 32 73 78 32 80 97 255 
114 97 109 101 116 101 114 0 220 108 15 126 15 0 1 255 1 17 9 3 191 2 0 10 100 62 2 81 0 7 255 4 2 128 10 100 50 7 0 105 14 
20 18 20 17 102 20 17 0 12 20 17 84 15 16 13 17 2 43 21 2 13 17 3 43 21 213 3 13 17 4 43 21 6 13 17 5 255 223 255 3 255 255 
4 81 1 12 76 220 165 0 242 240 69 83 84 234 243 12 77 23 85 65 80 237 240 8 20 3]

因为该公司喜欢使用ASCII码,而原始ASCII是128位,这里面很多都超过了127,我就去看扩展ASCII码,它是256位。但是对照发现很多都是奇怪符号。我直接用 Encoding转了一下,果然有很多乱码。如下。
我对计算机了解不多,所以特别想知道一般的文件到底是怎么存储读取的,是把二进制通过ASCII、UTF8、UNICODE码转成字符,然后执行?还是说没有特性要求,我认为字节80是啥意思就是啥意思,根本不管这些标准编码。

??   ??   OFFS??????? LM?NEDITOR ? Offest ?X Y Z $ ???
RkPH= k???  F ???2??RQ??? "*o}
  ?R[10] ???ET PR C?HANGE  ?PR[R?XY?ZR??RE?AD IN Pa?rameter ?l~ ? ?
d>Q ??
?????QL?? ??EST??MUAP?



劝贴主还是放弃吧。
这个通常都是调用软件狗内部的算法解密的,你没有软件狗,基本不可能解密。