如何学习编程

想做软件逆向不知道该学什么.... 想做软件逆向不知道该学什么. 展开
 我来答
来想即神仙c
2019-12-01
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
美图赏
2017-09-07
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
逆向工程,有的人也叫反求工程,英文是reverse engineering,大意是根据已有的东西和结果,通过分析来推导出具体的实现方法。
比如你看到别人写的某个exe程序能够做出某种漂亮的动画效果,你通过反汇编、反编译和动态跟踪等方法,分析出其动画效果的实现过程,这种行为就是逆向工程;不仅仅是反编译,而且还要推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
反求技术包括影像反求、软件反求及实物反求等三方面。目前相对最多人研究的是实物反求技术。它是研究实物CAD模型的重建和最终产品的制造。狭义来说,三维反求技术是将实物模型数据化成设计、概念模型,并在此基础上对产品进行分析、修改及优化等技术。
逆向工程软件功能通常都是集中于处理和优化密集的扫描点云以生成更规则的结果点云,通过规则的点云可以应用于快速成型,也可以根据这些规则的点云构建出最终的NURBS曲面以输入到CAD软件进行后续的结构和功能设计工作。
目前主流应用的四大逆向工程软件:Imageware、Geomagic Studio、CopyCAD、RapidForm、Ug。

一、Imageware
Imageware 由美国 EDS 公司出品,是最著名的逆向工程软件,正被广泛应用于汽车、航空、航天、消费家电、模具、计算机零部件等设计与制造领域。该软件拥有广大的用户群,国外有 BMW、Boeing、GM、Chrysler、Ford、raytheon、Toyota 等著名国际大公司,国内则有上海大众、上海交大、上海 DELPHI、成都飞机制造公司等大企业。
以前该软件主要被应用于航空航天和汽车工业,因为这两个领域对空气动力学性能要求很高,在产品开发的开始阶段就要认真考虑空气动力性。常规的设计流程首先根据工业造型需要设计出结构,制作出油泥模型之后将其送到风洞实验室去测量空气动力学性能,然后再根据实验结果对模型进行反复修改直到获得满意结果为止,如此所得到的最终油泥模型才是符合需要的模型。如何将油泥模型的外形精确地输入计算机成为电子模型,这就需要采用逆向工程软件。首先利用三坐标测量仪器测出模型表面点阵数据,然后利用逆向工程软件(例如:Imageware surfacer)进行处理即可获得 class 1 曲面。
随着科学技术的进步和消费水平的不断提高,其它许多行业也开始纷纷采用逆向工程软件进行产品设计。以微软公司生产的鼠标器为例,就其功能而言,只需要有三个按键就可以满足使用需要,但是,怎样才能让鼠标器的手感最好,而且经过长时间使用也不易产生疲劳感却是生产厂商需要认真考虑的问题。因此微软公司首先根据人体工程学制作了几个模型并交给使用者评估,然后根据评估意见对模型直接进行修改,直至修改到大家都满意为止,最后再将模型数据利用逆向工程软件 Imageware 生成 CAD 数据。当产品推向市场后,由于外观新颖、曲线流畅,再加上手感也很好,符合人体工程学原理,因而迅速获得用户的广泛认可,产品的市场占有率大幅度上升。
Imageware 逆向工程软件的主要产品有:
Surfacer——逆向工程工具和 class 1 曲面生成工具
Verdict——对测量数据和CAD数据进行对比评估
Build it——提供实时测量能力,验证产品的制造性
RPM——生成快速成型数据
View——功能与 Verdict 相似,主要用于提供三维报告
它的版本顺序是:
.....
.....
surfacer V9
surfacer V10 /10.5/10.6
Freeform 8m3
Imageware V9
Imageware V10/10.1
Imageware V11/11.1
Imageware V12.0
Imageware 采用 NURB 技术,软件功能强大,易于应用。Imageware 对硬件要求不高,可运行于各种平台:UNIX 工作站、PC 机均可,操作系统可以是 UNIX、NT、Windows95 及其它平台。
Imageware 由于在逆向工程方面具有技术先进性,产品一经推出就占领了很大市场分额,软件收益正以 47% 的年速率快速增长。
Imageware 处理数据的流程遵循点——曲线——曲面原则,流程简单清晰,软件易于使用。其流程如下
1、点过程
读入点阵数据。
Imageware 可以接收几乎所有的三坐标测量数据,此外还可以接收其它格式,例如:STL、VDA 等。
将分离的点阵对齐在一起(如果需要)。
有时候由于零件形状复杂,一次扫描无法获得全部的数据,或是零件较大无法一次扫描完成,这就需要移动或旋转零件,这样会得到很多单独的点阵。Imageware可以利用诸如圆柱面、球面、平面等特殊的点信息将点阵准确对齐。
对点阵进行判断,去除噪音点(即测量误差点)。
由于受到测量工具及测量方式的限制,有时会出现一些噪音点,Imageware有很多工具来对点阵进行判断并去掉噪音点,以保证结果的准确性。
通过可视化点阵观察和判断,规划如何创建曲面。
一个零件,是由很多单独的曲面构成,对于每一个曲面,可根据特性判断用用什么方式来构成。例如,如果曲面可以直接由点的网格生成,就可以考虑直接采用这一片点阵;如果曲面需要采用多段曲线蒙皮,就可以考虑截取点的分段。提前作出规划可以避免以后走弯路。
根据需要创建点的网格或点的分段。
Imageware能提供很多种生成点的网格和点的分段工具,这些工具使用起来灵活方便,还可以一次生成多个点的分段。
2、曲线创建过程
判断和决定生成哪种类型的曲线。
曲线可以是精确通过点阵的、也可以是很光顺的(捕捉点阵代表的曲线主要形状),或介于两者之间。
创建曲线。
根据需要创建曲线,可以改变控制点的数目来调整曲线。控制点增多则形状吻合度好,控制点减少则曲线较为光顺。
诊断和修改曲线。
可以通过曲线的曲率来判断曲线的光顺性,可以检查曲线与点阵的吻合性,还可以改变曲线与其它曲线的连续性(连接、相切、曲率连续)。Imageware提供很多工具来调整和修改曲线。
3、曲面创建过程
决定生成那种曲面。
同曲线一样,可以考虑生成更准确的曲面、更光顺的曲面(例如 class 1 曲面),或两者兼顾,可根据产品设计需要来决定。 .
创建曲面。
创建曲面的方法很多,可以用点阵直接生成曲面(Fit free form),可以用曲线通过蒙皮、扫掠、四个边界线等方法生成曲面,也可以结合点阵和曲线的信息来创建曲面。还可以通过其它例如园角、过桥面等生成曲面。
诊断和修改曲面。
比较曲面与点阵的吻合程度,检查曲面的光顺性及与其它曲面的连续性,同时可以进行修改,例如可以让曲面与点阵对齐,可以调整曲面的控制点让曲面更光顺,或对曲面进行重构等处理。
正是由于 Imageware 在计算机辅助曲面检查、曲面造型及快速样件等方面具有其它软件无可匹敌的强大功能,使它当之无愧的成为逆向工程领域的领导者。
二、Geomagic Studio
由美国 Raindrop (雨滴)公司出品的逆向工程和三维检测软件 Geomagic Studio 可轻易地从扫描所得的点云数据创建出完美的多边形模型和网格,并可自动转换为 NURBS 曲面。该软件也是除了 Imageware 以外应用最为广泛的逆向工程软件。
Geomagic Studio 主要包括 Qualify、Shape、Wrap、Decimate、Capture 五个模块。主要功能包括:
自动将点云数据转换为多边形(Polygons)
快速减少多边形数目(Decimate)
把多边形转换为 NURBS 曲面
曲面分析(公差分析等)
输出与 CAD/CAM/CAE 匹配的文件格式(IGS、STL、DXF等)
1.从CAD数模得到的产品模型
2.将CAD模型读入 Geomagic Studio
3.CAD 设计模型与从实际模型扫描所得的点云数据(不同坐标系)      
4.扫描数据与CAD模型的自动对合
5.扫描数据与CAD模型的自动对齐
6.误差以彩色图形直观显示
7.用户可标出任意点误差
8. Qualify 的结果可以输出为 HTML 格式  
三、CopyCAD
CopyCAD 是由英国 DELCAM 公司出品的功能强大的逆向工程系统软件,它能允许从已存在的零件或实体模型中产生三维CAD模型。该软件为来自数字化数据的 CAD 曲面的产生提供了复杂的工具。CopyCAD 能够接受来自坐标测量机床的数据,同时跟踪机床和激光扫描器。
CopyCAD 简单的用户界面允许用户在尽可能短的时间内进行生产,并且能够快速掌握其功能,即使对于初次使用者也能做到这点。使用 CopyCAD 的用户将能够快速编辑数字化数据,产生具有高质量的复杂曲面。该软件系统可以完全控制曲面边界的选取,然后根据设定的公差能够自动产生光滑的多块曲面 ,同时,CopyCAD 还能够确保在连接曲面之间的正切的连续性。
该软件的主要功能如下:
数字化点数据输入
DUCT 图形和三角模型文件
CNC 坐标测量机床
分隔的 ASCII 码和 NC 文件
激光扫描器、三维扫描器和 SCANTRON
PC ArtCAM
Renishaw MOD 文件
点操作
能够进行相加、相减、删除、移动以及点的隐藏和标记等点编辑
能够为测量探针大小对模型的三维偏置进行补偿
能够进行模型的转换、缩放、旋转和镜像等模型转换
能够对平面、多边形或其它模型进行模型裁剪
三角测量
在用户定义的公差和选项内的数字化模型的三角测量,包括:
① 原始的——法线设置
② 尖锐——尖锐特征强化
③ 特征匹配——来自点法线数据的特征
④ 关闭三角测量——为了快速绘图可以关闭模型
特征线的产生
边界——转换模型外边缘为特征线
间断——为找到简单的特征(如凸出和凹下)而探测数据里的尖锐边缘能够转换数字化扫描线为特征线
输入的数据——能够从点文件中摘录多线条和样条曲线
曲面构造
通过在三角测量模型上跟踪直线产生多样化曲面
在连接的曲面之间,用已存在的曲面定义带有选项的正切连续性的边界
使用特征线指导和加快曲面定义
曲面错误检查
比较曲面与数字化点数据
报告最大限、中间值和标准值的错误背离
错误图形形象地显示变化
输出
IGES、CADDS4X
TL ASCII 码和二进制
DUCT 图形、三角模型和曲面分隔的
ASCII 码
四、RapidForm
RapidForm 是韩国 INUS 公司出品的全球四大逆向工程软件之一,RapidForm 提供了新一代运算模式,可实时将点云数据运算出无接缝的多边形曲面,使它成为 3D Scan 后处理之最佳化的接口。RapidForm 也将使您的工作效率提升,使 3D 扫描设备的运用范围扩大,改善扫描品质。
多点云数据管理介面
高级光学 3D 扫描仪会产生大量的数据(可达 100,000 ~ 200,000点),由于数据非常庞大,因此需要昂贵的电脑硬件才可以运算,现在 RapidForm 提供记忆管理技术(使用更少的系统资源)可缩短您处理数据的时间。
多点云处理技术
可以迅速处理庞大的点云数据,不论是稀疏的点云还是跳点都可以轻易地转换成非常好的点云, RapidForm 提供过滤点云工具以及分析表面偏差的技术来消除 3D 扫描仪所产生的不良点云。
快速点云转换成多边形曲面的计算法
在所有逆向工程软件中,RapidForm 提供一个特别的计算技术,针对 3D 及 2D 处理是同类型计算,软件提供了一个最快最可靠的计算方法,可以将点云快速计算出多边形曲面。RapidForm 能处理无顺序排列的点数据以及有顺序排列的点数据。
彩色点云数据处理
RapidForm 支持彩色 3D 扫描仪,可以生成最佳化的多边形,并将颜色信息映像在多边形模型中。在曲面设计过程中,颜色信息将完整保存,也可以运用 RP 成型机制作出有颜色信息的模型。RapidForm 也提供上色功能,通过实时上色编辑工具,使用者可以直接对模型编辑自己喜欢的颜色。
点云合并功能
多个点扫描数据有可能经手动方式将特殊的点云加以合并,当然,RapidForm 也提供一技术,使用者可以方便地对点云数据进行各种各样的合并。
注:Roland 模具加工机随机所附的 PixForm 软件为 RapidForm 的 OEM 软件。
RapidformXO Redesign允许工程师捕捉实际物体的设计意图和设计参数,这些东西可能在制造过程中失去他们的定义特征或根本没有CAD模型。三维扫描技术和RapidformXO Redesign给制造者提供了抽取实际物体的设计参数的自由和弹性,这包括了棱柱特征和自由曲面。因为RapidformXO Redesign里生成的CAD模型是完全参数化的,设计者和工程师可以在RapidformXO Redesign或另一个下游CAD系统中修改实际物体的设计参数,从而完善这个模型,使它能被批量生产。
RapidformXO Redesign是一个创新的软件方案,它能够帮助工程师利用3D扫描资料和多边形资料创作出参量CAD立体图。XOR使用的是标准立体和平面造型工作流程和工程师所熟悉的用户界面,因而这种软件方案只需要很少的培训,并且还能够降低处理3D扫描资料所需要的时间,它还能制作出使用当今工程软件所无法制作的最高质量的产品。任何人,只要会使用SolidWorks, CATIA, Pro/ENGINEER 或Unigraphics都可以开始马上使用XOR进行造型处理。

你好,本题已解答,如果满意
请点右下角“采纳答案”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syq389389
2017-09-07
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
刚开始学习编程语言,要怎么去做,动手编写一个编译器,学习一下较为底层的编程方式,是一种学习计算机到底是如何工作的非常有效方法。编译器通常被看作是十分复杂的工程。事实上,编写一个产品级的编译器也确实是一个庞大的任务。但是写一个小巧可用的编译器却不是这么困难。
这个秘密是,首先介绍编程入门教程,找到尽可能小的项目,然后想要的功能加入。这种方法也意味着在他那篇著名的文章中提到的“一个编译器构造的快捷方式”阿卜杜勒阿齐兹Ghuloum说。但是这种方法确实工作。只需要按照第一步操作本文中,可以得到一个真正可用的编译器。当然,它只能被编译的编程语言是非常小的子集,但它确实是一个真正的编译器可用。你可以自由地扩展这个编译器,然后了解更多,更深的了解。
从某种意义上来说这比写一个scheme的编译器要困难一些(因为必须去解析C那复杂的语法),但是在某些方面又很便利(不需要去处理运行时类型)。要写这样一个编译器,只需要从那个可用的最小的编译器开始。没有变量,没有函数调用,没有额外的依赖,甚至连if语句,循环语句都没有,一切看起来是那么简单。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式