## 样式提示
### 编辑配置
让您的编辑器负责格代码式化,您可以在验收过程中不会头痛。大多数Metasploit的贡献者使用vim或gvim作为默认的文本编辑器 - 如果你有一个其他编辑器的配置,我们很乐意看到它!
#### vim和gvim
将以下设置添加到.vimrc将使得符合[CONTRIBUTING.md](https://github.com/rapid7/metasploit-framework/blob/master/CONTRIBUTING.md)和[msftidy.rb](https://github.com/rapid7/metasploit-framework/blob/master/tools/msftidy.rb)的规则变得相当容易。
顺便说一句,如果你安装了vim的[Janus Distribution](https://github.com/carlhuda/janus)插件,这一切都是为你自动完成的。但是,如果你是一个特殊的snowflake,那么下面就是让你的代码格式化的好方法。
~~~
set shiftwidth=2 tabstop=2 softtabstop=2
" textwidth affects `gq` which is handy for formatting comments
set textwidth=78
" Metasploit requires spaces instead of hard tabs
set expandtab
" Highlight spaces at EOL and mixed tabs and spaces.
hi BogusWhitespace ctermbg=darkgreen guibg=darkgreen
match BogusWhitespace /\s\+$\|^\t\+ \+\|^ \+\t\+/
~~~
如果您希望这些设置仅适用于ruby文件,则可以使用自动组和自动命令。
~~~
if !exists("au_loaded")
let au_loaded = 1
augroup rb
au FileType ruby set shiftwidth=2 tabstop=2 softtabstop=2 textwidth=78
au FileType ruby set expandtab
au FileType ruby hi BogusWhitespace ctermbg=darkgreen guibg=darkgreen
au FileType ruby match BogusWhitespace /\s\+$\|^\t\+ \+\|^ \+\t\+/
augroup END
endif
~~~
您也可以使用`:set list` 查看所有空格作为不同的字符,以便更容易看到错误的空白。
#### Rubymine
鉴于切换到使用标准的Ruby缩进,RubyMine不再需要特殊的配置。生活在双个空格的tab!
### 语法和大写
虽然我们知道世界上有很多种语言,弹Metasploit主要是用美国英语开发的。因此,模块中的描述语法应符合美国英语惯例。这样做不仅可以确保大多数Metasploit用户的易用性,还可以帮助自动(和手动)翻译成其他语言。
#### 标题
模块标题应该像标题一样阅读。有关英文的大写规则,请参阅:http://owl.english.purdue.edu/owl/resource/592/01/
唯一的例外是函数名称(如'thisFunc()')和特定的文件名(如thisfile.ocx)。应该当为模块标题,所以第一个和最后一个词都以大写字母开头,因为这是一个msftidy.rb检查。
- Home
- 开始使用
- 安装metasploit开发环境
- 使用metasploit
- 使用git
- 报告一个bug
- 贡献代码
- 贡献给metasploit
- 创建一个loginscans Metasploit模块
- 接受模块和增强功能的指导
- 常见的Metasploit模块代码错误
- 样式提示
- metasploit提交者
- metasploit开发
- 为什么是ruby
- 样式提示
- 如何开始写一个exploit
- 如何开始写一个辅助模块
- 如何开始写一个post模块
- 如何开始写一个Meterpreter脚本
- 载入外部模块
- exploit rank
- Metasploit模块引用标识符
- 怎么在你的exploit中确认window补丁程序级别
- 如何使用filedropper清理文件
- 如何弃用metasploit模块
- 如何在模块开发中报告或储存数据
- 在metasploit如何使用日志
- 如何在metasploit对JavaScript进行混淆
- 如何解析一个http响应
- 如何使用HTTPClient发送HTTP请求
- 如何使用命令阶段
- 如何使用数据储存选项
- 如何在window后期开发中使用railgun
- 如何在exploit中使用powershell
- 如何使用PhpEXE来利用任意文件上传漏洞
- 如何使用FILEFORMAT mixin创建一个文件格式exploit
- 如何使用BrowserExploitServer编写一个浏览器exploit
- 如何使用HttpServer编写浏览器exploit
- 如何编写一个check()方法
- 如何使用Seh mixin来利用异常处理程序
- 如何在Windows上使用WbemExec进行写入权限攻击
- 如何使用httpserver和httpclient编写一个模块
- payloads如何工作
- 如何免杀
- 如何正确使用metasploit模块