减短或加长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.
当然改短也可以用这种办法,删掉几个字符,把第二段长度(蓝色的部分)相应减少。
szhorse 发表于 2018-11-18 11:19
一个比一个厉害
你觉得不松?那才是真牛 hao3ren 发表于 2018-11-11 18:39
牛逼,我要试一下
:lol你厉害,有点松吧? 本帖最后由 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
牛逼,我要试一下 楼主牛逼。 谢谢分享,,,谢谢分享,,, 请问,,fas6.exe在哪下载 为什么我这打开几个vlx都看不见右侧有 C:命令? yanshengjiang 发表于 2018-11-12 13:40
为什么我这打开几个vlx都看不见右侧有 C:命令?
发给我帮你看看?5520971@qq.com 本帖最后由 baitang36 于 2019-3-27 08:40 编辑
侑嚸俊 发表于 2018-11-12 11:46
请问,,fas61.exe在哪下载
http://bbs.mjtd.com/plugin.php?i ... wMjUyMHwxNzg1Mzg%3D baitang36 发表于 2018-11-12 14:13
发给我帮你看看?
算了 谢谢 我也是搞了耍的 等你vlx2lsp成功 我再请教