baitang36 发表于 2018-11-11 14:54:14

减短或加长vlx和fas中的自定义函数名,自定义函数名,增加命令名

本帖最后由 baitang36 于 2019-3-27 08:38 编辑

有些vlx fas中定义了c:xxxxxx这样的函数,有的名称比较长,用起来不方便,还有的和已有命令重名,有好几个都叫tt,只有最后加载的才能用。
想自己改一下,应该怎样改呢?
vlx和fas文件正常情况下都是加密的,字符串都成了乱码,这是没法改的,首先要把它解码,变成真实的字符串,然后进行修改。
解码工具用fas61.exe,这个程序可以直接解码vlx和fas文件,用法很简单。
修改工具用winhex。如果改后的函数名和改前字数一样,直接改了存盘就行了。如果想改短一点,就需要技巧了。
Offset      01234567   89ABCDEF
00000000   0D 0A 20 46 41 53 34 2D46 49 4C 45 20 3B 20 44      FAS4-FILE ; D
00000010   6F 20 6E 6F 74 20 63 6861 6E 67 65 20 69 74 21   o not change it!
00000020   0D 0A 32 30 0D 0A 33 2024 14 00 00 00 00 09 02   203 $      
00000030   00 35 01 01 00 03 0A 3500 01 00 03 16 24 0D 0A    5   5   $
00000040   31 35 39 20 35 20 24 1401 01 01 00 32 00 32 21   159 5 $   2 2!
00000050   2A 39 01 00 56 76 6C 2D41 43 41 44 2D 64 65 66   *9Vvl-ACAD-def
00000060   75 6E 00 00 5B 43 3A 5445 53 54 31 32 33 34 35   un
00000070   36 37 00 00 01 01 43 0000 04 00 0A 32 00 32 14   67    C   2 2
00000080   2A 39 01 00 5B 50 52 494E 43 00 00 55 01 00 0E   *9[PRINCU   
00000090   00 74 68 69 73 20 69 7320 61 20 74 65 73 74 5C    this is a test\
000000A0   00 00 43 00 00 03 00 0A5C 00 00 32 00 5B 43 3A   C   \2 [C:
000000B0   54 45 53 54 31 32 33 3435 36 37 00 00 3A 01 43   TEST1234567: C
000000C0   04 00 01 00 1C 14 01 0000 00 09 03 00 0A 57 00               W
000000D0   00 00 00 09 04 00 06 0200 09 02 00 35 01 01 00               5   
000000E0   01 0A 09 02 00 16 16 0032 A4 94 1D F0 44 0A 3B         2 餌 ;
000000F0   66 61 73 34 20 63 72 756E 63 68 0A 3B 24 3B 41   fas4 crunch ;$;A
00000100   31 31 2F 31 31 2F 31 38                            11/11/18
上面是一个解码后的fas文件,可以看出它定义了一个函数 C:TEST1234567,想把它改成c:t
首先找到这个字符串,一般函数名前面的一个字节是5B,这个不能改。看看这字符串后面有几个00,改后也必须跟着几个00,函数名改短后多出来的字节用20来填充。
改后的文件是这样的:
Offset         01   2   3   4    5   6    7      8   9   AB   CDE   F
00000000   0D 0A 20 46 41 53 34 2D46 49 4C 45 20 3B 20 44      FAS4-FILE ; D
00000010   6F 20 6E 6F 74 20 63 6861 6E 67 65 20 69 74 21   o not change it!
00000020   0D 0A 32 30 0D 0A 33 2024 14 00 00 00 00 09 02   203 $      
00000030   00 35 01 01 00 03 0A 3500 01 00 03 16 24 0D 0A    5   5   $
00000040   31 35 39 20 35 20 24 1401 01 01 00 32 00 32 21   159 5 $   2 2!
00000050   2A 39 01 00 56 76 6C 2D41 43 41 44 2D 64 65 66   *9Vvl-ACAD-def
00000060   75 6E 00 00 5B 43 3A 5400 00 20 20 20 20 20 20   un      
00000070   20 20 20 20 01 01 43 0000 04 00 0A 32 00 32 14         C   2 2
00000080   2A 39 01 00 5B 50 52 494E 43 00 00 55 01 00 0E   *9[PRINCU   
00000090   00 74 68 69 73 20 69 7320 61 20 74 65 73 74 5C    this is a test\
000000A0   00 00 43 00 00 03 00 0A5C 00 00 32 00 5B 43 3A   C   \2 [C:
000000B0   54 45 53 54 31 32 33 3435 36 37 00 00 3A 01 43   TEST1234567: C
000000C0   04 00 01 00 1C 14 01 0000 00 09 03 00 0A 57 00               W
000000D0   00 00 00 09 04 00 06 0200 09 02 00 35 01 01 00               5   
000000E0   01 0A 09 02 00 16 16 0032 A4 94 1D F0 44 0A 3B         2 餌 ;
000000F0   66 61 73 34 20 63 72 756E 63 68 0A 3B 24 3B 41   fas4 crunch ;$;A
00000100   31 31 2F 31 31 2F 31 38                                             11/11/18

如果有多个函数,前面的函数名后面一般会只有一个00,最后一个函数后面是两个00 ,函数名改短后多出来的位置一定要用20填充,一定要放到00 00后面。
如果想把命令名改长,只需要在原来的字符串后面插入几个0,然后把0改成你需要的字符,再把第二段的长度改一下,这里也就是蓝色的159,改成159+你增加的字符数,如你加了6个字节,那就改成165.
当然改短也可以用这种办法,删掉几个字符,把第二段长度(蓝色的部分)相应减少。


baitang36 发表于 2018-11-19 20:04:10

szhorse 发表于 2018-11-18 11:19
一个比一个厉害

你觉得不松?那才是真牛

baitang36 发表于 2018-11-11 19:23:18

hao3ren 发表于 2018-11-11 18:39
牛逼,我要试一下

:lol你厉害,有点松吧?

crtrccrt 发表于 2018-11-15 12:39:57

本帖最后由 crtrccrt 于 2018-11-15 13:11 编辑

http://bbs.mjtd.com/thread-178539-1-1.html

fas中的自定义函数名减短,参见baitang36的实例。
在baitang36的实例基础上,加长vlx和fas中的自定义函数名实例:C:TEST1234567,把它改成C:TEST123456789
①在0x72处插入2字节,内容改为0x38、0x39(8、9)。
②将0x41、0x42处内容改为0x36、0x31(6、1)。即:第二段长度增加2字节,由159增为161。

程序原码(defun C:TEST1234567 ( / )(princ "this is a test")(princ))



Offset      01234567   89ABCDEF
00000000   0D 0A 20 46 41 53 34 2D46 49 4C 45 20 3B 20 44      FAS4-FILE ; D
00000010   6F 20 6E 6F 74 20 63 6861 6E 67 65 20 69 74 21   o not change it!
00000020   0D 0A 32 30 0D 0A 33 2024 14 00 00 00 00 09 02   203 $      
00000030   00 35 01 01 00 03 0A 3500 01 00 03 16 24 0D 0A    5   5   $
00000040   31 36 31 20 35 20 24 1401 01 01 00 32 00 32 21   161 5 $   2 2!
00000050   2A 39 01 00 56 76 6C 2D41 43 41 44 2D 64 65 66   *9Vvl-ACAD-def
00000060   75 6E 00 00 5B 43 3A 5445 53 54 31 32 33 34 35   un[C:TEST12345
00000070   36 37 38 39 00 00 01 0143 00 00 04 00 0A 32 00   6789    C   2
00000080   32 14 2A 39 01 00 5B 5052 49 4E 43 00 00 55 01   2 *9[PRINCU
00000090   00 0E 00 74 68 69 73 2069 73 20 61 20 74 65 73      this is a tes
000000A0   74 5C 00 00 43 00 00 0300 0A 5C 00 00 32 00 5B   t\C   \2 [
000000B0   43 3A 54 45 53 54 31 3233 34 35 36 37 00 00 3A   C:TEST1234567:
000000C0   01 43 04 00 01 00 1C 1401 00 00 00 09 03 00 0A    C            
000000D0   57 00 00 00 00 09 04 0006 02 00 09 02 00 35 01   W             5
000000E0   01 0A 09 02 00 16 16 0032 A4 94 1D F0 44 0A 3B         2 餌 ;
000000F0   66 61 73 34 20 63 72 756E 63 68 0A 3B 24 3B 41   fas4 crunch ;$;A
00000100   31 31 2F 31 31 2F 31 38                            11/11/18





hao3ren 发表于 2018-11-11 18:39:03

牛逼,我要试一下

lxdz443 发表于 2018-11-11 18:46:09

楼主牛逼。

侑嚸俊 发表于 2018-11-12 11:45:25

谢谢分享,,,谢谢分享,,,

侑嚸俊 发表于 2018-11-12 11:46:44

请问,,fas6.exe在哪下载

yanshengjiang 发表于 2018-11-12 13:40:32

为什么我这打开几个vlx都看不见右侧有 C:命令?

baitang36 发表于 2018-11-12 14:13:51

yanshengjiang 发表于 2018-11-12 13:40
为什么我这打开几个vlx都看不见右侧有 C:命令?

发给我帮你看看?5520971@qq.com

baitang36 发表于 2018-11-12 14:15:28

本帖最后由 baitang36 于 2019-3-27 08:40 编辑

侑嚸俊 发表于 2018-11-12 11:46
请问,,fas61.exe在哪下载
http://bbs.mjtd.com/plugin.php?i ... wMjUyMHwxNzg1Mzg%3D

yanshengjiang 发表于 2018-11-12 14:39:21

baitang36 发表于 2018-11-12 14:13
发给我帮你看看?

算了 谢谢 我也是搞了耍的 等你vlx2lsp成功 我再请教
页: [1] 2 3 4 5
查看完整版本: 减短或加长vlx和fas中的自定义函数名,自定义函数名,增加命令名