关于逆向反汇编的编程语言的问题
C++比delphi有一个优势就是有的人多,更专业,并不是说语言有什么优势,而是一般高手都是用C的,听过一句话没有?真正的程序员用C.
并不是说你用delphi就不能学破解了,破解大部份跟汇编有关,只是在跟其他人做高级语言代码交流的时候可能会有点问题,别人看不懂你的代码,你看C代码也很吃力,如果你只是业余做做编程或者玩玩破解的话用delphi一点问题也没有,当然破解主要还是汇编的功底,有其他语言编程基础更好,如果你想专业搞逆向,进安全公司分析病毒之类的工作,那就得学C和C++了.看你自己想在这行做到什么程度了
什么是脚本语言
脚本语言的定义脚本语言(Scriptlanguages,scriptingprogramminglanguages,scriptinglanguages)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批处理语言或工作控制语言。一个脚本通常是解释运行而非编译。虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组序列。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令序列的指令,还可以编写更复杂的程序。简介脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。[1]它的命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。[2]一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。而宏语言则可视为脚本语言的分支,两者也有实质上的相同之处。[3](概述图片来源:[4])特点1、脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。HTML通常用于格式化和链接文本。而编程语言通常用于向机器发出一系列复杂的指令。2、脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相像一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.3、与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。注:脚本语言一般都有相应的脚本引擎来解释执行。他们一般需要解释器才能运行。Python、JAVASCRIPT,ASP,PHP,PERL,Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。4、脚本语言是一种解释性的语言,例如Python、vbscript,javascript,installshieldscript,ActionScript等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在,脚本语言不需要编译,可以直接用,由解释器来负责解释。5、脚本语言一般都是以文本形式存在,类似于一种命令。举个例子说:如果建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件,为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,自己的程序用这种规则来理解编写人的意图,并作出回应,那么,这一套规则就是脚本语言。[5]6、相对于编译型计算机编程语言:用脚本语言开发的程序在执行时,由其所对应的解释器(或称虚拟机)解释执行。系统程序设计语言是被预先编译成机器语言而执行的。脚本语言的主要特征是:程序代码即是脚本程序,亦是最终可执行文件。脚本语言可分为独立型和嵌入型,独立型脚本语言在其执行时完全依赖于解释器,而嵌入型脚本语言通常在编程语言中(如C,C++,VB,Java等)被嵌入使用。[1][6]7、和系统程序设计语言相比:不同是脚本语言是被解释而系统程序设计语言是被编译。被解释的语言由于没有编译时间而提供快速的转换,通过允许用户运行时编写应用程序,而不需要耗时的编译/打包过程。解释器使应用程序更加灵活,脚本语言的代码能够被实时生成和执行。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序设计师快速完成程序的编写工作。[1]编辑本段脚本语言的优缺点优点快速开发:脚本语言极大地简化了“开发、部署、测试和调试”的周期过程。容易部署:大多数脚本语言都能够随时部署,而不需要耗时的编译/打包过程。同已有技术的集成:脚本语言被Java或者COM这样的组件技术所包围,因此能够有效地利用代码。易学易用:很多脚本语言的技术要求通常要低一些,因此能够更容易地找到大量合适的技术人员。动态代码:脚本语言的代码能够被实时生成和执行,这是一项高级特性,在某些应用程序里(例如JavaScript里的动态类型)是很有用也是必需的。[7]缺点脚本语言不够全面:它们会要求一门“真正的”编程语言的存在,必须找一个数据库驱动程序将其内置进脚本语言里。脚本语言并不是软件工程和构建代码结构的最佳选择,例如面向对象和基于组件的开发。脚本语言通常不是“通用”语言,但是能够根据专门的应用来调整,例如:PHP和万维网。[7]编辑本段脚本语言的应用和发展一、应运(1):作为批次处理语言或工作控制语言。许多脚本语言用来执行一次性任务,尤其是系统管理方面。DOS,windows的批处理文件和Unix的shell脚本都属于这种应用;(2):作为通用的编程语言存在,如Perl、Python、Ruby等。由于“解释执行,内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看作脚本语言;(3):许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言。同样地,许多电脑游戏系统使用一种自定义脚本语言来表现NPC(Non-PlayerCharacter,Non-PlayableCharacter,Non-PlayerClass)和游戏环境的预编程动作。此类语言通常是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如QuakeC,MODeledAfterC),但它们有自定义的功能;(4):网页中的嵌入式脚本语言。熟知的HTML(HyperTextMark-upLanguage)即超文本标记语言,就是一种脚本语言,它的解释器就是浏览器。JavaScript直到现在仍然是网页浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入式脚本语言。另外,随着动态网页技术发展,ASP、JSP、PHP等嵌入网页的脚本语言正被广泛使用,不过这些脚本要通过WebServer解释,而Html则被浏览器执行;(5):脚本语言在系统应用程序中嵌入使用,作为用户与系统的接口方式。在工业控制领域,PLC编程、组态软件的脚本语言是扩充组态系统功能的重要手段;在通信平台领域,IVR(自动语音应答)流程编程;Office办公软件,提供的宏和VBA;其他应用软件如ERStudio提供的BasicMacroEditor,用户可以编写SaxBasic脚本操作ER图,生成Access库、导出Word文档等扩展功能。[8]这类的常见的有JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua。脚本语言的特点是语法简单,一般以文本形式保存,并且不需要编译成目标程序,在调用的时候直接解释。这可以当做是脚本语言的判断标准,比如说JavaScript,你只需要用记事本新建一个Html文件,在里面加上一段脚本就可以了,在浏览器打开Html文件时自然会调用JS脚本。[9]一、工作控制语言和shellShell脚本此类脚本用于自动化工作控制,即启动和控制系统程序的行为。大多的脚本语言解释器也同时是命令行界面,如Unixshell和MS-DOScommand。其他如AppleScript,可以为系统增加脚本环境,但没有命令行界面。具体分类有:1.4NT2.AppleScript3.ARexx(AmigaRexx)4.bash5.csh6.DCL7.JCL8.ksh9.Cmd.exebatch(Windows,OS/2)10.commandbatch(DOS)11.REXX12.tcsh13.sh14.Winbatch15.WindowsPowerShell16.WindowsScriptHost17.zsh二、GUI脚本GUI出现带来一种专业的控制计算机的脚本语言。它在用户和图形界面,菜单,按钮等之间互动。它经常用来自动化重复性动作,或设置一个标准状态。理论上它可以用来控制运行于基于GUI的计算机上的所有应用程序,但实际上这些语言是否被支持还要看应用程序和操作系统本身。当通过键盘进行互动时,这些语言也被称为宏语言。具体分类有:1.AutoHotkey2.AutoIt3.Expect三、应用程序定制的脚本语言许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言。同样地,许多电脑游戏系统使用一种自定义脚本语言来表现NPC(non-playercharacter,non-playablecharacter,non-playerclass)和游戏环境的预编程动作。此类语言通常是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如QuakeC,modeledafterC),但它们有自定义的功能。具体分类:1.ActionCodeScript2.ActionScript3.AutoLISP4.BlobbieScript5.EmacsLisp6.GameMakerLanguage7.HyperTalk8.IPTSCRAE9.IRCscript10.Lingo11.MatlabEmbeddedLanguage12.MayaEmbeddedLanguage13.mIRCscript14.NWscript15.QuakeC16.UnrealScript17.VisualBasicforApplications18.VBScript19.ZZT-oop四、WEB编程脚本应用程序定制的脚本语言中有一种重要的类别,用于提供WEB页面的自定义功能。它专业处理互联网通信,使用网页浏览器作为用户界面。当然,大多现代WEB编程语言都比较强大可以做一些通用编程。具体分类:1.ColdFusion(ApplicationServer)2.Lasso3.Miva4.SMX5.IPTSCRAE-一些网络开发团队用于创建论坛的工具五、文本处理语言处理基于文本的记录是脚本语言最早的用处之一。如Unixsawk最早是设计来帮助系统管理员处理调用UNIX基于文本的配置和LOG文件。Perl最早是用来产生报告的,现在它已经成了全面成熟的语言。具体分类:1.Awk2.Perl3.sed4.XSLT六、通用动态语言一些语言,比如Perl,从一门脚本语言发展成了更通用的编程语言。由于“解释执行,内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看作脚本语言。1.APL2.Dao3.Dylan4.Groovy5.Lua6.MUMPS(M)[10]7.newLISP8.Nuva9.Perl10.PHP11.Python12.Ruby13.Scheme14.Smalltalk15.SuperCard16.Tcl(Toolcommandlanguage)七、扩展/可嵌入语言少数的语言被设计通过嵌入应用程序来取代应用程序定制的脚本语言。开发者(如使用C等其它系统语言)包入使脚本语言可以控制应用程序的hook。这些语言和应用程序定制的脚本语言是同种用途,但优点在于可以在应用程序之间传递一些技能。具体分类:1.Ch(C/C++interpreter)2.Dao3.ECMAScript亦称DMDScript,JavaScript,JScript4.GameMonkeyScript5.Guile6.ICI7.Lua8.RBScript(REALbasicScript)9.Squirrel10.Tcl11.Z-ScriptJavaScript直到现在仍然是网页浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入性语言。Tcl作为一种扩展性语言而创建,但更多地被用作通用性语言,就如同Python,Perl,Ruby一样。八、其它1.BeanShell(scriptingforJava)2.CobolScript3.Escapade(serversidescripting)4.Euphoria5.F-Script6.Ferite7.Groovy8.Gui4Cli9.Io10.KiXtart11.Mondrian12.ObjectREXX13.Pike14.Pliant15.REBOL16.ScriptBasic17.ShorthandLanguage18.Simkin19.Sleep20.StepTalk21.VisualDialogScript
具体的百度百科上有介绍,可以去看看~望采纳!