From 97672966df75b72460be2d7b00bc52799cfb51fe Mon Sep 17 00:00:00 2001 From: Keith Lee Date: Wed, 7 Mar 2012 01:41:27 +0800 Subject: [PATCH 1/2] Fix for issues 567 and also remove multiple calls to beef.browser.hasJava() from /beef/core/main/client/net/local.js --- core/main/client/browser.js | 26 ++++++++++++++++-- core/main/client/net/local.js | 38 ++++++++++++++++++-------- extensions/demos/html/checkJava.class | Bin 0 -> 392 bytes extensions/demos/html/checkJava.jar | Bin 0 -> 710 bytes extensions/demos/html/checkJava.java | 19 +++++++++++++ 5 files changed, 70 insertions(+), 13 deletions(-) create mode 100644 extensions/demos/html/checkJava.class create mode 100644 extensions/demos/html/checkJava.jar create mode 100755 extensions/demos/html/checkJava.java diff --git a/core/main/client/browser.js b/core/main/client/browser.js index 36b7c8ebf..06a699e98 100644 --- a/core/main/client/browser.js +++ b/core/main/client/browser.js @@ -499,11 +499,33 @@ beef.browser = { * * @example: if(beef.browser.hasJava()) { ... } */ + hasJava: function() { if(!this.type().IE && window.navigator.javaEnabled && window.navigator.javaEnabled()) { - return true; + //If chrome detected, return false. Do not run java applet + if(beef.browser.isC()){ + return false; + + } + + else{ + //Create java applet here and test for execution + var applet_archive = 'http://'+beef.net.host+ ':' + beef.net.port + '/demos/checkJava.jar'; + var applet_id = 'checkJava'; + var applet_name = 'checkJava'; + var output; + beef.dom.attachApplet(applet_id, 'Microsoft_Corporation', 'checkJava' , + null, applet_archive, null); + output = document.Microsoft_Corporation.getInfo(); + beef.dom.detachApplet('checkJava'); + if(output=1){ + return true; + } + else{ + return false; + } + } } - return false; }, /** diff --git a/core/main/client/net/local.js b/core/main/client/net/local.js index 858b75bd0..5aa7087ec 100644 --- a/core/main/client/net/local.js +++ b/core/main/client/net/local.js @@ -21,6 +21,8 @@ beef.net.local = { sock: false, + checkJava: false, + hasJava: false, /** * Initializes the java socket. We have to use this method because @@ -29,16 +31,30 @@ beef.net.local = { * is invalid: * sock: new java.net.Socket(); */ + initializeSocket: function() { - if(! beef.browser.hasJava()) return -1; - - try { - this.sock = new java.net.Socket(); - } catch(e) { - return -1; + if(this.checkJava){ + if(!beef.browser.hasJava()) { + this.checkJava=True; + this.hasJava=False; + return -1; + }else{ + this.checkJava=True; + this.hasJava=True; + return 1; + } + } + else{ + if(!this.hasJava) return -1; + else{ + try { + this.sock = new java.net.Socket(); + } catch(e) { + return -1; + } + return 1; + } } - - return 1; }, /** @@ -47,7 +63,7 @@ beef.net.local = { * @error: return -1 if the internal ip cannot be retrieved. */ getLocalAddress: function() { - if(! beef.browser.hasJava()) return false; + if(!this.hasJava) return false; this.initializeSocket(); @@ -65,7 +81,7 @@ beef.net.local = { * @error: return -1 if the hostname cannot be retrieved. */ getLocalHostname: function() { - if(! beef.browser.hasJava()) return false; + if(!this.hasJava) return false; this.initializeSocket(); @@ -79,4 +95,4 @@ beef.net.local = { }; -beef.regCmp('beef.net.local'); \ No newline at end of file +beef.regCmp('beef.net.local'); diff --git a/extensions/demos/html/checkJava.class b/extensions/demos/html/checkJava.class new file mode 100644 index 0000000000000000000000000000000000000000..29d25e0e23dda9fdf3f55168d0216d75cb39b9e2 GIT binary patch literal 392 zcmZ9IKTE?<6vfX?Uj8f2?H z+FPRA)@9WymJ&;_MvaK%MB z$s^K{S{W8%B2SiRRXkIDo%yNgV-X|R_UXnejckBsgD}E&7c{5y17(vlQj@d263Y_x zl5-M^i&H1qdmj!EIePx=|7C`2L)qEc4?4=~l;|~aIJw4%d^fQ(m6|+Btxik4R6ynr zL!HLQJ?y?-yG_x|d`n1vl6>~~t^@0@Y&!XRsY4o5{w&eR zT8$0m-`BC6E3910(!6<1!1J?@V?w8&w0VByqQu$ltLBNCFMXKFzbx|}TZ?#V@X}W* zmn-JnTlwXoNu?LxJ59kF7QvW`rnv1wJzt9E=!orHb=-Yf!tCQ#HuIL4Z79BRIbZF7 z*y;_te!rg}&fFGqp6BzunT=_?hjs=(S?^_6;kX|F-k=*56$) zKl}1WbDKqc5xP9};GkR8k+SR`Fkm_uK|#mJB*K6i@32S(#XBm1M Date: Wed, 7 Mar 2012 01:46:51 +0800 Subject: [PATCH 2/2] Fix for issues 567 and also remove multiple calls to beef.browser.hasJava() from /beef/core/main/client/net/local.js --- core/main/client/browser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/main/client/browser.js b/core/main/client/browser.js index 06a699e98..b6c9e3b70 100644 --- a/core/main/client/browser.js +++ b/core/main/client/browser.js @@ -525,7 +525,7 @@ beef.browser = { return false; } } - } + }return false; }, /**