2.1 代码编辑器

不管是做开发还是代码审计,一款顺手的代码编辑器必不可少,代码编辑器从轻量级到功能复杂强大的完备型,从免费到商业,都有很多款供我们选择,我们可以根据需要选择最适合的一款,常用的轻量级代码编辑器有Nodepad++、Editplus、UltraEdit、PSPad、Vim、Gedit,等等,这些都是都是通用型文本编辑器,支持多种编程语言代码高亮,优点是操作简单,启动快并且对文本操作很方便。常用的完备型PHP开发软件也不少,这类编辑器主要的优点是功能全,对代码调试、代码提示等都支持得比较好,使我们在开发的时候bug更少,开发效率更高,常用的有Zend Studio、PhpStorm、PhpDesigner以及NetBeans等。

如果你用编辑器来做开发,并且代码量比较大,建议你使用Zend Studio。如果用来做代码审计或者少量代码的开发,建议使用Nodepad++这类轻量级文本编辑器。

2.1.1 Notepad++

Notepad++是一套非常有特色的开源纯文字编辑器(许可证:GPL),运行于Windows系统,有完整的中文接口及支持多国语言撰写的功能(UTF8技术)。它的功能比Windows中的 Notepad(记事本)强大,除了可以用来编辑一般的纯文字文件之外,也十分适合轻量开发的编辑器。Notepad++不仅有语法高亮显示功能,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。

Notepad++可以安装免费使用。支持如下语言的代码高亮显示:C、C++、Java、C#、XML、HTML、PHP、ASP、AutoIt、DOS批处理、CSS、ActionScript、Fortran、Gui4Cli、Haskell、JSP、Lisp、Lua、Matlab、NSIS、Objective-C、Pascal、Python、JavaScript等。

Notepad++拥有非常多强大的功能,特别是对文本操作非常灵活,这是笔者用得最多的一个文本编辑器,经常用来做一些有特定格式的文本批量替换、搜索、去重,等等。当然,它的强大不止如此。下面简单介绍下它的核心功能:

1)内置支持多达27种语法高亮显示(包括各种常见的源代码、脚本,能够很好地支持.nfo文件查看),还支持自定义语言。

2)可自动检测文件类型,根据关键字显示节点,节点可自由折叠/展开,还可显示缩进引导线,代码显示得很有层次感。

3)可打开双窗口,在分窗口中又可打开多个子窗口,显示比例。

4)提供了一些有用工具,如邻行互换位置、宏功能等。

5)可显示选中的文本的字节数(而不是一般编辑器所显示的字数,这在某些情况下很方便,比如软件本地化)。

6)正则匹配字符串及批量替换,也支持批量文件操作。

7)强大的插件机制,扩展了编辑能力,如Zen Coding。

我们可以在官网Notepad++官网(notepad-plus-plus.org)下载最新版。主界面如图2-1所示。

图2-1

2.1.2 UltraEdit

UltraEdit(官网www.ultraedit.com)是一款功能强大的文本编辑器,不过它不是开源软件,官网售价79.95美元,可以完美运行在Windows、Linux以及Mac系统上。这款编辑器不仅可以编辑文本,还支持十六进制查看以及编辑。可以直接在上面修改exe等文件,如图2-2所示。

图2-2

该编辑器支持将近二十种编程语言的语法高亮显示,可同时编辑多个文件,支持打开超过4GB以上的文件,支持多种编码转换、排序去重。通过配置使用的脚本运行程序路径,比如php.exe的路径,就可以在使用UltraEdit编辑PHP代码的时候直接执行代码。再结合它的代码补全功能,它也算得上一款不错的代码编辑器。要实现这个功能,首先在“高级→工具栏配置”中配置一些执行环境参数,在“命令行”的位置填入你的PHP文件路径,在“菜单项目名称”上写你想填的菜单栏名称,这里写的是php. exe,在“工作目录”中写上你的PHP exe路径,然后点击“确定”按钮,即可新建一个文件。在“高级”菜单里面点一下添加的php.exe(菜单栏名称)即可执行代码,如图2-3所示。

图2-3

另外一个比较好的功能是文件对比。这个功能也是经常会用到的,特别是我们在分析开源程序发布的官方补丁时,比如Phpcms某天发布了一个代码执行漏洞修补补丁,那么我们就可以在官网下载补丁文件,然后利用UltraEdit的文件对比功能来快速找到修改了哪段代码,修改的部分是不是成功修补了这个漏洞,或者未公开的漏洞。也可以根据这个方法快速找到漏洞在哪里。

这个功能可以在菜单栏“文件→比较文件”中找到,然后选择要对比的两个以上文件,勾选“比较选项”里面以忽略开头的所有选项,点击“比较”按钮即可,如图2-4所示。

图2-4

如果比较的文件有不同的地方,它会用红色标出,如图2-5所示。

图2-5

UltraEdit被公认为程序员必备的编辑器,是能够满足你一切编辑需要的编辑器。

2.1.3 Zend Studio

Zend Studio与PHP出自同一家公司,也可以说Zend Studio是PHP官方专门开发出来用来编写PHP代码的代码编辑器。Zend Studio是目前用户量最大的PHP开发工具,也是屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法高亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能,可以完美运行在目前主流的Windows、Linux以及Mac操作系统上。官网是http://www.zend.com/en/products/studio。

Zend Studio 10.6版本的界面截图如图2-6所示。

图2-6

Zend Studio最令笔者最喜欢的功能是代码提示功能,实际上,只要这个功能做得好的编辑器,笔者都非常喜欢,因为这非常人性化,可以让我们不用去记那么多函数,等你经常用的编程语言超过了6种以上,你就会深有感触。代码提示功能如图2-7所示。

图2-7

另外Zend Studio在代码调试方面也非常强大,支持多种调试模式,利用它的调试功能,可以让我们非常快地发现bug位置,监控数据传递过程和函数运行情况,如图2-8所示。

图2-8