Jump to content

UCyborg

Platinum Sponsor
  • Posts

    2,589
  • Joined

  • Last visited

  • Days Won

    28
  • Donations

    100.00 USD 
  • Country

    Slovenia

Everything posted by UCyborg

  1. GreaseMonkey for Pale Moon 3.31.4 should be better suited for UXP browsers. https://github.com/janekptacijarabaci/greasemonkey/releases/tag/3.31.4Fork
  2. I meant to say any new games, though there probably are and I'm just throwing out negative assumptions again. They're social butterflies I guess, something our kind will never "get". I've had bits of social life in the past, but it's all gone now. I also get sick of my own company at times, but can't escape from myself.
  3. I bought a new car with the money made at work, though that purchase was mostly out of necessity to get by in day-to-day life. I doubt I'll replace the computer soon, I'm a bit tired of computers (using it at work), gaming doesn't feel the way it used to anymore and I love being lazy in free time more than ever. I'm dead after work and weekends are too short. Gaming would maybe be the only reason to replace the old computer, but I have too much old games and I'm not sure there's anything new out there for me anyway. Hm, https://www.verywellmind.com/asocial-vs-antisocial-differences-7555163
  4. Found what breaks https://accounts.hcaptcha.com/demo for me. I have javascript.options.wasm_baselinejit enabled, guess that's still problematic on 32-bit builds. Looks like I was dribbling with hCAPTCHA before: https://forum.palemoon.org/viewtopic.php?f=61&t=24663 Back then they did something on hCAPTCHA side to fix it, although it seems this is general issue in the platform.
  5. Yes, might have confused space with line break due to how Resource Hacker displays it... No. It shouldn't matter for newer systems either, it's just a convention since newer systems will pick the highest available entry, so you can order it that way to visually indicate what entry has higher priority. https://learn.microsoft.com/en-us/windows/compatibility/application-executable-manifest I haven't found the documentation whether 8.1 and 10 entries change anything in practice
  6. Just took a better look at the files of this MPC-HC 2.1.2.18, looks like a KernelEx style hackery, not a pure Windows XP compatible port. I tried it on my usual XP x64 install anyway, but it doesn't appear to be usable here. There's no picture, just sound, the part where picture is supposed to be, nothing renders there, if I restore its minimized window, it's see-through with whatever was on that part of the screen at the time of window restoration. Same if I pick madVR renderer, which is surely functional as my usual PotPlayer can use it.
  7. The first one was the most limited, the one from ungap should be the middle ground, the most complete is the one from core-js. Do the read the notes as it is said structuredClone cannot be polyfilled in its entirety. It's probably common for such code to be packaged in a way to be easily reusable in an environment not limited to a web browser and more easily maitainable/studiable by separating it into multiple smaller modules. The repo from ungap has it packaged in two ways (in order for it to be split in multiple modules), the one in cjs folder using CommonJS format usable outside of web browsers and the one in ecs folder using ECMAScript 6 standard's module imports using import/export in a web browser. Except I haven't heard of user scripts that are split into multiple modules, so going off from /ecs/index.js, I've put everything into one file, removing import/export and added the statement attaching the structuredClone function to the global object.
  8. Right, there was a link posted earlier about that code, it's a special one, technically the kernel didn't crash, but it aborted execution since it detected user-mode csrss.exe process crash. Presumably it's logical the kernel wouldn't dump its own memory then as if one was going to go debug something in this case, it should be targeted at the crashing process as the kernel could normally continue if that other process didn't go down.
  9. Forgot I already posted, there was no feedback from the forum software after clicking the button. Probably still goes through most of the time.
  10. No, I used Resource Hacker (will have to find an older version if you want to run it on XP) to open the manifest in the executable and https://unminify.com/ to make it readable for me, then basically replaced this: <ms_compatibility:compatibility xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" xmlns="urn:schemas-microsoft-com:compatibility.v1"> <ms_compatibility:application xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1"> <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></ms_compatibility:supportedOS> <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></ms_compatibility:supportedOS> <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></ms_compatibility:supportedOS> <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></ms_compatibility:supportedOS> <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"></ms_compatibility:supportedOS> </ms_compatibility:application> </ms_compatibility:compatibility> With: <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> </application> </compatibility> Then minified the text with https://codebeautify.org/xml-minifier, put it back and saved. Seems there's a line break between XML head and the rest of content. Threw Vista GUID out as AFAIK only Windows 7+ understands that section and if there was only Vista GUID, it would be equal to the section not being present, but presence of the rest changes compatibility context to the newest indicated OS, turns off some legacy behavior. Not sure if there's a full list of behaviors anywhere, but I broke a level editor of an old game once when I marked it as compatible with everything Win7+, uses GDI and DirectDraw and causes Vista/7's compositor to go off normally. Wonder what could change between 8 and 8.1? And no newer GUIDs despite more frequent big updates since Windows 10. I'd still use that KB921337 hotfix at least for XP fixing sxs.dll, don't see more resiliency against such things as a bad thing. Someone could also notify the author of that MPC-HC version, should be a small thing to change.
  11. I'd only use such limited polyfills on per-site basis to avoid issues. A more capable implementation of structuredClone polyfill: 'use strict'; const VOID = -1; const PRIMITIVE = 0; const ARRAY = 1; const OBJECT = 2; const DATE = 3; const REGEXP = 4; const MAP = 5; const SET = 6; const ERROR = 7; const BIGINT = 8; // const SYMBOL = 9; const EMPTY = ''; const {toString} = {}; const {keys} = Object; const typeOf = value => { const type = typeof value; if (type !== 'object' || !value) return [PRIMITIVE, type]; const asString = toString.call(value).slice(8, -1); switch (asString) { case 'Array': return [ARRAY, EMPTY]; case 'Object': return [OBJECT, EMPTY]; case 'Date': return [DATE, EMPTY]; case 'RegExp': return [REGEXP, EMPTY]; case 'Map': return [MAP, EMPTY]; case 'Set': return [SET, EMPTY]; } if (asString.includes('Array')) return [ARRAY, asString]; if (asString.includes('Error')) return [ERROR, asString]; return [OBJECT, asString]; }; const shouldSkip = ([TYPE, type]) => ( TYPE === PRIMITIVE && (type === 'function' || type === 'symbol') ); const serializer = (strict, json, $, _) => { const as = (out, value) => { const index = _.push(out) - 1; $.set(value, index); return index; }; const pair = value => { if ($.has(value)) return $.get(value); let [TYPE, type] = typeOf(value); switch (TYPE) { case PRIMITIVE: { let entry = value; switch (type) { case 'bigint': TYPE = BIGINT; entry = value.toString(); break; case 'function': case 'symbol': if (strict) throw new TypeError('unable to serialize ' + type); entry = null; break; case 'undefined': return as([VOID], value); } return as([TYPE, entry], value); } case ARRAY: { if (type) return as([type, [...value]], value); const arr = []; const index = as([TYPE, arr], value); for (const entry of value) arr.push(pair(entry)); return index; } case OBJECT: { if (type) { switch (type) { case 'BigInt': return as([type, value.toString()], value); case 'Boolean': case 'Number': case 'String': return as([type, value.valueOf()], value); } } if (json && ('toJSON' in value)) return pair(value.toJSON()); const entries = []; const index = as([TYPE, entries], value); for (const key of keys(value)) { if (strict || !shouldSkip(typeOf(value[key]))) entries.push([pair(key), pair(value[key])]); } return index; } case DATE: return as([TYPE, value.toISOString()], value); case REGEXP: { const {source, flags} = value; return as([TYPE, {source, flags}], value); } case MAP: { const entries = []; const index = as([TYPE, entries], value); for (const [key, entry] of value) { if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry)))) entries.push([pair(key), pair(entry)]); } return index; } case SET: { const entries = []; const index = as([TYPE, entries], value); for (const entry of value) { if (strict || !shouldSkip(typeOf(entry))) entries.push(pair(entry)); } return index; } } const {message} = value; return as([TYPE, {name: type, message}], value); }; return pair; }; /** * @typedef {Array<string,any>} Record a type representation */ /** * Returns an array of serialized Records. * @param {any} value a serializable value. * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that, * if `true`, will not throw errors on incompatible types, and behave more * like JSON stringify would behave. Symbol and Function will be discarded. * @returns {Record[]} */ const serialize = (value, {json, lossy} = {}) => { const _ = []; return serializer(!(json || lossy), !!json, new Map, _)(value), _; }; const env = typeof self === 'object' ? self : globalThis; const deserializer = ($, _) => { const as = (out, index) => { $.set(index, out); return out; }; const unpair = index => { if ($.has(index)) return $.get(index); const [type, value] = _[index]; switch (type) { case PRIMITIVE: case VOID: return as(value, index); case ARRAY: { const arr = as([], index); for (const index of value) arr.push(unpair(index)); return arr; } case OBJECT: { const object = as({}, index); for (const [key, index] of value) object[unpair(key)] = unpair(index); return object; } case DATE: return as(new Date(value), index); case REGEXP: { const {source, flags} = value; return as(new RegExp(source, flags), index); } case MAP: { const map = as(new Map, index); for (const [key, index] of value) map.set(unpair(key), unpair(index)); return map; } case SET: { const set = as(new Set, index); for (const index of value) set.add(unpair(index)); return set; } case ERROR: { const {name, message} = value; return as(new env[name](message), index); } case BIGINT: return as(BigInt(value), index); case 'BigInt': return as(Object(BigInt(value)), index); } return as(new env[type](value), index); }; return unpair; }; /** * @typedef {Array<string,any>} Record a type representation */ /** * Returns a deserialized value from a serialized array of Records. * @param {Record[]} serialized a previously serialized value. * @returns {any} */ const deserialize = serialized => deserializer(new Map, serialized)(0); if (!("structuredClone" in env)) env.structuredClone = (any, options) => deserialize(serialize(any, options)); Source: https://github.com/ungap/structured-clone
  12. I made a post on their forum. BTW, I couldn't open account on their repo, hcaptcha.com just refuses to work on Pale Moon, the dialog doesn't popup. Anyone here wants to check https://accounts.hcaptcha.com/demo? Of course it works on Edge. But they left GitHub because of issues like that.
  13. @XPerceniol /r probably doesn't try rewriting them, which is necessary to trigger remapping, it should mark them as bad in NTFS for OS to avoid them in the future. But it takes forever and you often do not want to stress disk with it, especially if you haven't got the data off yet. Maybe some people get lucky with spare sectors, but I wouldn't bet on it.
  14. This is the worst suggestion to follow in cases where the disk is failing. Especially with /r parameter, which is pointless if you're dealing with bad sectors, they will only spread faster since it's a physical problem. Even /f alone can be destructive in some cases, you can turn bootable installation into unbootable one. c0000005 means STATUS_ACCESS_VIOLATION, very generic on its own, simply means the code in process that crashed tried to access virtual address that doesn't exist / where nothing is mapped. Good hint...I got old XP SP2 CD, but I forgot the Product Key for it years ago, so can't finish the install to test...@we3fan may try and test this mpc-hc.exe instead of the original. MPC-HC 2.1.2.18 compat fix.7z
  15. Browsing with low-RAM machines strikes me as common practice among MSFN members. I personally often browse with a smartphone with 32-bit ARMv7 CPU and 1 GB of RAM (obviously Android instead of Windows). Few bloated sites are the problem. Also have a laptop with 2 GB of RAM, runs 32-bit Win10, still fine for casual browsing. Not for the tab hoarders, of course. Tabs, extensions, various utility processes. The type is specified in process' command line observable by a program like Process Hacker, but for more details, one may need to study the browser's source code. Supermium apparently brings back --single-process command-line argument, so you might be able to make it run in single process.
  16. Not necessarily, they can load their own DLLs. They're probably rare, but check this for instance: https://local.comtrade.com/si/dejavnosti/financni_sektor/bancnistvo/PrevzemKomponent/Requirements.html There's a link to XPI below under Mozilla Firefox. In the old times, when we could still access online banks without smartphone apps or Windows 10+ UWP apps, there was this extension. If you open it, you will see it comes with a x86 and x64 DLL. Look at the requirements, Pentium III and 64 MB of RAM. Anyway, they still have the test page linked (first result if you CTRL + F > "test"), if you open it and click "Podpiši" (Sign), the certificate selection dialog that will popup is made by the DLL. So theoretically, you could do all sort of crazy things from such extension. Maybe I was overreacting when saying NoScript is ugly, but it is notorious extension and they wouldn't recommend specifically against it just out of the blue. That said, I didn't actually experience serious problems when I still used it myself, but I also didn't turn every knob it has.
  17. Wow, after so many years I finally learned about the possible solution for this. When USB tethering is on, the phone acts as a network gateway and that gateway may have a random MAC address assigned by default. Don't know how common random MAC address is, given the variety of phone configurations, but at least with root access, it may be possible to set static MAC address. https://xdaforums.com/t/q-soln-usb-tethering-creates-endless-new-windows-networks.1893015/post-35371421 Previously, the content of that file read as "(null)". The MAC you put here or the random one can be seen from Windows when you run: arp -a There's another separate MAC address you see when running: ipconfig /all Corresponds to the Remote NDIS based Internet Sharing Device (as seen from Windows), it also comes from the phone, it's written in /sys/class/android_usb/android0/f_rndis/ethaddr. I was looking at registry entries in Windows before at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList, under \Signatures\Unmanaged\<profile key>, there's a MAC address. No wonder it didn't make any sense as I was only looking at the one from ipconfig command, but this is the one from arp command. It's like there's "network card" and gateway in one device. Interestingly, pre-Win11 didn't create new network profile for the same phone, even with apparent MAC changes, until reboot. The current Win11 does seems to make a new profile when tethering is on and gateway MAC changed from last time. Maybe old Windows was caching some other factor in memory, maybe the one MAC that wasn't changing (the "network card" MAC).
  18. Meaning you let stuff from cdn.adsninja.com through. I only allow scripts from disqus.com, disquscdn.com and unpkg.com. Still learning...https://github.com/gorhill/uBlock/wiki/Inline-script-tag-filtering www.howtogeek.com##^script:has-text(v4ac1eiZr0) www.xda-developers.com##^script:has-text(v4ac1eiZr0) That's what I was looking for.
  19. That class name does work for XDA Developers as well, but I'm curious if you search its HTML, do you get any hits for "v4ac1eiZr0" (without quotes)?
  20. I'm not among them anymore. TBH I only used it back then because I didn't know either uBlock and NoScript well enough and thought I "need" both. Figured I don't care for any NoScript's specialties and uBlock has the way of saying block/allow scripts from that domain if I'm on this domain, which is good enough for me. And yeah, as they've been saying for a long time, NoScript is convoluted ugly extension under the hood. I don't need to bog the browser with subpar JavaScript performance further with such extension.
  21. I'd prefer to have the way to do it properly, modern uBlock does it by simply throwing out entire inline script in the base HTML, it locates it by unique string "v4ac1eiZr0". I tried the ugly userscript way hinted here, but doesn't work, just stops the page loading and doesn't put the modified HTML back in place. // ==UserScript== // @name Anti-AdsNinja // @namespace https://github.com/UCyborg // @version 0.1 // @author UCyborg // @match https://www.howtogeek.com/* // @match https://www.xda-developers.com/* // @run-at document-start // @grant none // ==/UserScript== (function() { 'use strict'; window.stop(); let xhr = new XMLHttpRequest(); xhr.open('GET', window.location.href); xhr.onload = () => { let html = xhr.responseText.replace(/<script\b[\s\S]*?<\/script>/, s => { // check if script tag should be replaced/deleted if (s.includes('v4ac1eiZr0')) { return ''; } else { return s; } }); document.open(); document.write(html); document.close(); }; xhr.send(); })(); Tried Proxomitron, but it doesn't work as the content is Brotli compressed as indicated by Content-Encoding in the header...am I missing something or Proxomitron doesn't support compressed content either? @NotHereToPlayGames? Name = "XDA Developers: Remove AdsNinja" Active = TRUE URL = "www.xda-developers.com/ $TYPE(htm)" Limit = 8500 Match = "<script type="text/javascript">*"v4ac1eiZr0"*</script>" Name = "How-To-Geek: Remove AdsNinja" Active = TRUE URL = "www.howtogeek.com/ $TYPE(htm)" Limit = 8500 Match = "<script type="text/javascript">*"v4ac1eiZr0"*</script>" Modify HTTP Response extension doesn't seem to allow any flexibility in matching even the files I want to modify as far as I can tell, eg. how do I say match all HTML from domain? Not sure about the matching actual content either, supposedly at least JavaScript regular expressions are supposed to work there, but haven't tested. Edit: I guess Proxomitron does Gzip, but not Brotli, which is a newer algorithm. Someone asked about implementing Brotli support in Proxomitron Reborn in its thread here, though there's no mention whether it was acknowledged and if it will be included in the upcoming version, whenever it may be released.
  22. I think the only way to have modern ad blocking is to port a modern blocker. These 2 sites for instance that the old blocker can't get around, but a new one can. https://www.xda-developers.com/ https://www.howtogeek.com/
  23. This is Cujo 5-1 to any friendly units in D.C., Hammerdown is in effect. I repeat, Hammerdown is in effect. If you are receiving this transmission, you are in a hardened high-value structure. Deploy green flares on the roof of this structure to indicate that you are still combat effective. We will abort our mission on direct visual contact with this counter-sign.
  24. Japanese version would be the only straightforward way. I'm not sure if there's any way to get US Win95 to display foreign characters. I didn't figure a way to teach it to display our čšž in programs. It doesn't do Unicode, straight Win9x programs use ANSI versions of API functions that take string parameters, the code page in the background ensures string is handled properly. These old Windows versions don't have translations in separate resource files, strings are in executable binaries, you even need updates that match the language if you want to update the OS properly without turning parts of it into other language. This article also suggests the only way to run Japanese programs is to have a separate Japanese installation one way or another. There's some limited official support for USB in a form of a supplement package for newer OSR versions and an unofficial compilation of related updates here. How will it play with Japanese version, though...
  25. It will break other sites that need Web Components, so only use it temporarily for patents.google.com.
×
×
  • Create New...