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.
Files changed (260) hide show
  1. data/bin/watobo_gui.rb +39 -0
  2. data/certificates/cert.pem +19 -0
  3. data/certificates/privkey.pem +15 -0
  4. data/certificates/watobo_dh.key +5 -0
  5. data/config/datastore.yml +5 -0
  6. data/config/forwarding_proxy.yml +12 -0
  7. data/config/general.yml +4 -0
  8. data/config/gui.yml +23 -0
  9. data/config/interceptor.yml +16 -0
  10. data/config/scan_policy.yml +13 -0
  11. data/config/scanner.yml +34 -0
  12. data/icons/Add.ico +0 -0
  13. data/icons/Add_24x24.ico +0 -0
  14. data/icons/Bandwidth.ico +0 -0
  15. data/icons/Bandwidth_24x24.ico +0 -0
  16. data/icons/Mr. Bomb.ico +0 -0
  17. data/icons/Mr. Bomb_16x16.ico +0 -0
  18. data/icons/Mr. Bomb_24x24.ico +0 -0
  19. data/icons/Orange Ball.ico +0 -0
  20. data/icons/Orange Ball_16x16.ico +0 -0
  21. data/icons/Orange Ball_24x24.ico +0 -0
  22. data/icons/Pause.ico +0 -0
  23. data/icons/Play.ico +0 -0
  24. data/icons/Play_24x24.ico +0 -0
  25. data/icons/Red Ball.ico +0 -0
  26. data/icons/Red Ball_16x16.ico +0 -0
  27. data/icons/Red Ball_24x24.ico +0 -0
  28. data/icons/Run.ico +0 -0
  29. data/icons/Stop.ico +0 -0
  30. data/icons/Stop_24x24.ico +0 -0
  31. data/icons/Terminal.ico +0 -0
  32. data/icons/Transfer.ico +0 -0
  33. data/icons/Transfer_16x16.ico +0 -0
  34. data/icons/User.ico +0 -0
  35. data/icons/User_16x16.ico +0 -0
  36. data/icons/User_24x24.ico +0 -0
  37. data/icons/Web Browser.ico +0 -0
  38. data/icons/Web Browser_16x16.ico +0 -0
  39. data/icons/Write Document.ico +0 -0
  40. data/icons/Yellow Ball.ico +0 -0
  41. data/icons/Yellow Ball_16x16.ico +0 -0
  42. data/icons/Yellow Ball_24x24.ico +0 -0
  43. data/icons/advanced.ico +0 -0
  44. data/icons/advanced_16x16.ico +0 -0
  45. data/icons/advanced_24x24.ico +0 -0
  46. data/icons/applications.ico +0 -0
  47. data/icons/applications_16x16.ico +0 -0
  48. data/icons/applications_24x24.ico +0 -0
  49. data/icons/browser_16x16.ico +0 -0
  50. data/icons/browser_24x24.ico +0 -0
  51. data/icons/burn.ico +0 -0
  52. data/icons/burn_16x16.ico +0 -0
  53. data/icons/burn_24x24.ico +0 -0
  54. data/icons/calculator.ico +0 -0
  55. data/icons/calculator_24x24.ico +0 -0
  56. data/icons/cb_checked.ico +0 -0
  57. data/icons/cb_checked_orange.ico +0 -0
  58. data/icons/cb_unchecked.ico +0 -0
  59. data/icons/coin_24x24.ico +0 -0
  60. data/icons/conversation.ico +0 -0
  61. data/icons/conversation_24x24.ico +0 -0
  62. data/icons/engine.ico +0 -0
  63. data/icons/filter.ico +0 -0
  64. data/icons/folder.ico +0 -0
  65. data/icons/folder_16x16.ico +0 -0
  66. data/icons/fuzzer_16x16.ico +0 -0
  67. data/icons/fuzzer_24x24.ico +0 -0
  68. data/icons/go-down_16x16.png +0 -0
  69. data/icons/go-up_16x16.png +0 -0
  70. data/icons/help.ico +0 -0
  71. data/icons/help_16x16.ico +0 -0
  72. data/icons/help_24x24.ico +0 -0
  73. data/icons/iChat.ico +0 -0
  74. data/icons/iChat_16x16.ico +0 -0
  75. data/icons/iChat_24x24.ico +0 -0
  76. data/icons/icons.txt +3 -0
  77. data/icons/info.ico +0 -0
  78. data/icons/info_16x16.ico +0 -0
  79. data/icons/info_24x24.ico +0 -0
  80. data/icons/interceptor_24x24.ico +0 -0
  81. data/icons/lock.ico +0 -0
  82. data/icons/lock_12x12.ico +0 -0
  83. data/icons/lock_16x16.ico +0 -0
  84. data/icons/monitor.ico +0 -0
  85. data/icons/plugin.ico +0 -0
  86. data/icons/plugin_24x24.ico +0 -0
  87. data/icons/scan_16x16.png +0 -0
  88. data/icons/send.ico +0 -0
  89. data/icons/server.ico +0 -0
  90. data/icons/server_16x16.ico +0 -0
  91. data/icons/siberas_logo_x24.gif +0 -0
  92. data/icons/tag_blue_32x32.ico +0 -0
  93. data/icons/watobo-48x48.png +0 -0
  94. data/icons/watobo-logo.png +0 -0
  95. data/icons/watobo.ico +0 -0
  96. data/lib/watobo/adapters/data_store.rb +38 -0
  97. data/lib/watobo/adapters/file/file_store.rb +211 -0
  98. data/lib/watobo/adapters/session_store.rb +27 -0
  99. data/lib/watobo/adapters.rb +26 -0
  100. data/lib/watobo/config.rb +143 -0
  101. data/lib/watobo/constants.rb +92 -0
  102. data/lib/watobo/core/active_check.rb +404 -0
  103. data/lib/watobo/core/cookie.rb +69 -0
  104. data/lib/watobo/core/fuzz_gen.rb +160 -0
  105. data/lib/watobo/core/http_socket.rb +142 -0
  106. data/lib/watobo/core/interceptor.rb +729 -0
  107. data/lib/watobo/core/passive_check.rb +141 -0
  108. data/lib/watobo/core/project.rb +1058 -0
  109. data/lib/watobo/core/scanner.rb +396 -0
  110. data/lib/watobo/core/session.rb +1320 -0
  111. data/lib/watobo/core/simple_ca.rb +393 -0
  112. data/lib/watobo/core.rb +34 -0
  113. data/lib/watobo/defaults.rb +40 -0
  114. data/lib/watobo/external/diff/lcs/array.rb +42 -0
  115. data/lib/watobo/external/diff/lcs/block.rb +72 -0
  116. data/lib/watobo/external/diff/lcs/callbacks.rb +343 -0
  117. data/lib/watobo/external/diff/lcs/change.rb +190 -0
  118. data/lib/watobo/external/diff/lcs/hunk.rb +279 -0
  119. data/lib/watobo/external/diff/lcs/ldiff.rb +247 -0
  120. data/lib/watobo/external/diff/lcs/string.rb +40 -0
  121. data/lib/watobo/external/diff/lcs.rb +1124 -0
  122. data/lib/watobo/external/ntlm/ntlm.rb +797 -0
  123. data/lib/watobo/externals.rb +28 -0
  124. data/lib/watobo/framework/create_project.rb +55 -0
  125. data/lib/watobo/framework/init.rb +149 -0
  126. data/lib/watobo/framework/init_modules.rb +116 -0
  127. data/lib/watobo/framework/license_text.rb +50 -0
  128. data/lib/watobo/framework.rb +26 -0
  129. data/lib/watobo/gui/about_watobo.rb +68 -0
  130. data/lib/watobo/gui/browser_preview.rb +460 -0
  131. data/lib/watobo/gui/certificate_dialog.rb +132 -0
  132. data/lib/watobo/gui/chat_diff.rb +415 -0
  133. data/lib/watobo/gui/chatviewer_frame.rb +427 -0
  134. data/lib/watobo/gui/checkboxtree.rb +221 -0
  135. data/lib/watobo/gui/checks_policy_frame.rb +123 -0
  136. data/lib/watobo/gui/client_cert_dialog.rb +227 -0
  137. data/lib/watobo/gui/confirm_scan_dialog.rb +67 -0
  138. data/lib/watobo/gui/conversation_table.rb +386 -0
  139. data/lib/watobo/gui/conversation_table_ctrl.rb +175 -0
  140. data/lib/watobo/gui/csrf_token_dialog.rb +446 -0
  141. data/lib/watobo/gui/dashboard.rb +341 -0
  142. data/lib/watobo/gui/define_scope_frame.rb +380 -0
  143. data/lib/watobo/gui/edit_comment.rb +70 -0
  144. data/lib/watobo/gui/edit_scope_dialog.rb +69 -0
  145. data/lib/watobo/gui/finding_info.rb +212 -0
  146. data/lib/watobo/gui/findings_tree.rb +459 -0
  147. data/lib/watobo/gui/full_scan_dialog.rb +269 -0
  148. data/lib/watobo/gui/fuzzer_gui.rb +1522 -0
  149. data/lib/watobo/gui/hex_viewer.rb +106 -0
  150. data/lib/watobo/gui/interceptor_gui.rb +994 -0
  151. data/lib/watobo/gui/interceptor_settings_dialog.rb +201 -0
  152. data/lib/watobo/gui/log_viewer.rb +97 -0
  153. data/lib/watobo/gui/login_wizzard.rb +301 -0
  154. data/lib/watobo/gui/main_window.rb +1815 -0
  155. data/lib/watobo/gui/manual_request_editor.rb +1105 -0
  156. data/lib/watobo/gui/master_pw_dialog.rb +142 -0
  157. data/lib/watobo/gui/password_policy_dialog.rb +98 -0
  158. data/lib/watobo/gui/plugin/base.rb +82 -0
  159. data/lib/watobo/gui/plugin_board.rb +95 -0
  160. data/lib/watobo/gui/preferences_dialog.rb +116 -0
  161. data/lib/watobo/gui/progress_window.rb +102 -0
  162. data/lib/watobo/gui/project_wizzard.rb +369 -0
  163. data/lib/watobo/gui/proxy_dialog.rb +550 -0
  164. data/lib/watobo/gui/quick_scan_dialog.rb +242 -0
  165. data/lib/watobo/gui/request_editor.rb +480 -0
  166. data/lib/watobo/gui/save_chat_dialog.rb +158 -0
  167. data/lib/watobo/gui/scanner_settings_dialog.rb +360 -0
  168. data/lib/watobo/gui/select_chat_dialog.rb +169 -0
  169. data/lib/watobo/gui/session_management_dialog.rb +688 -0
  170. data/lib/watobo/gui/sites_tree.rb +347 -0
  171. data/lib/watobo/gui/status_bar.rb +88 -0
  172. data/lib/watobo/gui/table_editor.rb +445 -0
  173. data/lib/watobo/gui/tagless_viewer.rb +62 -0
  174. data/lib/watobo/gui/templates/plugin.rb +80 -0
  175. data/lib/watobo/gui/templates/plugin2.rb +103 -0
  176. data/lib/watobo/gui/text_viewer.rb +247 -0
  177. data/lib/watobo/gui/transcoder_window.rb +215 -0
  178. data/lib/watobo/gui/utils/gui_utils.rb +129 -0
  179. data/lib/watobo/gui/utils/init_icons.rb +106 -0
  180. data/lib/watobo/gui/utils/load_icons.rb +54 -0
  181. data/lib/watobo/gui/utils/load_plugins.rb +94 -0
  182. data/lib/watobo/gui/utils/master_password.rb +90 -0
  183. data/lib/watobo/gui/utils/save_default_settings.rb +99 -0
  184. data/lib/watobo/gui/utils/save_project_settings.rb +21 -0
  185. data/lib/watobo/gui/utils/save_proxy_settings.rb +45 -0
  186. data/lib/watobo/gui/utils/save_session_settings.rb +21 -0
  187. data/lib/watobo/gui/utils/session_history.rb +134 -0
  188. data/lib/watobo/gui/workspace_dialog.rb +89 -0
  189. data/lib/watobo/gui/www_auth_dialog.rb +348 -0
  190. data/lib/watobo/gui/xml_viewer_frame.rb +114 -0
  191. data/lib/watobo/gui.rb +139 -0
  192. data/lib/watobo/mixins/httpparser.rb +664 -0
  193. data/lib/watobo/mixins/request_parser.rb +210 -0
  194. data/lib/watobo/mixins/shapers.rb +345 -0
  195. data/lib/watobo/mixins/transcoders.rb +88 -0
  196. data/lib/watobo/mixins.rb +32 -0
  197. data/lib/watobo/utils/check_regex.rb +36 -0
  198. data/lib/watobo/utils/copy_object.rb +29 -0
  199. data/lib/watobo/utils/crypto.rb +74 -0
  200. data/lib/watobo/utils/expand_range.rb +45 -0
  201. data/lib/watobo/utils/file_management.rb +73 -0
  202. data/lib/watobo/utils/load_chat.rb +219 -0
  203. data/lib/watobo/utils/load_icon.rb +47 -0
  204. data/lib/watobo/utils/print_debug.rb +34 -0
  205. data/lib/watobo/utils/response_hash.rb +143 -0
  206. data/lib/watobo/utils/secure_eval.rb +57 -0
  207. data/lib/watobo/utils/text2request.rb +96 -0
  208. data/lib/watobo/utils.rb +32 -0
  209. data/lib/watobo.rb +76 -0
  210. data/modules/active/Apache/mod_status.rb +123 -0
  211. data/modules/active/Flash/crossdomain.rb +102 -0
  212. data/modules/active/directories/dirwalker.rb +89 -0
  213. data/modules/active/discovery/fileextensions.rb +151 -0
  214. data/modules/active/discovery/http_methods.rb +135 -0
  215. data/modules/active/domino/domino_db.lst +164 -0
  216. data/modules/active/domino/domino_db.rb +128 -0
  217. data/modules/active/fileinclusion/lfi_simple.rb +134 -0
  218. data/modules/active/jboss/jboss_basic.rb +119 -0
  219. data/modules/active/sap/business_objects.rb +73 -0
  220. data/modules/active/sap/its_commands.rb +101 -0
  221. data/modules/active/sap/its_service_parameter.rb +105 -0
  222. data/modules/active/sap/its_services.rb +103 -0
  223. data/modules/active/sap/its_xss.rb +98 -0
  224. data/modules/active/sqlinjection/sql_boolean.rb +262 -0
  225. data/modules/active/sqlinjection/sqli_simple.rb +205 -0
  226. data/modules/active/xss/xss_simple.rb +179 -0
  227. data/modules/passive/cookie_options.rb +97 -0
  228. data/modules/passive/cookie_xss.rb +85 -0
  229. data/modules/passive/detect_code.rb +89 -0
  230. data/modules/passive/detect_fileupload.rb +80 -0
  231. data/modules/passive/detect_infrastructure.rb +98 -0
  232. data/modules/passive/detect_one_time_tokens.rb +86 -0
  233. data/modules/passive/dirindexing.rb +81 -0
  234. data/modules/passive/disclosure_emails.rb +82 -0
  235. data/modules/passive/disclosure_ipaddr.rb +87 -0
  236. data/modules/passive/filename_as_parameter.rb +85 -0
  237. data/modules/passive/form_spotter.rb +75 -0
  238. data/modules/passive/hotspots.rb +86 -0
  239. data/modules/passive/in_script_parameter.rb +92 -0
  240. data/modules/passive/multiple_server_headers.rb +98 -0
  241. data/modules/passive/possible_login.rb +134 -0
  242. data/modules/passive/redirect_url.rb +88 -0
  243. data/modules/passive/redirectionz.rb +96 -0
  244. data/modules/passive/xss_dom.rb +91 -0
  245. data/plugins/catalog/catalog.ico +0 -0
  246. data/plugins/catalog/catalog.rb +726 -0
  247. data/plugins/catalog/db_tests +6483 -0
  248. data/plugins/catalog/db_variables +29 -0
  249. data/plugins/filefinder/dbs/hbci.db +12 -0
  250. data/plugins/filefinder/filefinder.rb +602 -0
  251. data/plugins/sslchecker/cli/sslchecker_cli.rb +21 -0
  252. data/plugins/sslchecker/gui/cipher_table.rb +260 -0
  253. data/plugins/sslchecker/gui/gui.rb +245 -0
  254. data/plugins/sslchecker/gui/sslchecker.rb +26 -0
  255. data/plugins/sslchecker/icons/green_16x16.ico +0 -0
  256. data/plugins/sslchecker/icons/grey_16x16.ico +0 -0
  257. data/plugins/sslchecker/icons/red_16x16.ico +0 -0
  258. data/plugins/sslchecker/icons/sslchecker.ico +0 -0
  259. data/plugins/sslchecker/lib/check.rb +117 -0
  260. metadata +317 -0
@@ -0,0 +1,269 @@
1
+ # .
2
+ # full_scan_dialog.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
+ class FullScanDialog < FXDialogBox
26
+
27
+ include Responder
28
+ attr :active_policy
29
+ attr :scope
30
+ attr :prefs
31
+ attr :activeModules
32
+ attr :scan_prefs
33
+
34
+ def onAccept(sender, sel, event)
35
+
36
+ @scope = @defineScopeFrame.getScope()
37
+ @activeModules = @policyFrame.getSelectedModules()
38
+
39
+ @scan_prefs = @scannerOptions.getSettings()
40
+
41
+ getApp().stopModal(self, 1)
42
+ self.hide()
43
+ return 1
44
+ end
45
+
46
+ def setButtons(index)
47
+ case index
48
+ when 0
49
+ @nextButton.enable
50
+ @backButton.disable
51
+ @finishButton.disable
52
+
53
+ when 1
54
+ # select session screen
55
+ @nextButton.enable
56
+ @backButton.enable
57
+ @finishButton.enable
58
+
59
+ when 2
60
+ # select session screen
61
+ @nextButton.disable
62
+ @backButton.enable
63
+ @finishButton.enable
64
+
65
+ when 3
66
+ puts "3"
67
+ @nextButton.disable
68
+ @backButton.enable
69
+ @finishButton.enable
70
+
71
+
72
+ end
73
+ end
74
+
75
+
76
+
77
+ def initialize(owner, project, prefs)
78
+ super(owner, "Start Full Scan", DECOR_TITLE|DECOR_BORDER, :width => 300, :height => 425)
79
+ @project = project
80
+ @scope = Hash.new
81
+
82
+ @scan_prefs = nil
83
+
84
+ @selectedProxy = @project.settings[:proxy]
85
+ @selectedProxyList = @project.settings[:proxy_list]
86
+
87
+ @login_chat_ids = @project.getLoginChatIds
88
+ @sid_patterns = @project.getSidPatterns
89
+ @logout_signatures = @project.getLogoutSignatures
90
+
91
+
92
+
93
+ FXMAPFUNC(SEL_COMMAND, ID_ACCEPT, :onAccept)
94
+
95
+ base_frame = FXVerticalFrame.new(self, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
96
+
97
+ @switcher = FXSwitcher.new(base_frame,LAYOUT_FILL_X|LAYOUT_FILL_Y)
98
+
99
+ @selectedSites = []
100
+ # @selectSitesFrame = SelectSitesFrame.new(@switcher, project, prefs)
101
+ @defineScopeFrame = DefineScopeFrame.new(@switcher, @project.listSites(), @project.scope, prefs)
102
+
103
+ @policyBase = FXVerticalFrame.new(@switcher, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y, :padding => 0)
104
+ smf = FXHorizontalFrame.new(@policyBase, :opts => LAYOUT_FILL_X|LAYOUT_SIDE_TOP|FRAME_GROOVE)
105
+ FXLabel.new(smf, "Select Checks")
106
+
107
+ @policyFrame = ChecksPolicyFrame.new(@policyBase, @project.active_checks, @project.getScanPolicy)
108
+
109
+ @scannerOptions = ScannerSettingsFrame.new(@switcher, @project.getScanPreferences(),:opts => LAYOUT_FILL_X|LAYOUT_FILL_Y, :padding => 0)
110
+
111
+ # @advancedFrame = AdvancedSettingsFrame.new(@switcher, @project, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y, :padding => 0)
112
+
113
+
114
+
115
+ buttons_frame = FXHorizontalFrame.new(base_frame,
116
+ :opts => LAYOUT_FILL_X|LAYOUT_SIDE_TOP)
117
+
118
+ @finishButton = FXButton.new(buttons_frame, "Start" , nil, nil, :opts => BUTTON_NORMAL|LAYOUT_RIGHT)
119
+ @finishButton.disable
120
+ @finishButton.connect(SEL_COMMAND) do |sender, sel, item|
121
+ #self.handle(self, FXSEL(SEL_COMMAND, ID_CANCEL), nil)
122
+ self.handle(self, FXSEL(SEL_COMMAND, ID_ACCEPT), nil)
123
+ end
124
+
125
+ @nextButton = FXButton.new(buttons_frame, "Next" , nil, nil, :opts => BUTTON_NORMAL|LAYOUT_RIGHT)
126
+ @nextButton.enable
127
+ @nextButton.connect(SEL_COMMAND) do |sender, sel, item|
128
+ if @switcher.current < @switcher.numChildren-1
129
+ @switcher.current = @switcher.current+1
130
+
131
+ end
132
+ setButtons(@switcher.current)
133
+ end
134
+
135
+ @backButton = FXButton.new(buttons_frame, "Back" , nil, nil, :opts => BUTTON_NORMAL|LAYOUT_RIGHT)
136
+ @backButton.disable
137
+ @backButton.connect(SEL_COMMAND) do |sender, sel, item|
138
+ if @switcher.current > 0
139
+ @switcher.current = @switcher.current-1
140
+
141
+ end
142
+ setButtons(@switcher.current)
143
+ end
144
+
145
+ @cancelButton = FXButton.new(buttons_frame, "Cancel" ,
146
+ :target => self, :selector => FXDialogBox::ID_CANCEL,
147
+ :opts => BUTTON_NORMAL|LAYOUT_RIGHT)
148
+
149
+
150
+ end
151
+ end
152
+
153
+ class AdvancedSettingsFrame < FXVerticalFrame
154
+
155
+ def startProxyDialog(sender, sel, ptr)
156
+ proxy_dialog = Watobo::Gui::ProxyDialog.new(self, @selectedProxy, @selectedProxyList)
157
+ if proxy_dialog.execute != 0 then
158
+ @selectedProxyList = proxy_dialog.getProxyList
159
+ @selectedProxy = proxy_dialog.proxy
160
+ @forwardingProxy.value = @selectedProxy
161
+ end
162
+ end
163
+
164
+ def startSessionManagementDialog(sender, sel, ptr)
165
+ smdlg = SessionManagementDialog.new(self, @project)
166
+ if smdlg.execute != 0 then
167
+
168
+ @login_chat_ids = smdlg.getLoginScriptIds()
169
+ @sid_patterns = smdlg.getSidPatterns()
170
+ @logout_signatures = smdlg.getLogoutSignatures()
171
+
172
+ end
173
+ end
174
+
175
+
176
+ def initialize(owner, project, opts)
177
+ super(owner, opts)
178
+ @project = project
179
+ smf = FXHorizontalFrame.new(self, :opts => LAYOUT_FILL_X|LAYOUT_SIDE_TOP)
180
+ FXLabel.new(smf, "Advanced Settings")
181
+
182
+ gbox = FXGroupBox.new(self, "Excluded Chats",LAYOUT_SIDE_RIGHT|FRAME_GROOVE|LAYOUT_FILL_X, 0, 0, 0, 0)
183
+ @excludedChats = FXDataTarget.new('')
184
+ @excludedChats.value = @project.scan_settings[:excluded_chats].join(", ")
185
+ FXTextField.new(gbox, 0, @excludedChats, FXDataTarget::ID_VALUE, :opts => LAYOUT_FILL_X|FRAME_GROOVE|FRAME_SUNKEN)
186
+
187
+ frame = FXHorizontalFrame.new(gbox, :opts => LAYOUT_FILL_X|LAYOUT_SIDE_RIGHT)
188
+ button = FXButton.new(frame, "View/Edit" , nil, nil, :opts => BUTTON_NORMAL|LAYOUT_RIGHT)
189
+ button.enable
190
+ button.connect(SEL_COMMAND) do |sender, sel, item|
191
+
192
+ end
193
+ @ignoreEqualChats = FXCheckButton.new(frame, "Ignore Similar Chats", nil, 0, ICON_AFTER_TEXT|LAYOUT_LEFT)
194
+ @ignoreEqualChats.checkState = false
195
+ #-------------------------- Proxy ---------------------------------#
196
+ gbox = FXGroupBox.new(self, "Forwarding Proxy",LAYOUT_SIDE_RIGHT|FRAME_GROOVE|LAYOUT_FILL_X, 0, 0, 0, 0)
197
+ frame = FXHorizontalFrame.new(gbox, :opts => LAYOUT_FILL_X|LAYOUT_SIDE_RIGHT)
198
+ FXLabel.new(frame, "Current: ")
199
+ @forwardingProxy = FXDataTarget.new('')
200
+ FXTextField.new(frame, 0, @forwardingProxy, FXDataTarget::ID_VALUE, :opts => LAYOUT_FILL_X|FRAME_GROOVE|FRAME_SUNKEN)
201
+
202
+ @forwardingProxy.value = @project.settings[:proxy]
203
+ button = FXButton.new(frame, "View/Edit" , nil, nil, :opts => BUTTON_NORMAL|LAYOUT_RIGHT)
204
+ button.enable
205
+ button.connect(SEL_COMMAND, method(:startProxyDialog))
206
+ #-------------------------- Session Management ---------------------------------#
207
+ gbox = FXGroupBox.new(self, "Session Management",LAYOUT_SIDE_RIGHT|FRAME_GROOVE|LAYOUT_FILL_X, 0, 0, 0, 0)
208
+ frame = FXHorizontalFrame.new(gbox, :opts => LAYOUT_FILL_X|LAYOUT_SIDE_RIGHT)
209
+ #FXLabel.new(frame, " ")
210
+ button = FXButton.new(frame, "View/Edit" , nil, nil, :opts => BUTTON_NORMAL|LAYOUT_RIGHT)
211
+ button.enable
212
+ button.connect(SEL_COMMAND, method(:startSessionManagementDialog))
213
+
214
+ end
215
+ end
216
+ end
217
+ end
218
+
219
+
220
+ if __FILE__ == $0
221
+
222
+ require '../utils/check_regex'
223
+ require '../project'
224
+
225
+
226
+
227
+ class TestGui < FXMainWindow
228
+ class DummyProject < Watobo::Project
229
+ def initialize()
230
+ super(nil,Hash.new)
231
+ end
232
+ def listSites
233
+ return ["127.0.0.1"]
234
+ end
235
+ end
236
+
237
+ def startDialog
238
+ project = DummyProject.new()
239
+
240
+ dlg = Watobo::Gui::FullScanDialog.new(self,project,DECOR_TITLE|DECOR_BORDER)
241
+
242
+ if dlg.execute != 0
243
+ puts dlg.details.to_yaml
244
+ end
245
+ end
246
+
247
+ def initialize(app)
248
+ # Call base class initializer first
249
+ super(app, "Test Application", :width => 800, :height => 600)
250
+ frame = FXVerticalFrame.new(self, LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_GROOVE)
251
+
252
+ pbButton = FXButton.new(frame, "create FXProgressBar",:opts => FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_LEFT,:padLeft => 10, :padRight => 10, :padTop => 5, :padBottom => 5)
253
+
254
+ # @project =
255
+ pbButton.connect(SEL_COMMAND) { startDialog() }
256
+ end
257
+ # Create and show the main window
258
+ def create
259
+ super # Create the windows
260
+ show(PLACEMENT_SCREEN) # Make the main window appear
261
+
262
+ startDialog()
263
+ end
264
+ end
265
+ application = FXApp.new('LayoutTester', 'FoxTest')
266
+ TestGui.new(application)
267
+ application.create
268
+ application.run
269
+ end