-
Notifications
You must be signed in to change notification settings - Fork 114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Customizable useragent (workaround for #127) #128
Conversation
For those unwilling to wait until this gets merged, temporary builds: |
Added vanilla mode, builds are also updated. Maybe someone could help with chineese/korean translations. |
@iamtakingiteasy I would be very grateful for a x64 zip release. |
@Yesterday17 thanks for the translations |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks nice. Preparing for merge after changes.
Rebased with upstream, removed excessive user-agent specifications, corrected i18n. Additionally, removed start and use whatsoever of local server, when using vanilla mode, by which MJS+ vanilla should not differ from regular browser dedicated to majsoul now (which is exactly reasoning behind vanilla mode itself). Security considerations for non-vanilla mode:
To implement truly undetectable majsoul client with mods, customizing electron's V8 to have untracable (e.g. requiring secret password/key to change or inspect) object properties, wrapping entirety of DOM/canvas API, as well as having mods to work as overlay to webContents instead of working inside of it, may be required. This is quite a big undertaking (compiling customized electron alone may be quite a challenge, requiring 50G of space to build and maybe several days for build to complete), not to say all the mods have to be reworked with overlay approach in mind. --->3--- Probably yostar should consider providing user-side, local-only resource packs as official feature, to actually deter their users from cheating, while also not hurting their gacha business, as long as such packs would remain local-only. Instead of hammering mod users, they should fully embrace mods, probably providing ways to make them non-local via same gacha (or hopefully more reasonable monetization model). |
hmm, I think we should validate how Yostar 'detects' modified clients first. I used this tool to split majsoul code to smaller chunks and do some deobfuscations. It may work on EN server. |
Most likely their detection is not present in regular JS versions being returned to most users most of the time, but rather being triggered to return to a percentage of the users whenever they feel like they want new banwave -- they could return to say 5,10,30,whatever percentage of version requests some new version, or simply return different contents for same version. It is very easy to implement, so analyzing their day-to-day code would likely yield nothing, catching banwave-altered code is tricky, would require big network of involved clients and/or telemetry and even if we'd manage to catch such code and counter it's current implementation directly - they easily can alter it in a way that our current counter does not expect. We of course could try catching it again, but always end up lagging behind, having some of the users banned. Even if we institute known registry of verified versions with their hashes, they can begin to consider not using new/altered or even personalized version as a bannable offense in itself. So we will never be able to reliably counter unknown code in any other way than executing it in contained and pristine environment, while having everything else (mods) as overlay or modified copy to it, that is being presented to a user outside of their code reach. That being said, vanilla mode of this PR while doing nothing for mod users, should already enable with unaltered pristine environment (which translates to "entirely without mods" right now) those MJS+ users that simply do not want to use their main browser for majsoul (e.g. for segregation and/or streaming purposes) to be out of harms way by emulating useragent of their preferred browser inside of MJS+ which is just a regular standalone chromium build otherwise. |
Apparently I forgot to clarify that retaining useragent override in |
Removed excessive user-agent modifications i18n: zh-TW translation, zh-CN typos
5b594c4
to
6695620
Compare
Rebased with latest master; also made local builds using #151 changes, seems to resolve sound effects overlap. https://public.eientei.org/mjsp/Majsoul_Plus-2.0.1-ua-1-windows-x64-Setup.exe |
PR is inteded to provide customizable useragent, in face of potential banwave of MJS+ users per #127
As well as vanilla mode, disabling all DOM changes within a webview.