明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: mym8

vlx 文件反编译软件

  [复制链接]
发表于 2008-5-4 10:20:00 | 显示全部楼层
本帖最后由 作者 于 2008-5-4 10:27:55 编辑

lidejun_55发表于2008-4-29 11:12:00就算你学过汇编,从你的发言看的出来你也没有研究过fas,不要老是拿盖茨来说话,fas和汇编是有联系,但是有本质的区别,希望以后你不要再误导群众

我在本论坛也发了些程序,有的还是绝无仅有的哦,都仅仅编译成fas,有本事反编译一下。事实胜于雄辩。
发表于 2008-5-4 12:02:00 | 显示全部楼层
fawn_lgc发表于2008-5-4 10:20:00我在本论坛也发了些程序,有的还是绝无仅有的哦,都仅仅编译成fas,有本事反编译一下。事实胜于雄辩。

反编译我可不会,如果解密我倒是可以帮你看看

发表于 2008-5-5 20:13:00 | 显示全部楼层
的确有一个反编译fas文件的东东,虽然不是很成功,只能部分或小部分还原,但在某种情况下还是很有用的。比如要找程序中设置的密码,运气好的话还真的能找到。
发表于 2008-5-6 07:13:00 | 显示全部楼层
alin版主能不能把你用的程序放上来,让大家看看
发表于 2008-5-6 10:15:00 | 显示全部楼层
alin发表于2008-5-5 20:13:00的确有一个反编译fas文件的东东,虽然不是很成功,只能部分或小部分还原,但在某种情况下还是很有用的。比如要找程序中设置的密码,运气好的话还真的能找到。

还原后以汇编的形式出现没多大作用,找一般密码还是应该能找到

发表于 2008-5-12 09:15:00 | 显示全部楼层
本帖最后由 作者 于 2008-5-12 16:15:11 编辑

不死心的家伙,告诉你们吧。

编译时,程序2 将被编译;程序1 只进行直接引用而不进行编译,因此能被所谓的反编译的软件部分还原,在对程序逐行测试时也会弹出源代码。

关于找程序中设置的密码的问题:只要使用vl-string->list将密码转为数字,并进行一定的数学计算(如1+)密码就无法找到。

下列内容出自帮助文件:

(function symbol | lambda-expr) 通知 Visual LISP 编译器将参数作为内置函数进行链接和优化

function 函数与 quote 函数相同,但它将通知 Visual LISP 编译器将参数视为内部函数或用 defun 定义的函数,对其进行链接和优化。
由 function 引用的经过编译的 lambda 表达式加载到 Visual LISP IDE 时,将包含调试信息。

参数

symbol

命名函数的符号。

lambda-expr

如下格式的表达式:
(LAMBDA arguments {S-expression}* )

返回值

表达式的求值结果。

样例

下列代码中,Visual LISP 编译器不能优化被引用的 lambda 表达式:

程序1:

(mapcar
  '(lambda (x) (* x x))

       '(1 2 3))

向表达式中添加 function 函数后,编译器可对 lambda 表达式进行优化。例如:

程序2:

(mapcar
   (function (lambda (x) (* x x)))

      '(1 2 3))

发表于 2008-5-12 09:22:00 | 显示全部楼层
计算机知识
编译(compilation  , compile)
    1、利用编译程序从源语言编写的源程序产生目标程序的过程。
    2、用编译程序产生目标程序的动作。

编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
(1) 词法分析
词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。
(2) 语法分析
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。
语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。
(3) 中间代码生成
中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。中间语言有多种形式,常见的有逆波兰记号、四元式、三元式和树。
(4) 代码优化
代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。
有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的,它在很大程度上依赖于具体的计算机。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别。
(5) 目标代码生成
目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:
① 可以立即执行的机器语言代码,所有地址都重定位;
② 待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;
③ 汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。
目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。
发表于 2008-5-12 09:44:00 | 显示全部楼层
本帖最后由 作者 于 2008-5-12 16:21:52 编辑

高级语言是用低级语言编写的。

例如:×函数,5×6被定义为5个6相加。

因此高级语言是能够编译成为低级语言。

理论上,低级语言也应该能够反编译成为高级语言。但是……

将sin函数编译为成千上万的二进制加减指令后,你是否还能看出这些由千上万0101的二进制加减指令组成的是sin函数还是cos函数。

正所谓深在庐山不知庐山真面目,正如告诉你人体的每一个细胞,你不会搞得懂这些细胞组成的是张三还是李四的一样,反编译是看似可行却一辈子都办不到的事情。

发表于 2008-5-12 15:56:00 | 显示全部楼层

大家还是不要讨论这个问题了,拿出点精力解决有用的问题岂不是更好。

发表于 2008-5-28 09:56:00 | 显示全部楼层
董堃发表于2008-5-6 7:13:00alin版主能不能把你用的程序放上来,让大家看看

不是我的东西,你可以把一个藏有密码的小FAS程序传上来摆擂台,虽然我也没什么把握。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-19 17:41 , Processed in 0.228005 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表