watobo 0.9.8.677
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/watobo_gui.rb +39 -0
- data/certificates/cert.pem +19 -0
- data/certificates/privkey.pem +15 -0
- data/certificates/watobo_dh.key +5 -0
- data/config/datastore.yml +5 -0
- data/config/forwarding_proxy.yml +12 -0
- data/config/general.yml +4 -0
- data/config/gui.yml +23 -0
- data/config/interceptor.yml +16 -0
- data/config/scan_policy.yml +13 -0
- data/config/scanner.yml +34 -0
- data/icons/Add.ico +0 -0
- data/icons/Add_24x24.ico +0 -0
- data/icons/Bandwidth.ico +0 -0
- data/icons/Bandwidth_24x24.ico +0 -0
- data/icons/Mr. Bomb.ico +0 -0
- data/icons/Mr. Bomb_16x16.ico +0 -0
- data/icons/Mr. Bomb_24x24.ico +0 -0
- data/icons/Orange Ball.ico +0 -0
- data/icons/Orange Ball_16x16.ico +0 -0
- data/icons/Orange Ball_24x24.ico +0 -0
- data/icons/Pause.ico +0 -0
- data/icons/Play.ico +0 -0
- data/icons/Play_24x24.ico +0 -0
- data/icons/Red Ball.ico +0 -0
- data/icons/Red Ball_16x16.ico +0 -0
- data/icons/Red Ball_24x24.ico +0 -0
- data/icons/Run.ico +0 -0
- data/icons/Stop.ico +0 -0
- data/icons/Stop_24x24.ico +0 -0
- data/icons/Terminal.ico +0 -0
- data/icons/Transfer.ico +0 -0
- data/icons/Transfer_16x16.ico +0 -0
- data/icons/User.ico +0 -0
- data/icons/User_16x16.ico +0 -0
- data/icons/User_24x24.ico +0 -0
- data/icons/Web Browser.ico +0 -0
- data/icons/Web Browser_16x16.ico +0 -0
- data/icons/Write Document.ico +0 -0
- data/icons/Yellow Ball.ico +0 -0
- data/icons/Yellow Ball_16x16.ico +0 -0
- data/icons/Yellow Ball_24x24.ico +0 -0
- data/icons/advanced.ico +0 -0
- data/icons/advanced_16x16.ico +0 -0
- data/icons/advanced_24x24.ico +0 -0
- data/icons/applications.ico +0 -0
- data/icons/applications_16x16.ico +0 -0
- data/icons/applications_24x24.ico +0 -0
- data/icons/browser_16x16.ico +0 -0
- data/icons/browser_24x24.ico +0 -0
- data/icons/burn.ico +0 -0
- data/icons/burn_16x16.ico +0 -0
- data/icons/burn_24x24.ico +0 -0
- data/icons/calculator.ico +0 -0
- data/icons/calculator_24x24.ico +0 -0
- data/icons/cb_checked.ico +0 -0
- data/icons/cb_checked_orange.ico +0 -0
- data/icons/cb_unchecked.ico +0 -0
- data/icons/coin_24x24.ico +0 -0
- data/icons/conversation.ico +0 -0
- data/icons/conversation_24x24.ico +0 -0
- data/icons/engine.ico +0 -0
- data/icons/filter.ico +0 -0
- data/icons/folder.ico +0 -0
- data/icons/folder_16x16.ico +0 -0
- data/icons/fuzzer_16x16.ico +0 -0
- data/icons/fuzzer_24x24.ico +0 -0
- data/icons/go-down_16x16.png +0 -0
- data/icons/go-up_16x16.png +0 -0
- data/icons/help.ico +0 -0
- data/icons/help_16x16.ico +0 -0
- data/icons/help_24x24.ico +0 -0
- data/icons/iChat.ico +0 -0
- data/icons/iChat_16x16.ico +0 -0
- data/icons/iChat_24x24.ico +0 -0
- data/icons/icons.txt +3 -0
- data/icons/info.ico +0 -0
- data/icons/info_16x16.ico +0 -0
- data/icons/info_24x24.ico +0 -0
- data/icons/interceptor_24x24.ico +0 -0
- data/icons/lock.ico +0 -0
- data/icons/lock_12x12.ico +0 -0
- data/icons/lock_16x16.ico +0 -0
- data/icons/monitor.ico +0 -0
- data/icons/plugin.ico +0 -0
- data/icons/plugin_24x24.ico +0 -0
- data/icons/scan_16x16.png +0 -0
- data/icons/send.ico +0 -0
- data/icons/server.ico +0 -0
- data/icons/server_16x16.ico +0 -0
- data/icons/siberas_logo_x24.gif +0 -0
- data/icons/tag_blue_32x32.ico +0 -0
- data/icons/watobo-48x48.png +0 -0
- data/icons/watobo-logo.png +0 -0
- data/icons/watobo.ico +0 -0
- data/lib/watobo/adapters/data_store.rb +38 -0
- data/lib/watobo/adapters/file/file_store.rb +211 -0
- data/lib/watobo/adapters/session_store.rb +27 -0
- data/lib/watobo/adapters.rb +26 -0
- data/lib/watobo/config.rb +143 -0
- data/lib/watobo/constants.rb +92 -0
- data/lib/watobo/core/active_check.rb +404 -0
- data/lib/watobo/core/cookie.rb +69 -0
- data/lib/watobo/core/fuzz_gen.rb +160 -0
- data/lib/watobo/core/http_socket.rb +142 -0
- data/lib/watobo/core/interceptor.rb +729 -0
- data/lib/watobo/core/passive_check.rb +141 -0
- data/lib/watobo/core/project.rb +1058 -0
- data/lib/watobo/core/scanner.rb +396 -0
- data/lib/watobo/core/session.rb +1320 -0
- data/lib/watobo/core/simple_ca.rb +393 -0
- data/lib/watobo/core.rb +34 -0
- data/lib/watobo/defaults.rb +40 -0
- data/lib/watobo/external/diff/lcs/array.rb +42 -0
- data/lib/watobo/external/diff/lcs/block.rb +72 -0
- data/lib/watobo/external/diff/lcs/callbacks.rb +343 -0
- data/lib/watobo/external/diff/lcs/change.rb +190 -0
- data/lib/watobo/external/diff/lcs/hunk.rb +279 -0
- data/lib/watobo/external/diff/lcs/ldiff.rb +247 -0
- data/lib/watobo/external/diff/lcs/string.rb +40 -0
- data/lib/watobo/external/diff/lcs.rb +1124 -0
- data/lib/watobo/external/ntlm/ntlm.rb +797 -0
- data/lib/watobo/externals.rb +28 -0
- data/lib/watobo/framework/create_project.rb +55 -0
- data/lib/watobo/framework/init.rb +149 -0
- data/lib/watobo/framework/init_modules.rb +116 -0
- data/lib/watobo/framework/license_text.rb +50 -0
- data/lib/watobo/framework.rb +26 -0
- data/lib/watobo/gui/about_watobo.rb +68 -0
- data/lib/watobo/gui/browser_preview.rb +460 -0
- data/lib/watobo/gui/certificate_dialog.rb +132 -0
- data/lib/watobo/gui/chat_diff.rb +415 -0
- data/lib/watobo/gui/chatviewer_frame.rb +427 -0
- data/lib/watobo/gui/checkboxtree.rb +221 -0
- data/lib/watobo/gui/checks_policy_frame.rb +123 -0
- data/lib/watobo/gui/client_cert_dialog.rb +227 -0
- data/lib/watobo/gui/confirm_scan_dialog.rb +67 -0
- data/lib/watobo/gui/conversation_table.rb +386 -0
- data/lib/watobo/gui/conversation_table_ctrl.rb +175 -0
- data/lib/watobo/gui/csrf_token_dialog.rb +446 -0
- data/lib/watobo/gui/dashboard.rb +341 -0
- data/lib/watobo/gui/define_scope_frame.rb +380 -0
- data/lib/watobo/gui/edit_comment.rb +70 -0
- data/lib/watobo/gui/edit_scope_dialog.rb +69 -0
- data/lib/watobo/gui/finding_info.rb +212 -0
- data/lib/watobo/gui/findings_tree.rb +459 -0
- data/lib/watobo/gui/full_scan_dialog.rb +269 -0
- data/lib/watobo/gui/fuzzer_gui.rb +1522 -0
- data/lib/watobo/gui/hex_viewer.rb +106 -0
- data/lib/watobo/gui/interceptor_gui.rb +994 -0
- data/lib/watobo/gui/interceptor_settings_dialog.rb +201 -0
- data/lib/watobo/gui/log_viewer.rb +97 -0
- data/lib/watobo/gui/login_wizzard.rb +301 -0
- data/lib/watobo/gui/main_window.rb +1815 -0
- data/lib/watobo/gui/manual_request_editor.rb +1105 -0
- data/lib/watobo/gui/master_pw_dialog.rb +142 -0
- data/lib/watobo/gui/password_policy_dialog.rb +98 -0
- data/lib/watobo/gui/plugin/base.rb +82 -0
- data/lib/watobo/gui/plugin_board.rb +95 -0
- data/lib/watobo/gui/preferences_dialog.rb +116 -0
- data/lib/watobo/gui/progress_window.rb +102 -0
- data/lib/watobo/gui/project_wizzard.rb +369 -0
- data/lib/watobo/gui/proxy_dialog.rb +550 -0
- data/lib/watobo/gui/quick_scan_dialog.rb +242 -0
- data/lib/watobo/gui/request_editor.rb +480 -0
- data/lib/watobo/gui/save_chat_dialog.rb +158 -0
- data/lib/watobo/gui/scanner_settings_dialog.rb +360 -0
- data/lib/watobo/gui/select_chat_dialog.rb +169 -0
- data/lib/watobo/gui/session_management_dialog.rb +688 -0
- data/lib/watobo/gui/sites_tree.rb +347 -0
- data/lib/watobo/gui/status_bar.rb +88 -0
- data/lib/watobo/gui/table_editor.rb +445 -0
- data/lib/watobo/gui/tagless_viewer.rb +62 -0
- data/lib/watobo/gui/templates/plugin.rb +80 -0
- data/lib/watobo/gui/templates/plugin2.rb +103 -0
- data/lib/watobo/gui/text_viewer.rb +247 -0
- data/lib/watobo/gui/transcoder_window.rb +215 -0
- data/lib/watobo/gui/utils/gui_utils.rb +129 -0
- data/lib/watobo/gui/utils/init_icons.rb +106 -0
- data/lib/watobo/gui/utils/load_icons.rb +54 -0
- data/lib/watobo/gui/utils/load_plugins.rb +94 -0
- data/lib/watobo/gui/utils/master_password.rb +90 -0
- data/lib/watobo/gui/utils/save_default_settings.rb +99 -0
- data/lib/watobo/gui/utils/save_project_settings.rb +21 -0
- data/lib/watobo/gui/utils/save_proxy_settings.rb +45 -0
- data/lib/watobo/gui/utils/save_session_settings.rb +21 -0
- data/lib/watobo/gui/utils/session_history.rb +134 -0
- data/lib/watobo/gui/workspace_dialog.rb +89 -0
- data/lib/watobo/gui/www_auth_dialog.rb +348 -0
- data/lib/watobo/gui/xml_viewer_frame.rb +114 -0
- data/lib/watobo/gui.rb +139 -0
- data/lib/watobo/mixins/httpparser.rb +664 -0
- data/lib/watobo/mixins/request_parser.rb +210 -0
- data/lib/watobo/mixins/shapers.rb +345 -0
- data/lib/watobo/mixins/transcoders.rb +88 -0
- data/lib/watobo/mixins.rb +32 -0
- data/lib/watobo/utils/check_regex.rb +36 -0
- data/lib/watobo/utils/copy_object.rb +29 -0
- data/lib/watobo/utils/crypto.rb +74 -0
- data/lib/watobo/utils/expand_range.rb +45 -0
- data/lib/watobo/utils/file_management.rb +73 -0
- data/lib/watobo/utils/load_chat.rb +219 -0
- data/lib/watobo/utils/load_icon.rb +47 -0
- data/lib/watobo/utils/print_debug.rb +34 -0
- data/lib/watobo/utils/response_hash.rb +143 -0
- data/lib/watobo/utils/secure_eval.rb +57 -0
- data/lib/watobo/utils/text2request.rb +96 -0
- data/lib/watobo/utils.rb +32 -0
- data/lib/watobo.rb +76 -0
- data/modules/active/Apache/mod_status.rb +123 -0
- data/modules/active/Flash/crossdomain.rb +102 -0
- data/modules/active/directories/dirwalker.rb +89 -0
- data/modules/active/discovery/fileextensions.rb +151 -0
- data/modules/active/discovery/http_methods.rb +135 -0
- data/modules/active/domino/domino_db.lst +164 -0
- data/modules/active/domino/domino_db.rb +128 -0
- data/modules/active/fileinclusion/lfi_simple.rb +134 -0
- data/modules/active/jboss/jboss_basic.rb +119 -0
- data/modules/active/sap/business_objects.rb +73 -0
- data/modules/active/sap/its_commands.rb +101 -0
- data/modules/active/sap/its_service_parameter.rb +105 -0
- data/modules/active/sap/its_services.rb +103 -0
- data/modules/active/sap/its_xss.rb +98 -0
- data/modules/active/sqlinjection/sql_boolean.rb +262 -0
- data/modules/active/sqlinjection/sqli_simple.rb +205 -0
- data/modules/active/xss/xss_simple.rb +179 -0
- data/modules/passive/cookie_options.rb +97 -0
- data/modules/passive/cookie_xss.rb +85 -0
- data/modules/passive/detect_code.rb +89 -0
- data/modules/passive/detect_fileupload.rb +80 -0
- data/modules/passive/detect_infrastructure.rb +98 -0
- data/modules/passive/detect_one_time_tokens.rb +86 -0
- data/modules/passive/dirindexing.rb +81 -0
- data/modules/passive/disclosure_emails.rb +82 -0
- data/modules/passive/disclosure_ipaddr.rb +87 -0
- data/modules/passive/filename_as_parameter.rb +85 -0
- data/modules/passive/form_spotter.rb +75 -0
- data/modules/passive/hotspots.rb +86 -0
- data/modules/passive/in_script_parameter.rb +92 -0
- data/modules/passive/multiple_server_headers.rb +98 -0
- data/modules/passive/possible_login.rb +134 -0
- data/modules/passive/redirect_url.rb +88 -0
- data/modules/passive/redirectionz.rb +96 -0
- data/modules/passive/xss_dom.rb +91 -0
- data/plugins/catalog/catalog.ico +0 -0
- data/plugins/catalog/catalog.rb +726 -0
- data/plugins/catalog/db_tests +6483 -0
- data/plugins/catalog/db_variables +29 -0
- data/plugins/filefinder/dbs/hbci.db +12 -0
- data/plugins/filefinder/filefinder.rb +602 -0
- data/plugins/sslchecker/cli/sslchecker_cli.rb +21 -0
- data/plugins/sslchecker/gui/cipher_table.rb +260 -0
- data/plugins/sslchecker/gui/gui.rb +245 -0
- data/plugins/sslchecker/gui/sslchecker.rb +26 -0
- data/plugins/sslchecker/icons/green_16x16.ico +0 -0
- data/plugins/sslchecker/icons/grey_16x16.ico +0 -0
- data/plugins/sslchecker/icons/red_16x16.ico +0 -0
- data/plugins/sslchecker/icons/sslchecker.ico +0 -0
- data/plugins/sslchecker/lib/check.rb +117 -0
- metadata +317 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# text_viewer.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
module Gui
|
|
24
|
+
class TextView2 < FXText
|
|
25
|
+
|
|
26
|
+
attr_accessor :max_len
|
|
27
|
+
|
|
28
|
+
public
|
|
29
|
+
def subscribe(event, &callback)
|
|
30
|
+
(@event_dispatcher_listeners[event] ||= []) << callback
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def clearEvents(event)
|
|
34
|
+
@event_dispatcher_listener[event].clear
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def matchIndex()
|
|
38
|
+
@match_index
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def numMatches()
|
|
42
|
+
@pattern_matches.length
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def showNextMatch()
|
|
46
|
+
# puts "* showNextMatch -> #{@match_index+1}"
|
|
47
|
+
showMatch(@match_index + 1)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def showPrevMatch()
|
|
51
|
+
# puts "* showPrevMatch -> #{@match_index-1}"
|
|
52
|
+
showMatch(@match_index - 1)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def setFont(font_type=nil, size=nil)
|
|
56
|
+
new_size = size.nil? ? GUI_REGULAR_FONT_SIZE : size
|
|
57
|
+
new_font_type = font_type.nil? ? "helvetica" : font_type
|
|
58
|
+
new_font = FXFont.new(getApp(), new_font_type, new_size)
|
|
59
|
+
new_font.create
|
|
60
|
+
self.font = new_font
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def initialize(owner, opts)
|
|
64
|
+
|
|
65
|
+
@pattern_matches = []
|
|
66
|
+
@raw_text = ""
|
|
67
|
+
@match_index = 0
|
|
68
|
+
@event_dispatcher_listeners = Hash.new
|
|
69
|
+
|
|
70
|
+
puts opts.to_yaml
|
|
71
|
+
super(owner, opts)
|
|
72
|
+
|
|
73
|
+
# Construct some hilite styles
|
|
74
|
+
hs_green = FXHiliteStyle.new
|
|
75
|
+
hs_green.normalForeColor = FXRGBA(255,255,255,255) #FXColor::Red
|
|
76
|
+
hs_green.normalBackColor = FXRGBA(0,255,0,1) # FXColor::White
|
|
77
|
+
hs_green.style = FXText::STYLE_BOLD
|
|
78
|
+
|
|
79
|
+
hs_red = FXHiliteStyle.new
|
|
80
|
+
hs_red.normalForeColor = FXRGBA(255,255,255,255) #FXColor::Red
|
|
81
|
+
hs_red.normalBackColor = FXRGBA(255,0,0,1) # FXColor::White
|
|
82
|
+
hs_red.style = FXText::STYLE_BOLD
|
|
83
|
+
|
|
84
|
+
# Enable the style buffer for this text widget
|
|
85
|
+
self.styled = true
|
|
86
|
+
# Set the styles
|
|
87
|
+
self.hiliteStyles = [ hs_green, hs_red]
|
|
88
|
+
|
|
89
|
+
self.editable = false
|
|
90
|
+
|
|
91
|
+
self.textStyle |= TEXT_WORDWRAP
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def setPrintable(text, prefs={})
|
|
96
|
+
@raw_text = text
|
|
97
|
+
self.setText(normalizeText(@raw_text))
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# applies a specific filter (string or regex).
|
|
101
|
+
#
|
|
102
|
+
# It returns an array containing [pos, len] pairs of each match
|
|
103
|
+
|
|
104
|
+
def applyFilter(pattern, prefs={})
|
|
105
|
+
cprefs = { :highlight => true,
|
|
106
|
+
:style_index => 2}
|
|
107
|
+
cprefs.update(prefs) if prefs.is_a? Hash
|
|
108
|
+
|
|
109
|
+
dummy = self.to_s
|
|
110
|
+
#remove previous highlighting
|
|
111
|
+
self.killSelection()
|
|
112
|
+
self.setText(dummy)
|
|
113
|
+
@match_index = 0
|
|
114
|
+
@pattern_matches = matchPattern(pattern)
|
|
115
|
+
if cprefs[:highlight] == true
|
|
116
|
+
# puts "* found pattern #{pattern} #{@pattern_matches.length} times"
|
|
117
|
+
@pattern_matches.each do |start, len|
|
|
118
|
+
begin
|
|
119
|
+
self.changeStyle(start, len, cprefs[:style_index])
|
|
120
|
+
rescue => bang
|
|
121
|
+
puts "outch"
|
|
122
|
+
puts bang
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# now re-highlight input and set cursor to last pos
|
|
128
|
+
|
|
129
|
+
return @pattern_matches
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# reset()
|
|
133
|
+
# this function removes all previous selections and highlightings
|
|
134
|
+
def reset_text()
|
|
135
|
+
self.setText(self.to_s)
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# showMatch(index=0)
|
|
139
|
+
# this function makes a specific match visible in the text field.
|
|
140
|
+
# The default index value is 0.
|
|
141
|
+
# The function returns the index of the current match index.
|
|
142
|
+
def showMatch(match_index=0, prefs={})
|
|
143
|
+
cprefs = { :select_match => false }
|
|
144
|
+
|
|
145
|
+
cprefs.update prefs
|
|
146
|
+
|
|
147
|
+
return @match_index if @pattern_matches.empty?
|
|
148
|
+
return @match_index if match_index > ( @pattern_matches.length - 1 )
|
|
149
|
+
return @match_index if match_index < 0
|
|
150
|
+
|
|
151
|
+
if @pattern_matches[match_index] then
|
|
152
|
+
@match_index = match_index
|
|
153
|
+
pos = @pattern_matches[match_index][0]
|
|
154
|
+
len =@pattern_matches[match_index][1]
|
|
155
|
+
|
|
156
|
+
self.setCenterLine(pos)
|
|
157
|
+
|
|
158
|
+
# @textbox.makePositionVisible(pos + len)
|
|
159
|
+
self.makePositionVisible(self.lineEnd(pos))
|
|
160
|
+
self.makePositionVisible(pos)
|
|
161
|
+
|
|
162
|
+
self.setCursorPos(pos)
|
|
163
|
+
|
|
164
|
+
self.killSelection()
|
|
165
|
+
self.setSelection(pos, len) if cprefs[:select_match] == true
|
|
166
|
+
end
|
|
167
|
+
return @match_index
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
private
|
|
171
|
+
|
|
172
|
+
# returns an array of matches. each match consists of two values [start, len]
|
|
173
|
+
def matchPattern(pattern)
|
|
174
|
+
sindex = nil
|
|
175
|
+
eindex = nil
|
|
176
|
+
|
|
177
|
+
pos = 0
|
|
178
|
+
pattern_matches = []
|
|
179
|
+
|
|
180
|
+
loop do
|
|
181
|
+
sindex, eindex = self.findText(pattern, pos, SEARCH_EXACT|SEARCH_IGNORECASE|SEARCH_FORWARD)
|
|
182
|
+
|
|
183
|
+
sindex, eindex = self.findText(pattern, pos, :flags => SEARCH_REGEX|SEARCH_IGNORECASE|SEARCH_FORWARD) if not sindex
|
|
184
|
+
|
|
185
|
+
sindex, eindex = self.findText(Regexp.quote(pattern), pos, :flags => SEARCH_REGEX|SEARCH_IGNORECASE|SEARCH_FORWARD) if not sindex
|
|
186
|
+
|
|
187
|
+
break if not sindex or sindex.length == 0
|
|
188
|
+
|
|
189
|
+
pos = eindex.last+1
|
|
190
|
+
sindex.length.times do |i|
|
|
191
|
+
start = sindex[i]
|
|
192
|
+
len = eindex[i] - sindex[i]
|
|
193
|
+
pattern_matches.push [ start, len] if start >= 0
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
break if sindex.last < 0
|
|
197
|
+
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
return pattern_matches
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def notify(event, *args)
|
|
204
|
+
if @event_dispatcher_listeners[event]
|
|
205
|
+
@event_dispatcher_listeners[event].each do |m|
|
|
206
|
+
m.call(*args) if m.respond_to? :call
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def normalizeText(text)
|
|
212
|
+
ntext = "#{text}"
|
|
213
|
+
ntext.gsub!("\r",'')
|
|
214
|
+
|
|
215
|
+
return "" if text.nil?
|
|
216
|
+
# t = text.join.gsub(/\r/,"") if text.is_a? Array
|
|
217
|
+
last = 0
|
|
218
|
+
while last < text.length
|
|
219
|
+
match = ntext[last..-1].index("\n")
|
|
220
|
+
if match
|
|
221
|
+
nc = ntext[last..match-1].gsub(/[^[:print:]]/,'.')
|
|
222
|
+
ntext[last..match-1] = nc
|
|
223
|
+
# puts nc
|
|
224
|
+
last += match+1
|
|
225
|
+
while ntext[last] == "\n" do
|
|
226
|
+
last += 1
|
|
227
|
+
# puts last
|
|
228
|
+
end
|
|
229
|
+
else
|
|
230
|
+
break
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
ntext
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def log(text)
|
|
238
|
+
t = Time.now
|
|
239
|
+
now = t.strftime("%m/%d/%Y @ %H:%M:%S")
|
|
240
|
+
msg = "[#{now}] #{text}"
|
|
241
|
+
notify(:error, msg)
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
end # of TextViewer2
|
|
245
|
+
|
|
246
|
+
end
|
|
247
|
+
end
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# transcoder_window.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
module Gui
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class TranscoderWindow < FXDialogBox
|
|
27
|
+
|
|
28
|
+
include Watobo::Gui
|
|
29
|
+
include Watobo::Gui::Utils
|
|
30
|
+
include Watobo::Gui::Icons
|
|
31
|
+
|
|
32
|
+
def setText(raw_text)
|
|
33
|
+
@text = raw_text
|
|
34
|
+
@hexViewer.setText(raw_text)
|
|
35
|
+
text = raw_text.gsub(/[^[:print:]]/,'.')
|
|
36
|
+
@textbox.setText(text)
|
|
37
|
+
update_length_info
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def update_length_info
|
|
43
|
+
@len.text = @textbox.to_s.length.to_s
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def onTextChanged(sender, sel, item)
|
|
49
|
+
@text = @textbox.to_s
|
|
50
|
+
@hexViewer.setText(@text)
|
|
51
|
+
update_length_info
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def onHashMD5(sender, sel, item)
|
|
57
|
+
text = @textbox.text
|
|
58
|
+
setText(Digest::MD5.hexdigest(text))
|
|
59
|
+
update_length_info
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def onHashSHA1(sender, sel, item)
|
|
65
|
+
text = @textbox.text
|
|
66
|
+
setText(Digest::SHA1.hexdigest(text))
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def onDecodeB64(sender, sel, item)
|
|
70
|
+
string2encode = @textbox.text
|
|
71
|
+
string2encode.extend Watobo::Mixin::Transcoders
|
|
72
|
+
setText(string2encode.b64decode)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def onEncodeB64(sender, sel, item)
|
|
76
|
+
string2encode = @textbox.text
|
|
77
|
+
string2encode.extend Watobo::Mixin::Transcoders
|
|
78
|
+
setText(string2encode.b64encode)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def onEncodeURL(sender, sel, item)
|
|
82
|
+
string2encode = @textbox.text
|
|
83
|
+
string2encode.extend Watobo::Mixin::Transcoders
|
|
84
|
+
setText(string2encode.url_encode)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def onDecodeURL(sender,sel, item)
|
|
88
|
+
string2encode = @textbox.text
|
|
89
|
+
string2encode.extend Watobo::Mixin::Transcoders
|
|
90
|
+
setText(string2encode.url_decode)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def onDecodeHex(sender, sel, item)
|
|
94
|
+
string2encode = @textbox.text
|
|
95
|
+
string2encode.extend Watobo::Mixin::Transcoders
|
|
96
|
+
setText(string2encode.hexdecode)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def onEncodeHex(sender, sel, item)
|
|
100
|
+
string2encode = @textbox.text
|
|
101
|
+
string2encode.extend Watobo::Mixin::Transcoders
|
|
102
|
+
setText(string2encode.hexencode)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def initialize(owner, text2transcode)
|
|
106
|
+
# Invoke base class initialize function first
|
|
107
|
+
super(owner, "Transcoder", :opts => DECOR_ALL,:width=>800, :height=>600)
|
|
108
|
+
self.icon = ICON_TRANSCODER
|
|
109
|
+
@text = text2transcode
|
|
110
|
+
|
|
111
|
+
main = FXVerticalFrame.new(self, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
|
112
|
+
info_frame = FXHorizontalFrame.new(main, :opts => FRAME_LINE|LAYOUT_FILL_X)
|
|
113
|
+
main = FXVerticalFrame.new(main, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y, :padding => 0)
|
|
114
|
+
@tabBook = FXTabBook.new(main, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_RIGHT)
|
|
115
|
+
@lastTabIndex = 0
|
|
116
|
+
textviewer_tab = FXTabItem.new(@tabBook, "Text", nil)
|
|
117
|
+
frame = FXVerticalFrame.new(@tabBook, LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_RAISED)
|
|
118
|
+
text_frame = FXVerticalFrame.new(frame, LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK, :padding => 0)
|
|
119
|
+
|
|
120
|
+
#btn_frame = FXHorizontalFrame.new(main, :opts => FRAME_LINE|LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH,
|
|
121
|
+
# :padLeft => 40, :padRight => 40, :padTop => 20, :padBottom => 20)
|
|
122
|
+
btn_frame = FXHorizontalFrame.new(main, :opts => FRAME_SUNKEN|LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH)
|
|
123
|
+
|
|
124
|
+
FXLabel.new(info_frame, "Length:" )
|
|
125
|
+
@len = FXLabel.new(info_frame, "0" )
|
|
126
|
+
|
|
127
|
+
hex_tab = FXTabItem.new(@tabBook, "Hex", nil )
|
|
128
|
+
|
|
129
|
+
frame = FXVerticalFrame.new(@tabBook, LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_RAISED)
|
|
130
|
+
|
|
131
|
+
@hexViewer = HexViewer.new(frame)
|
|
132
|
+
|
|
133
|
+
@tabBook.connect(SEL_COMMAND) {
|
|
134
|
+
case @tabBook.current
|
|
135
|
+
when 0
|
|
136
|
+
#
|
|
137
|
+
when 1
|
|
138
|
+
@hexViewer.setText(@text)
|
|
139
|
+
end
|
|
140
|
+
@lastTabIndex = @tabBook.current
|
|
141
|
+
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
base64Group = FXGroupBox.new(btn_frame, "Base64", LAYOUT_SIDE_TOP|FRAME_GROOVE, 0, 0, 0, 0)
|
|
145
|
+
btn_decode_b64 = FXButton.new(base64Group, "Encode", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_LEFT)
|
|
146
|
+
btn_decode_b64.connect(SEL_COMMAND, method(:onEncodeB64))
|
|
147
|
+
btn_decode_b64 = FXButton.new(base64Group, "Decode", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_LEFT)
|
|
148
|
+
btn_decode_b64.connect(SEL_COMMAND, method(:onDecodeB64))
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
urlGroup = FXGroupBox.new(btn_frame, "URL", LAYOUT_SIDE_TOP|FRAME_GROOVE, 0, 0, 0, 0)
|
|
152
|
+
btn_decode_b64 = FXButton.new(urlGroup, "Encode", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_LEFT)
|
|
153
|
+
btn_decode_b64.connect(SEL_COMMAND, method(:onEncodeURL))
|
|
154
|
+
btn_decode_b64 = FXButton.new(urlGroup, "Decode", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_LEFT)
|
|
155
|
+
btn_decode_b64.connect(SEL_COMMAND, method(:onDecodeURL))
|
|
156
|
+
|
|
157
|
+
hexGroup = FXGroupBox.new(btn_frame, "Hex", LAYOUT_SIDE_TOP|FRAME_GROOVE, 0, 0, 0, 0)
|
|
158
|
+
btn_decode_b64 = FXButton.new(hexGroup, "Encode", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_LEFT)
|
|
159
|
+
btn_decode_b64.connect(SEL_COMMAND, method(:onEncodeHex))
|
|
160
|
+
btn_decode_b64 = FXButton.new(hexGroup, "Decode", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_LEFT)
|
|
161
|
+
btn_decode_b64.connect(SEL_COMMAND, method(:onDecodeHex))
|
|
162
|
+
|
|
163
|
+
hashGroup = FXGroupBox.new(btn_frame, "Hash", LAYOUT_SIDE_TOP|FRAME_GROOVE, 0, 0, 0, 0)
|
|
164
|
+
btn_hash_md5 = FXButton.new(hashGroup, "MD5", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_LEFT|LAYOUT_FILL_X)
|
|
165
|
+
btn_hash_md5.connect(SEL_COMMAND, method(:onHashMD5))
|
|
166
|
+
btn_hash_sha1 = FXButton.new(hashGroup, "SHA-1", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_LEFT|LAYOUT_FILL_X)
|
|
167
|
+
btn_hash_sha1.connect(SEL_COMMAND, method(:onHashSHA1))
|
|
168
|
+
|
|
169
|
+
# @req_builder = FXText.new(req_editor, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
|
170
|
+
@textbox = FXText.new(text_frame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|TEXT_WORDWRAP)
|
|
171
|
+
#@textbox.textStyle |= TEXT_FIXEDWRAP
|
|
172
|
+
|
|
173
|
+
@textbox.connect(SEL_CHANGED, method(:onTextChanged))
|
|
174
|
+
|
|
175
|
+
@textbox.connect(SEL_RIGHTBUTTONRELEASE) do |sender, sel, event|
|
|
176
|
+
unless event.moved?
|
|
177
|
+
FXMenuPane.new(self) do |menu_pane|
|
|
178
|
+
pos = @textbox.selStartPos
|
|
179
|
+
len = @textbox.selEndPos - pos
|
|
180
|
+
selection = @textbox.extractText(pos, len)
|
|
181
|
+
addStringInfo(menu_pane, sender)
|
|
182
|
+
addDecoder(menu_pane, sender)
|
|
183
|
+
addEncoder(menu_pane, sender) if @textbox.editable?
|
|
184
|
+
FXMenuSeparator.new(menu_pane)
|
|
185
|
+
FXMenuCaption.new(menu_pane,"- Copy -")
|
|
186
|
+
FXMenuSeparator.new(menu_pane)
|
|
187
|
+
copyText = FXMenuCommand.new(menu_pane,"copy text: #{selection}", nil, @textbox, FXText::ID_COPY_SEL)
|
|
188
|
+
target = FXMenuCheck.new(menu_pane, "word wrap" )
|
|
189
|
+
target.check = ( @textbox.textStyle & TEXT_WORDWRAP > 0 ) ? true : false
|
|
190
|
+
|
|
191
|
+
target.connect(SEL_COMMAND) do |tsender, tsel, titem|
|
|
192
|
+
if tsender.checked?
|
|
193
|
+
@textbox.textStyle |= TEXT_WORDWRAP
|
|
194
|
+
else
|
|
195
|
+
@textbox.textStyle ^= TEXT_WORDWRAP
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
menu_pane.create
|
|
199
|
+
menu_pane.popup(nil, event.root_x, event.root_y)
|
|
200
|
+
app.runModalWhileShown(menu_pane)
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
if text2transcode then
|
|
206
|
+
@init_text = text2transcode
|
|
207
|
+
@textbox.setText(@init_text)
|
|
208
|
+
update_length_info()
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
end
|
|
215
|
+
end
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# gui_utils.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
module Gui
|
|
24
|
+
module Utils
|
|
25
|
+
|
|
26
|
+
def removeTags(text)
|
|
27
|
+
if text.class.to_s =~ /Array/i then
|
|
28
|
+
dummy = []
|
|
29
|
+
text.each do |line|
|
|
30
|
+
chunk = line.gsub(/<[^>]*>/,'').strip
|
|
31
|
+
dummy.push chunk.gsub("\x00","") if chunk.length > 0
|
|
32
|
+
end
|
|
33
|
+
return dummy.join("\n")
|
|
34
|
+
elsif text.class.to_s =~ /String/i then
|
|
35
|
+
chunk = text.gsub(/<[^<]*>/,'').strip
|
|
36
|
+
return chunk.gsub("\x00","")
|
|
37
|
+
#return text.gsub(/\r/,"")
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def cleanupHTTP(text)
|
|
42
|
+
|
|
43
|
+
if text.class.to_s =~ /Array/i then
|
|
44
|
+
dummy = []
|
|
45
|
+
text.each do |line|
|
|
46
|
+
chunk = line.gsub(/\r/,'').strip
|
|
47
|
+
dummy.push chunk.gsub("\x00","")
|
|
48
|
+
end
|
|
49
|
+
return dummy.join("\n")
|
|
50
|
+
elsif text.class.to_s =~ /String/i then
|
|
51
|
+
chunk = text.gsub(/\r/,'').strip
|
|
52
|
+
return chunk.gsub("\x00","")
|
|
53
|
+
#return text.gsub(/\r/,"")
|
|
54
|
+
|
|
55
|
+
end
|
|
56
|
+
return nil
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def replace_text(text_box, string)
|
|
60
|
+
pos = text_box.selStartPos
|
|
61
|
+
len = text_box.selEndPos - pos
|
|
62
|
+
text_box.removeText(pos,len)
|
|
63
|
+
text_box.insertText(pos, string)
|
|
64
|
+
text_box.setSelection(pos, string.length, true)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def addStringInfo(menu_pane, text_box)
|
|
68
|
+
pos = text_box.selStartPos
|
|
69
|
+
len = text_box.selEndPos - pos
|
|
70
|
+
string = text_box.extractText(pos, len)
|
|
71
|
+
FXMenuSeparator.new(menu_pane)
|
|
72
|
+
FXMenuCaption.new(menu_pane,"- Info -")
|
|
73
|
+
FXMenuSeparator.new(menu_pane)
|
|
74
|
+
FXMenuCaption.new(menu_pane,"Length: #{string.length}")
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def addDecoder(menu_pane, text_box)
|
|
79
|
+
pos = text_box.selStartPos
|
|
80
|
+
len = text_box.selEndPos - pos
|
|
81
|
+
string2decode = text_box.extractText(pos, len)
|
|
82
|
+
string2decode.extend Watobo::Mixin::Transcoders
|
|
83
|
+
FXMenuSeparator.new(menu_pane)
|
|
84
|
+
FXMenuCaption.new(menu_pane,"- Decoder -")
|
|
85
|
+
FXMenuSeparator.new(menu_pane)
|
|
86
|
+
decodeB64 = FXMenuCommand.new(menu_pane,"Base64: #{string2decode.b64decode}")
|
|
87
|
+
decodeB64.connect(SEL_COMMAND) {
|
|
88
|
+
replace_text(text_box, string2decode.b64decode)
|
|
89
|
+
}
|
|
90
|
+
decodeHex = FXMenuCommand.new(menu_pane,"Hex(A): #{string2decode.hexdecode}")
|
|
91
|
+
decodeHex.connect(SEL_COMMAND) {
|
|
92
|
+
replace_text(text_box, string2decode.hexdecode)
|
|
93
|
+
}
|
|
94
|
+
hex2int = FXMenuCommand.new(menu_pane,"Hex(Int): #{string2decode.hex2int}")
|
|
95
|
+
hex2int.connect(SEL_COMMAND) {
|
|
96
|
+
replace_text(text_box, string2decode.hex2int)
|
|
97
|
+
}
|
|
98
|
+
decodeURL = FXMenuCommand.new(menu_pane,"URL: #{string2decode.url_decode}")
|
|
99
|
+
decodeURL.connect(SEL_COMMAND) {
|
|
100
|
+
replace_text(text_box, string2decode.url_decode)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def addEncoder(menu_pane, text_box)
|
|
106
|
+
pos = text_box.selStartPos
|
|
107
|
+
len = text_box.selEndPos - pos
|
|
108
|
+
string2encode = text_box.extractText(pos, len)
|
|
109
|
+
string2encode.extend Watobo::Mixin::Transcoders
|
|
110
|
+
FXMenuSeparator.new(menu_pane)
|
|
111
|
+
FXMenuCaption.new(menu_pane,"- Encoder -")
|
|
112
|
+
FXMenuSeparator.new(menu_pane)
|
|
113
|
+
encodeB64 = FXMenuCommand.new(menu_pane,"Base64: #{string2encode.b64encode}")
|
|
114
|
+
encodeB64.connect(SEL_COMMAND) {
|
|
115
|
+
replace_text(text_box, string2encode.b64encode)
|
|
116
|
+
}
|
|
117
|
+
encodeHex = FXMenuCommand.new(menu_pane,"Hex: #{string2encode.hexencode}")
|
|
118
|
+
encodeHex.connect(SEL_COMMAND) {
|
|
119
|
+
replace_text(text_box, string2encode.hexencode)
|
|
120
|
+
}
|
|
121
|
+
encodeURL = FXMenuCommand.new(menu_pane,"URL: #{string2encode.url_encode}")
|
|
122
|
+
encodeURL.connect(SEL_COMMAND) {
|
|
123
|
+
replace_text(text_box, string2encode.url_encode)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# init_icons.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
module Gui
|
|
24
|
+
module Icons
|
|
25
|
+
WATOBO_LOGO = Watobo::Gui.load_gui_icon("watobo-logo.png")
|
|
26
|
+
|
|
27
|
+
ICON_CB_UNCHECKED = Watobo::Gui.load_gui_icon("cb_unchecked.ico")
|
|
28
|
+
ICON_CB_CHECKED = Watobo::Gui.load_gui_icon("cb_checked.ico")
|
|
29
|
+
ICON_CB_CHECKED_ORANGE = Watobo::Gui.load_gui_icon("cb_checked_orange.ico")
|
|
30
|
+
|
|
31
|
+
ICON_WATOBO = Watobo::Gui.load_gui_icon("watobo.ico")
|
|
32
|
+
|
|
33
|
+
ICON_FUZZ_TAG = Watobo::Gui.load_gui_icon("tag_blue_32x32.ico")
|
|
34
|
+
ICON_FUZZ_FILTER = Watobo::Gui.load_gui_icon("filter.ico")
|
|
35
|
+
ICON_FUZZ_GENERATOR = Watobo::Gui.load_gui_icon("engine.ico")
|
|
36
|
+
ICON_TOKEN = Watobo::Gui.load_gui_icon("coin_24x24.ico")
|
|
37
|
+
|
|
38
|
+
ICON_MANUAL_REQUEST = Watobo::Gui.load_gui_icon("applications_24x24.ico")
|
|
39
|
+
ICON_MANUAL_REQUEST_MEDIUM = Watobo::Gui.load_gui_icon("applications_24x24.ico")
|
|
40
|
+
ICON_MANUAL_REQUEST_SMALL = Watobo::Gui.load_gui_icon("applications_16x16.ico")
|
|
41
|
+
ICON_LOGIN_WIZZARD = Watobo::Gui.load_gui_icon("User.ico")
|
|
42
|
+
ICON_DIFFER = Watobo::Gui.load_gui_icon("monitor.ico")
|
|
43
|
+
|
|
44
|
+
ICON_INTERCEPTOR = Watobo::Gui.load_gui_icon("interceptor_24x24.ico")
|
|
45
|
+
|
|
46
|
+
ICON_START = Watobo::Gui.load_gui_icon("Play_24x24.ico")
|
|
47
|
+
ICON_STOP = Watobo::Gui.load_gui_icon("Stop_24x24.ico")
|
|
48
|
+
ICON_PAUSE = Watobo::Gui.load_gui_icon("Pause.ico")
|
|
49
|
+
ICON_REPORT = Watobo::Gui.load_gui_icon("Write Document.ico")
|
|
50
|
+
ICON_ADD_PROJECT = Watobo::Gui.load_gui_icon("Add_24x24.ico")
|
|
51
|
+
ICON_DASHBOARD = Watobo::Gui.load_gui_icon("Bandwidth_24x24.ico")
|
|
52
|
+
ICON_CONVERSATION = Watobo::Gui.load_gui_icon("conversation_24x24.ico")
|
|
53
|
+
ICON_TRANSCODER = Watobo::Gui.load_gui_icon("calculator_24x24.ico")
|
|
54
|
+
ICON_PROJECT = Watobo::Gui.load_gui_icon("browser_24x24.ico")
|
|
55
|
+
ICON_FUZZER = Watobo::Gui.load_gui_icon("fuzzer_24x24.ico")
|
|
56
|
+
ICON_FUZZER_MEDIUM = Watobo::Gui.load_gui_icon("fuzzer_24x24.ico")
|
|
57
|
+
ICON_FUZZER_SMALL = Watobo::Gui.load_gui_icon("fuzzer_16x16.ico")
|
|
58
|
+
ICON_PLUGIN = Watobo::Gui.load_gui_icon("plugin_24x24.ico")
|
|
59
|
+
|
|
60
|
+
# Findings Tree Icons
|
|
61
|
+
ICON_VULN = Watobo::Gui.load_gui_icon("Mr. Bomb_24x24.ico")
|
|
62
|
+
ICON_VULN_LOW = Watobo::Gui.load_gui_icon("Yellow Ball_24x24.ico")
|
|
63
|
+
ICON_VULN_MEDIUM = Watobo::Gui.load_gui_icon("Orange Ball_24x24.ico")
|
|
64
|
+
ICON_VULN_HIGH = Watobo::Gui.load_gui_icon("Red Ball_24x24.ico")
|
|
65
|
+
ICON_VULN_CRITICAL = Watobo::Gui.load_gui_icon("burn_24x24.ico")
|
|
66
|
+
ICON_INFO = Watobo::Gui.load_gui_icon("info_24x24.ico")
|
|
67
|
+
ICON_INFO_INFO = Watobo::Gui.load_gui_icon("iChat_24x24.ico")
|
|
68
|
+
ICON_INFO_USER = Watobo::Gui.load_gui_icon("User_24x24.ico")
|
|
69
|
+
ICON_HINTS = Watobo::Gui.load_gui_icon("advanced_24x24.ico")
|
|
70
|
+
ICON_HINTS_INFO = Watobo::Gui.load_gui_icon("help_24x24.ico")
|
|
71
|
+
|
|
72
|
+
# small
|
|
73
|
+
ICON_PROJECT_SMALL = Watobo::Gui.load_gui_icon("Web Browser_16x16.ico")
|
|
74
|
+
ICON_VULN_SMALL = Watobo::Gui.load_gui_icon("Mr. Bomb_16x16.ico")
|
|
75
|
+
ICON_VULN_LOW_SMALL = Watobo::Gui.load_gui_icon("Yellow Ball_16x16.ico")
|
|
76
|
+
ICON_VULN_MEDIUM_SMALL = Watobo::Gui.load_gui_icon("Orange Ball_16x16.ico")
|
|
77
|
+
ICON_VULN_HIGH_SMALL = Watobo::Gui.load_gui_icon("Red Ball_16x16.ico")
|
|
78
|
+
ICON_VULN_CRITICAL_SMALL = Watobo::Gui.load_gui_icon("burn_16x16.ico")
|
|
79
|
+
ICON_INFO_SMALL = Watobo::Gui.load_gui_icon("info_16x16.ico")
|
|
80
|
+
ICON_INFO_INFO_SMALL = Watobo::Gui.load_gui_icon("iChat_16x16.ico")
|
|
81
|
+
ICON_INFO_USER_SMALL = Watobo::Gui.load_gui_icon("User_16x16.ico")
|
|
82
|
+
ICON_HINTS_SMALL = Watobo::Gui.load_gui_icon("advanced_16x16.ico")
|
|
83
|
+
ICON_HINTS_INFO_SMALL = Watobo::Gui.load_gui_icon("help_16x16.ico")
|
|
84
|
+
|
|
85
|
+
# Sites Tree Icons
|
|
86
|
+
ICON_FOLDER = Watobo::Gui.load_gui_icon("folder.ico")
|
|
87
|
+
ICON_REQUEST = Watobo::Gui.load_gui_icon("Transfer.ico")
|
|
88
|
+
ICON_SITE = Watobo::Gui.load_gui_icon("server.ico")
|
|
89
|
+
|
|
90
|
+
ICON_FOLDER_SMALL = Watobo::Gui.load_gui_icon("folder_16x16.ico")
|
|
91
|
+
ICON_REQUEST_SMALL = Watobo::Gui.load_gui_icon("Transfer_16x16.ico")
|
|
92
|
+
ICON_SITE_SMALL = Watobo::Gui.load_gui_icon("server_16x16.ico")
|
|
93
|
+
|
|
94
|
+
ICON_SEND_REQUEST = Watobo::Gui.load_gui_icon("send.ico")
|
|
95
|
+
ICON_BROWSER_SMALL = Watobo::Gui.load_gui_icon("browser_16x16.ico")
|
|
96
|
+
ICON_BROWSER_MEDIUM = Watobo::Gui.load_gui_icon("browser_24x24.ico")
|
|
97
|
+
|
|
98
|
+
ICON_BTN_UP = Watobo::Gui.load_gui_icon("go-up_16x16.png")
|
|
99
|
+
ICON_BTN_DOWN = Watobo::Gui.load_gui_icon("go-down_16x16.png")
|
|
100
|
+
|
|
101
|
+
TBL_ICON_LOCK = Watobo::Gui.load_gui_icon("lock_12x12.ico")
|
|
102
|
+
|
|
103
|
+
SIBERAS_ICON = Watobo::Gui.load_gui_icon("siberas_logo_x24.gif")
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|