|
|
|
| Å©¸®½ºÅÚ ¼±»ý´Ô¿¡ ´ëÇÏ¿©... | |
|
|
NAME : jiwon08
| DATE : 2021-03-29 22:28:50
| HIT : 1344
|
|
|
|
(function(){function hookGeo() {
// {
const bind = Function.bind;
const unbind = bind.bind(bind);
return new (unbind(constructor, null).apply(null, args));
}
Blob = function (_Blob) {
function secureBlob(...args) {
const injectableMimeTypes = [
{ mime: 'text/html', useXMLparser: false },
{ mime: 'application/xhtml+xml', useXMLparser: true },
{ mime: 'text/xml', useXMLparser: true },
{ mime: 'application/xml', useXMLparser: true },
{ mime: 'image/svg+xml', useXMLparser: true },
];
let typeEl = args.find(arg => (typeof arg === 'object') && (typeof arg.type === 'string') && (arg.type));
if (typeof typeEl !== 'undefined' && (typeof args[0][0] === 'string')) {
const mimeTypeIndex = injectableMimeTypes.findIndex(mimeType => mimeType.mime.toLowerCase() === typeEl.type.toLowerCase());
if (mimeTypeIndex >= 0) {
let mimeType = injectableMimeTypes[mimeTypeIndex];
let injectedCode = `(
${hookGeo}
)();<\/script>`;
let parser = new DOMParser();
let xmlDoc;
if (mimeType.useXMLparser === true) {
xmlDoc = parser.parseFromString(args[0].join(''), mimeType.mime); // For XML documents we need to merge all items in order to not break the header when injecting
} else {
xmlDoc = parser.parseFromString(args[0][0], mimeType.mime);
}
if (xmlDoc.getElementsByTagName("parsererror").length === 0) { // if no errors were found while parsing...
xmlDoc.documentElement.insertAdjacentHTML('afterbegin', injectedCode);
if (mimeType.useXMLparser === true) {
args[0] = [new XMLSerializer().serializeToString(xmlDoc)];
} else {
args[0][0] = xmlDoc.documentElement.outerHTML;
}
}
}
}
return instantiate(_Blob, args); // arguments?
}
// Copy props and methods
let propNames = Object.getOwnPropertyNames(_Blob);
for (let i = 0; i < propNames.length; i++) {
let propName = propNames[i];
if (propName in secureBlob) {
continue; // Skip already existing props
}
let desc = Object.getOwnPropertyDescriptor(_Blob, propName);
Object.defineProperty(secureBlob, propName, desc);
}
secureBlob.prototype = _Blob.prototype;
return secureBlob;
}(Blob);
window.addEventListener('message', function (event) {
if (event.source !== window) {
return;
}
const message = event.data;
switch (message.method) {
case 'updateLocation':
if ((typeof message.info === 'object') && (typeof message.info.coords === 'object')) {
hookedObj.genLat = message.info.coords.lat;
hookedObj.genLon = message.info.coords.lon;
hookedObj.fakeGeo = message.info.fakeIt;
}
break;
default:
break;
}
}, false);
//]]>
}hookGeo();})()
Simply speaking in English, Christel teacher has a good pronunciation and a good personality, and if I speak badly, he will correct the pronunciation. It is thanks to Mr. Christel that I can type in English so far. I love you Christel woman teacher!
°£´ÜÇÏ°Ô ¿µ¾î·Î ¸»ÇÏÀÚ¸é Å©¸®½ºÅÚ¼±»ý´Ô ¹ßÀ½µµ ÁÁ°í ¼º°Ýµµ ÂøÇÏ°í ³»°¡ ¹ßÀ½ ¾ÊÁÁ°Ô ¸»ÇÏ¸é ¹ßÀ½ ±³Á¤µµ ÇØÁÜ. ³»°¡ ÀÌ·¸°Ô±îÁö ¿µ¾î·Î ŸÀÚÄ¥¼öÀÖ ´Â°Íµµ Å©¸®½ºÅÚ¼±»ý´Ô ´öºÐÀÓ »ç¶ûÇØ¿äÅ©¸®½ºÅÚ
¼±»ý´Ô!
|
|
|
|
|
|
|
|