pwn 0.4.724 → 0.4.726

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 773a40510fe4c7bc057eebfc33c63d701cda43b132f6149328fb33d580eef900
4
- data.tar.gz: 53b90dbf1d2486c6181f538821b05c18390419b81dc7e64b729ec74c5a5679ba
3
+ metadata.gz: cc4383903a4103b4802983aecfb742f7782f4dce4c753b1e5508153910c6fe50
4
+ data.tar.gz: cb369d172afcd4248c432a1e00eca876a454466aa7ed035224ee30e04afdfeff
5
5
  SHA512:
6
- metadata.gz: 878bae890dab8a8a53312498f92ff8c43e40cc7f6c29e4dba0b464b09c1de7c3c7c86b6bf88114db4b7d3655c38b4afc2f411de55bab8033173c575793bee38d
7
- data.tar.gz: 506c58b5456d0dfc7183e345940e7f48279a13d299e45acbe6079f8421d49254c19496572e8e0f37bc2875ec859195fb87c2f7c982d15b27ba122c477f537df3
6
+ metadata.gz: 46a0fe498e9c91b8d66f9e9576c4839437ae9e8d26f19963a2900005b538a9ebef5d256a20331691a18b332f2e45dee0ed1d80276c972256c0fd1010691ae745
7
+ data.tar.gz: fe567d6804e55d11d95b4ce82dd1e3e086dacaf8fcd9b88cac9b445743fee632af6761948f082c6babc1d6121a86bdb467ee10f41c84a34f5540021ad6fd2e78
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  ._*
2
+ .each*
2
3
  *.swp
3
4
  *.gem
4
5
  *.rbc
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.2.2@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.724]:001 >>> PWN.help
40
+ pwn[v0.4.726]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-3.2.2@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.724]:001 >>> PWN.help
55
+ pwn[v0.4.726]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -0,0 +1,209 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+ require 'securerandom'
5
+ require 'tty-spinner'
6
+
7
+ module PWN
8
+ module Plugins
9
+ # This plugin is used for interacting w/ the Black Duck Binary Analysis
10
+ # REST API using the 'rest' browser type of PWN::Plugins::TransparentBrowser.
11
+ # This is based on the following Black Duck Binary Analysis API Specification:
12
+ # https://protecode-sc.com/help/api
13
+ module BlackDuckBinaryAnalysis
14
+ # Supported Method Parameters::
15
+ # bd_bin_analysis_rest_call(
16
+ # token: 'required - Black Duck Binary Analysis API token',
17
+ # http_method: 'optional HTTP method (defaults to GET)
18
+ # rest_call: 'required rest call to make per the schema',
19
+ # params: 'optional params passed in the URI or HTTP Headers',
20
+ # http_body: 'optional HTTP body sent in HTTP methods that support it e.g. POST'
21
+ # )
22
+
23
+ private_class_method def self.bd_bin_analysis_rest_call(opts = {})
24
+ http_method = if opts[:http_method].nil?
25
+ :get
26
+ else
27
+ opts[:http_method].to_s.scrub.to_sym
28
+ end
29
+ rest_call = opts[:rest_call].to_s.scrub
30
+ params = opts[:params]
31
+ http_body = opts[:http_body]
32
+ http_body ||= {}
33
+ base_bd_bin_analysis_api_uri = 'https://protocode-sc.com/api'
34
+ token = opts[:token]
35
+
36
+ content_type = 'application/json; charset=UTF-8'
37
+
38
+ browser_obj = PWN::Plugins::TransparentBrowser.open(browser_type: :rest)
39
+ rest_client = browser_obj[:browser]::Request
40
+
41
+ spinner = TTY::Spinner.new
42
+ spinner.auto_spin
43
+
44
+ case http_method
45
+ when :delete
46
+ response = rest_client.execute(
47
+ method: :delete,
48
+ url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
49
+ headers: {
50
+ content_type: content_type,
51
+ authorization: "Bearer #{token}",
52
+ params: params
53
+ },
54
+ verify_ssl: false
55
+ )
56
+
57
+ when :get
58
+ response = rest_client.execute(
59
+ method: :get,
60
+ url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
61
+ headers: {
62
+ content_type: content_type,
63
+ authorization: "Bearer #{token}",
64
+ params: params
65
+ },
66
+ verify_ssl: false
67
+ )
68
+
69
+ when :post
70
+ if http_body.key?(:multipart)
71
+ response = rest_client.execute(
72
+ method: :post,
73
+ url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
74
+ headers: {
75
+ authorization: "Bearer #{token}"
76
+ },
77
+ payload: http_body,
78
+ verify_ssl: false
79
+ )
80
+ else
81
+ response = rest_client.execute(
82
+ method: :post,
83
+ url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
84
+ headers: {
85
+ content_type: content_type,
86
+ authorization: "Bearer #{token}"
87
+ },
88
+ payload: http_body.to_json,
89
+ verify_ssl: false
90
+ )
91
+ end
92
+
93
+ when :put
94
+ if http_body.key?(:multipart)
95
+ response = rest_client.execute(
96
+ method: :put,
97
+ url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
98
+ headers: {
99
+ authorization: "Bearer #{token}"
100
+ },
101
+ payload: http_body,
102
+ verify_ssl: false
103
+ )
104
+ else
105
+ response = rest_client.execute(
106
+ method: :post,
107
+ url: "#{base_bd_bin_analysis_api_uri}/#{rest_call}",
108
+ headers: {
109
+ content_type: content_type,
110
+ authorization: "Bearer #{token}"
111
+ },
112
+ payload: http_body.to_json,
113
+ verify_ssl: false
114
+ )
115
+ end
116
+
117
+ else
118
+ raise @@logger.error("Unsupported HTTP Method #{http_method} for #{self} Plugin")
119
+ end
120
+ response
121
+ rescue StandardError => e
122
+ case e.message
123
+ when '400 Bad Request', '404 Resource Not Found'
124
+ "#{e.message}: #{e.response}"
125
+ else
126
+ raise e
127
+ end
128
+ ensure
129
+ spinner.stop
130
+ end
131
+
132
+ # Supported Method Parameters::
133
+ # response = PWN::Plugins::BlackDuckBinaryAnalysis.get_groups(
134
+ # token: 'required - Bearer token'
135
+ # )
136
+
137
+ public_class_method def self.get_groups(opts = {})
138
+ token = opts[:token]
139
+
140
+ response = bd_bin_analysis_rest_call(
141
+ token: token,
142
+ rest_call: 'groups'
143
+ )
144
+
145
+ JSON.parse(response, symbolize_names: true)
146
+ rescue StandardError => e
147
+ raise e
148
+ end
149
+
150
+ # Supported Method Parameters::
151
+ # response = PWN::Plugins::BlackDuckBinaryAnalysis.upload_file(
152
+ # token: 'required - Bearer token',
153
+ # file: 'required - file to upload',
154
+ # purpose: 'optional - intended purpose of the uploaded documents (defaults to fine-tune'
155
+ # )
156
+
157
+ public_class_method def self.upload_file(opts = {})
158
+ token = opts[:token]
159
+ file = opts[:file]
160
+ raise "ERROR: #{file} not found." unless File.exist?(file)
161
+
162
+ purpose = opts[:purpose]
163
+ purpose ||= 'fine-tune'
164
+
165
+ http_body = {
166
+ multipart: true,
167
+ file: File.new(file, 'rb'),
168
+ purpose: purpose
169
+ }
170
+
171
+ response = bd_bin_analysis_rest_call(
172
+ http_method: :post,
173
+ token: token,
174
+ rest_call: 'files',
175
+ http_body: http_body
176
+ )
177
+
178
+ JSON.parse(response, symbolize_names: true)
179
+ rescue StandardError => e
180
+ raise e
181
+ end
182
+
183
+ # Author(s):: 0day Inc. <request.pentest@0dayinc.com>
184
+
185
+ public_class_method def self.authors
186
+ "AUTHOR(S):
187
+ 0day Inc. <request.pentest@0dayinc.com>
188
+ "
189
+ end
190
+
191
+ # Display Usage for this Module
192
+
193
+ public_class_method def self.help
194
+ puts "USAGE:
195
+ response = #{self}.get_groups(
196
+ token: 'required - Bearer token'
197
+ )
198
+
199
+ response = #{self}.upload_file(
200
+ token: 'required - Black Duck Binary Analysis API token',
201
+ file: 'required - file to upload'
202
+ )
203
+
204
+ #{self}.authors
205
+ "
206
+ end
207
+ end
208
+ end
209
+ end
data/lib/pwn/plugins.rb CHANGED
@@ -11,6 +11,7 @@ module PWN
11
11
  autoload :BareSIP, 'pwn/plugins/baresip'
12
12
  autoload :BasicAuth, 'pwn/plugins/basic_auth'
13
13
  autoload :BeEF, 'pwn/plugins/beef'
14
+ autoload :BlackDuckBinaryAnalysis, 'pwn/plugins/black_duck_binary_analysis'
14
15
  autoload :BurpSuite, 'pwn/plugins/burp_suite'
15
16
  autoload :BusPirate, 'pwn/plugins/bus_pirate'
16
17
  autoload :Char, 'pwn/plugins/char'
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.4.724'
4
+ VERSION = '0.4.726'
5
5
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::Plugins::BlackDuckBinaryAnalysis do
6
+ it 'should display information for authors' do
7
+ authors_response = PWN::Plugins::BlackDuckBinaryAnalysis
8
+ expect(authors_response).to respond_to :authors
9
+ end
10
+
11
+ it 'should display information for existing help method' do
12
+ help_response = PWN::Plugins::BlackDuckBinaryAnalysis
13
+ expect(help_response).to respond_to :help
14
+ end
15
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.724
4
+ version: 0.4.726
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -1183,7 +1183,6 @@ executables:
1183
1183
  extensions: []
1184
1184
  extra_rdoc_files: []
1185
1185
  files:
1186
- - ".each do |child_pid|"
1187
1186
  - ".github/FUNDING.yml"
1188
1187
  - ".github/ISSUE_TEMPLATE/bug_report.md"
1189
1188
  - ".gitignore"
@@ -1676,6 +1675,7 @@ files:
1676
1675
  - lib/pwn/plugins/baresip.rb
1677
1676
  - lib/pwn/plugins/basic_auth.rb
1678
1677
  - lib/pwn/plugins/beef.rb
1678
+ - lib/pwn/plugins/black_duck_binary_analysis.rb
1679
1679
  - lib/pwn/plugins/burp_suite.rb
1680
1680
  - lib/pwn/plugins/bus_pirate.rb
1681
1681
  - lib/pwn/plugins/char.rb
@@ -1986,6 +1986,7 @@ files:
1986
1986
  - spec/lib/pwn/plugins/baresip_spec.rb
1987
1987
  - spec/lib/pwn/plugins/basic_auth_spec.rb
1988
1988
  - spec/lib/pwn/plugins/beef_spec.rb
1989
+ - spec/lib/pwn/plugins/black_duck_binary_analysis_spec.rb
1989
1990
  - spec/lib/pwn/plugins/burp_suite_spec.rb
1990
1991
  - spec/lib/pwn/plugins/bus_pirate_spec.rb
1991
1992
  - spec/lib/pwn/plugins/char_spec.rb
@@ -1,258 +0,0 @@
1
-
2
- SSUUMMMMAARRYY OOFF LLEESSSS CCOOMMMMAANNDDSS
3
-
4
- Commands marked with * may be preceded by a number, _N.
5
- Notes in parentheses indicate the behavior if _N is given.
6
- A key preceded by a caret indicates the Ctrl key; thus ^K is ctrl-K.
7
-
8
- h H Display this help.
9
- q :q Q :Q ZZ Exit.
10
- ---------------------------------------------------------------------------
11
-
12
- MMOOVVIINNGG
13
-
14
- e ^E j ^N CR * Forward one line (or _N lines).
15
- y ^Y k ^K ^P * Backward one line (or _N lines).
16
- f ^F ^V SPACE * Forward one window (or _N lines).
17
- b ^B ESC-v * Backward one window (or _N lines).
18
- z * Forward one window (and set window to _N).
19
- w * Backward one window (and set window to _N).
20
- ESC-SPACE * Forward one window, but don't stop at end-of-file.
21
- d ^D * Forward one half-window (and set half-window to _N).
22
- u ^U * Backward one half-window (and set half-window to _N).
23
- ESC-) RightArrow * Right one half screen width (or _N positions).
24
- ESC-( LeftArrow * Left one half screen width (or _N positions).
25
- ESC-} ^RightArrow Right to last column displayed.
26
- ESC-{ ^LeftArrow Left to first column.
27
- F Forward forever; like "tail -f".
28
- ESC-F Like F but stop when search pattern is found.
29
- r ^R ^L Repaint screen.
30
- R Repaint screen, discarding buffered input.
31
- ---------------------------------------------------
32
- Default "window" is the screen height.
33
- Default "half-window" is half of the screen height.
34
- ---------------------------------------------------------------------------
35
-
36
- SSEEAARRCCHHIINNGG
37
-
38
- /_p_a_t_t_e_r_n * Search forward for (_N-th) matching line.
39
- ?_p_a_t_t_e_r_n * Search backward for (_N-th) matching line.
40
- n * Repeat previous search (for _N-th occurrence).
41
- N * Repeat previous search in reverse direction.
42
- ESC-n * Repeat previous search, spanning files.
43
- ESC-N * Repeat previous search, reverse dir. & spanning files.
44
- ESC-u Undo (toggle) search highlighting.
45
- ESC-U Clear search highlighting.
46
- &_p_a_t_t_e_r_n * Display only matching lines.
47
- ---------------------------------------------------
48
- A search pattern may begin with one or more of:
49
- ^N or ! Search for NON-matching lines.
50
- ^E or * Search multiple files (pass thru END OF FILE).
51
- ^F or @ Start search at FIRST file (for /) or last file (for ?).
52
- ^K Highlight matches, but don't move (KEEP position).
53
- ^R Don't use REGULAR EXPRESSIONS.
54
- ^W WRAP search if no match found.
55
- ---------------------------------------------------------------------------
56
-
57
- JJUUMMPPIINNGG
58
-
59
- g < ESC-< * Go to first line in file (or line _N).
60
- G > ESC-> * Go to last line in file (or line _N).
61
- p % * Go to beginning of file (or _N percent into file).
62
- t * Go to the (_N-th) next tag.
63
- T * Go to the (_N-th) previous tag.
64
- { ( [ * Find close bracket } ) ].
65
- } ) ] * Find open bracket { ( [.
66
- ESC-^F _<_c_1_> _<_c_2_> * Find close bracket _<_c_2_>.
67
- ESC-^B _<_c_1_> _<_c_2_> * Find open bracket _<_c_1_>.
68
- ---------------------------------------------------
69
- Each "find close bracket" command goes forward to the close bracket
70
- matching the (_N-th) open bracket in the top line.
71
- Each "find open bracket" command goes backward to the open bracket
72
- matching the (_N-th) close bracket in the bottom line.
73
-
74
- m_<_l_e_t_t_e_r_> Mark the current top line with <letter>.
75
- M_<_l_e_t_t_e_r_> Mark the current bottom line with <letter>.
76
- '_<_l_e_t_t_e_r_> Go to a previously marked position.
77
- '' Go to the previous position.
78
- ^X^X Same as '.
79
- ESC-M_<_l_e_t_t_e_r_> Clear a mark.
80
- ---------------------------------------------------
81
- A mark is any upper-case or lower-case letter.
82
- Certain marks are predefined:
83
- ^ means beginning of the file
84
- $ means end of the file
85
- ---------------------------------------------------------------------------
86
-
87
- CCHHAANNGGIINNGG FFIILLEESS
88
-
89
- :e [_f_i_l_e] Examine a new file.
90
- ^X^V Same as :e.
91
- :n * Examine the (_N-th) next file from the command line.
92
- :p * Examine the (_N-th) previous file from the command line.
93
- :x * Examine the first (or _N-th) file from the command line.
94
- :d Delete the current file from the command line list.
95
- = ^G :f Print current file name.
96
- ---------------------------------------------------------------------------
97
-
98
- MMIISSCCEELLLLAANNEEOOUUSS CCOOMMMMAANNDDSS
99
-
100
- -_<_f_l_a_g_> Toggle a command line option [see OPTIONS below].
101
- --_<_n_a_m_e_> Toggle a command line option, by name.
102
- __<_f_l_a_g_> Display the setting of a command line option.
103
- ___<_n_a_m_e_> Display the setting of an option, by name.
104
- +_c_m_d Execute the less cmd each time a new file is examined.
105
-
106
- !_c_o_m_m_a_n_d Execute the shell command with $SHELL.
107
- |XX_c_o_m_m_a_n_d Pipe file between current pos & mark XX to shell command.
108
- s _f_i_l_e Save input to a file.
109
- v Edit the current file with $VISUAL or $EDITOR.
110
- V Print version number of "less".
111
- ---------------------------------------------------------------------------
112
-
113
- OOPPTTIIOONNSS
114
-
115
- Most options may be changed either on the command line,
116
- or from within less by using the - or -- command.
117
- Options may be given in one of two forms: either a single
118
- character preceded by a -, or a name preceded by --.
119
-
120
- -? ........ --help
121
- Display help (from command line).
122
- -a ........ --search-skip-screen
123
- Search skips current screen.
124
- -A ........ --SEARCH-SKIP-SCREEN
125
- Search starts just after target line.
126
- -b [_N] .... --buffers=[_N]
127
- Number of buffers.
128
- -B ........ --auto-buffers
129
- Don't automatically allocate buffers for pipes.
130
- -c ........ --clear-screen
131
- Repaint by clearing rather than scrolling.
132
- -d ........ --dumb
133
- Dumb terminal.
134
- -D xx_c_o_l_o_r . --color=xx_c_o_l_o_r
135
- Set screen colors.
136
- -e -E .... --quit-at-eof --QUIT-AT-EOF
137
- Quit at end of file.
138
- -f ........ --force
139
- Force open non-regular files.
140
- -F ........ --quit-if-one-screen
141
- Quit if entire file fits on first screen.
142
- -g ........ --hilite-search
143
- Highlight only last match for searches.
144
- -G ........ --HILITE-SEARCH
145
- Don't highlight any matches for searches.
146
- -h [_N] .... --max-back-scroll=[_N]
147
- Backward scroll limit.
148
- -i ........ --ignore-case
149
- Ignore case in searches that do not contain uppercase.
150
- -I ........ --IGNORE-CASE
151
- Ignore case in all searches.
152
- -j [_N] .... --jump-target=[_N]
153
- Screen position of target lines.
154
- -J ........ --status-column
155
- Display a status column at left edge of screen.
156
- -k [_f_i_l_e] . --lesskey-file=[_f_i_l_e]
157
- Use a lesskey file.
158
- -K ........ --quit-on-intr
159
- Exit less in response to ctrl-C.
160
- -L ........ --no-lessopen
161
- Ignore the LESSOPEN environment variable.
162
- -m -M .... --long-prompt --LONG-PROMPT
163
- Set prompt style.
164
- -n -N .... --line-numbers --LINE-NUMBERS
165
- Don't use line numbers.
166
- -o [_f_i_l_e] . --log-file=[_f_i_l_e]
167
- Copy to log file (standard input only).
168
- -O [_f_i_l_e] . --LOG-FILE=[_f_i_l_e]
169
- Copy to log file (unconditionally overwrite).
170
- -p [_p_a_t_t_e_r_n] --pattern=[_p_a_t_t_e_r_n]
171
- Start at pattern (from command line).
172
- -P [_p_r_o_m_p_t] --prompt=[_p_r_o_m_p_t]
173
- Define new prompt.
174
- -q -Q .... --quiet --QUIET --silent --SILENT
175
- Quiet the terminal bell.
176
- -r -R .... --raw-control-chars --RAW-CONTROL-CHARS
177
- Output "raw" control characters.
178
- -s ........ --squeeze-blank-lines
179
- Squeeze multiple blank lines.
180
- -S ........ --chop-long-lines
181
- Chop (truncate) long lines rather than wrapping.
182
- -t [_t_a_g] .. --tag=[_t_a_g]
183
- Find a tag.
184
- -T [_t_a_g_s_f_i_l_e] --tag-file=[_t_a_g_s_f_i_l_e]
185
- Use an alternate tags file.
186
- -u -U .... --underline-special --UNDERLINE-SPECIAL
187
- Change handling of backspaces.
188
- -V ........ --version
189
- Display the version number of "less".
190
- -w ........ --hilite-unread
191
- Highlight first new line after forward-screen.
192
- -W ........ --HILITE-UNREAD
193
- Highlight first new line after any forward movement.
194
- -x [_N[,...]] --tabs=[_N[,...]]
195
- Set tab stops.
196
- -X ........ --no-init
197
- Don't use termcap init/deinit strings.
198
- -y [_N] .... --max-forw-scroll=[_N]
199
- Forward scroll limit.
200
- -z [_N] .... --window=[_N]
201
- Set size of window.
202
- -" [_c[_c]] . --quotes=[_c[_c]]
203
- Set shell quote characters.
204
- -~ ........ --tilde
205
- Don't display tildes after end of file.
206
- -# [_N] .... --shift=[_N]
207
- Set horizontal scroll amount (0 = one half screen width).
208
- --file-size
209
- Automatically determine the size of the input file.
210
- --follow-name
211
- The F command changes files if the input file is renamed.
212
- --incsearch
213
- Search file as each pattern character is typed in.
214
- --line-num-width=N
215
- Set the width of the -N line number field to N characters.
216
- --mouse
217
- Enable mouse input.
218
- --no-keypad
219
- Don't send termcap keypad init/deinit strings.
220
- --no-histdups
221
- Remove duplicates from command history.
222
- --rscroll=C
223
- Set the character used to mark truncated lines.
224
- --save-marks
225
- Retain marks across invocations of less.
226
- --status-col-width=N
227
- Set the width of the -J status column to N characters.
228
- --use-backslash
229
- Subsequent options use backslash as escape char.
230
- --use-color
231
- Enables colored text.
232
- --wheel-lines=N
233
- Each click of the mouse wheel moves N lines.
234
-
235
-
236
- ---------------------------------------------------------------------------
237
-
238
- LLIINNEE EEDDIITTIINNGG
239
-
240
- These keys can be used to edit text being entered
241
- on the "command line" at the bottom of the screen.
242
-
243
- RightArrow ..................... ESC-l ... Move cursor right one character.
244
- LeftArrow ...................... ESC-h ... Move cursor left one character.
245
- ctrl-RightArrow ESC-RightArrow ESC-w ... Move cursor right one word.
246
- ctrl-LeftArrow ESC-LeftArrow ESC-b ... Move cursor left one word.
247
- HOME ........................... ESC-0 ... Move cursor to start of line.
248
- END ............................ ESC-$ ... Move cursor to end of line.
249
- BACKSPACE ................................ Delete char to left of cursor.
250
- DELETE ......................... ESC-x ... Delete char under cursor.
251
- ctrl-BACKSPACE ESC-BACKSPACE ........... Delete word to left of cursor.
252
- ctrl-DELETE .... ESC-DELETE .... ESC-X ... Delete word under cursor.
253
- ctrl-U ......... ESC (MS-DOS only) ....... Delete entire line.
254
- UpArrow ........................ ESC-k ... Retrieve previous command line.
255
- DownArrow ...................... ESC-j ... Retrieve next command line.
256
- TAB ...................................... Complete filename & cycle.
257
- SHIFT-TAB ...................... ESC-TAB Complete filename & reverse cycle.
258
- ctrl-L ................................... Complete filename, list all.