Author Topic: How to modify strings in FAS files  (Read 2858 times)

0 Members and 1 Guest are viewing this topic.

baitang36

  • Bull Frog
  • Posts: 213
How to modify strings in FAS files
« on: January 22, 2019, 03:40:36 AM »
This is my first post.
Some functions such as c: XXXXXX are defined in vlx fas. Some of them have long names and are inconvenient to use. Others have renames with existing commands. Several of them are called tt. Only the last load can be used.
If you want to change it by yourself, how should you change it?
Vlx and Fas files are normally encrypted, strings are scrambled, which can not be changed. First, decode them into real strings, and then modify them.
The decoding tool uses fas61.exe, which can decode vlx and Fas files directly. The usage is simple.
Winhex is used to modify the tool. If the changed function name is the same as the number of words before it, just change the inventory directly. If you want to shorten it, you need skills.
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
 00000000   0D 0A 20 46 41 53 34 2D  46 49 4C 45 20 3B 20 44      FAS4-FILE ; D
 00000010   6F 20 6E 6F 74 20 63 68  61 6E 67 65 20 69 74 21   o not change it!
 00000020   0D 0A 32 30 0D 0A 33 20  24 14 00 00 00 00 09 02     20  3 $       
 00000030   00 35 01 01 00 03 0A 35  00 01 00 03 16 24 0D 0A    5     5     $ 
 00000040   31 35 39 20 35 20 24 14  01 01 01 00 32 00 32 21   159 5 $     2 2!
 00000050   2A 39 01 00 56 76 6C 2D  41 43 41 44 2D 64 65 66   *9  Vvl-ACAD-def
 00000060   75 6E 00 00 5B 43 3A 54  45 53 54 31 32 33 34 35   un  [C:TEST12345
 00000070   36 37 00 00 01 01 43 00  00 04 00 0A 32 00 32 14   67    C     2 2
 00000080   2A 39 01 00 5B 50 52 49  4E 43 00 00 55 01 00 0E   *9  [PRINC  U   
 00000090   00 74 68 69 73 20 69 73  20 61 20 74 65 73 74 5C    this is a test\
 000000A0   00 00 43 00 00 03 00 0A  5C 00 00 32 00 5B 43 3A     C     \  2 [C:
 000000B0   54 45 53 54 31 32 33 34  35 36 37 00 00 3A 01 43   TEST1234567  : C
 000000C0   04 00 01 00 1C 14 01 00  00 00 09 03 00 0A 57 00                 W
 000000D0   00 00 00 09 04 00 06 02  00 09 02 00 35 01 01 00               5   
 000000E0   01 0A 09 02 00 16 16 00  32 A4 94 1D F0 44 0A 3B           2 餌 ;
000000F0   66 61 73 34 20 63 72 75  6E 63 68 0A 3B 24 3B 41   fas4 crunch ;$;A
 00000100   31 31 2F 31 31 2F 31 38                            11/11/18
Above is a decoded Fas file. You can see that it defines a function C: TEST1234567 and wants to change it to c:t.
First, find the string. The byte in front of the normal function name is 5B, which can't be changed. Look at the number of 00 after the string, after the change must follow a few 00, function name after the shortening of the extra bytes with 20 to fill.
The revised document is as follows:
Offset         0  1   2   3   4    5   6    7      8   9   A  B   C  D  E   F
 00000000   0D 0A 20 46 41 53 34 2D  46 49 4C 45 20 3B 20 44      FAS4-FILE ; D
 00000010   6F 20 6E 6F 74 20 63 68  61 6E 67 65 20 69 74 21   o not change it!
 00000020   0D 0A 32 30 0D 0A 33 20  24 14 00 00 00 00 09 02     20  3 $       
 00000030   00 35 01 01 00 03 0A 35  00 01 00 03 16 24 0D 0A    5     5     $ 
 00000040   31 35 39 20 35 20 24 14  01 01 01 00 32 00 32 21   159 5 $     2 2!
 00000050   2A 39 01 00 56 76 6C 2D  41 43 41 44 2D 64 65 66   *9  Vvl-ACAD-def
 00000060   75 6E 00 00 5B 43 3A 54  00 00 20 20 20 20 20 20   un  [C:T       
 00000070   20 20 20 20 01 01 43 00  00 04 00 0A 32 00 32 14         C     2 2
 00000080   2A 39 01 00 5B 50 52 49  4E 43 00 00 55 01 00 0E   *9  [PRINC  U   
 00000090   00 74 68 69 73 20 69 73  20 61 20 74 65 73 74 5C    this is a test\
 000000A0   00 00 43 00 00 03 00 0A  5C 00 00 32 00 5B 43 3A     C     \  2 [C:
 000000B0   54 45 53 54 31 32 33 34  35 36 37 00 00 3A 01 43   TEST1234567  : C
 000000C0   04 00 01 00 1C 14 01 00  00 00 09 03 00 0A 57 00                 W
 000000D0   00 00 00 09 04 00 06 02  00 09 02 00 35 01 01 00               5   
 000000E0   01 0A 09 02 00 16 16 00  32 A4 94 1D F0 44 0A 3B           2 餌 ;
000000F0   66 61 73 34 20 63 72 75  6E 63 68 0A 3B 24 3B 41   fas4 crunch ;$;A
 00000100   31 31 2F 31 31 2F 31 38                                             11/11/18
If there are more than one function, there will be only one 00 after the first function name, and two 00 after the last function. When the function name is shortened, the extra position must be filled with 20, and must be placed after 00.
If you want to lengthen the command name, just insert a few zeros after the original string, then change 0 to the character you need, and then change the length of the second paragraph, which is 159, to 159 + the number of characters you added, if you add six bytes, then change to 165.

« Last Edit: January 22, 2019, 03:52:15 AM by baitang36 »

ronjonp

  • Needs a day job
  • Posts: 7526
Re: How to modify strings in FAS files
« Reply #1 on: January 22, 2019, 08:56:30 AM »
No need to try and modify the compiled files. Just define a shorter command calling your vlx\fas like so:
Code: [Select]
(defun c:t nil (c:test12345))

Windows 11 x64 - AutoCAD /C3D 2023

Custom Build PC

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: How to modify strings in FAS files
« Reply #2 on: January 22, 2019, 09:08:25 AM »
Some of them have long names and are inconvenient to use. Others have renames with existing commands. Several of them are called tt.

In 30+ years of LISP programming these issues have never come up. Smacks more of thinly veiled means to flog a fas decompiler. Given that it’s a tool to break a lock of sorts there’s no way I would trust it or the author of 1 post.
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

kdub_nz

  • Mesozoic keyThumper
  • SuperMod
  • Water Moccasin
  • Posts: 2124
  • class keyThumper<T>:ILazy<T>
Re: How to modify strings in FAS files
« Reply #3 on: January 22, 2019, 05:36:24 PM »
^^ what he said.
and I wouldn't trust an author who distributes compiled files with function names like C:TT.
Proficient function naming is usually a reasonable indicator of someone who at least thinks about ramifications.

Called Kerry in my other life
Retired; but they dragged me back in !

I live at UTC + 13.00

---
some people complain about loading the dishwasher.
Sometimes the question is more important than the answer.