Thomas Jost (fdfd51c5) at 11 Oct 11:57
Based on the Zenburn Emacs theme: https://github.com/bbatsov/zenburn-emacs.
There is no dark/light color scheme here as Zenburn is dark only.
Thomas Jost (fdfd51c5) at 01 Oct 13:01
Add Zenburn color scheme
Hi there,
When brute-forcing, the check for success is way too simple. It basically checks if "200" or "404" are found in the answer from the RTSP server. But it can be found even in case of authentication failure, for instance after 200 failures with CSeq: 200...
Here's a simple modification that fixed this for me:
diff --git rtspbrute/__main__.py rtspbrute/__main__.py
index 8101fcd..c1a23a0 100644
--- rtspbrute/__main__.py
+++ rtspbrute/__main__.py
@@ -99,7 +100,7 @@ def attack_credentials(target: RTSPClient):
# If it's a 404, it means that the route is incorrect but the credentials might be okay.
# If it's a 200, the stream is accessed successfully.
- ok_codes = ["200", "404"]
+ ok_codes = ["RTSP/1.0 200", "RTSP/1.0 404"]
# If stream responds positively to no credentials, it means
# it doesn't require them and the attack can be skipped.
With this patch, I was able to recover a 6-digit code for a home camera I own. Took more than 180k trials and several hours :) Thanks a lot for this program!
Updated patch from my local repository:
diff --git src/lib/presentation/imports/MellowPlayer/Controls/WebView.qml src/lib/presentation/imports/MellowPlayer/Controls/WebView.qml
index 2a8bd778..12f79858 100644
--- src/lib/presentation/imports/MellowPlayer/Controls/WebView.qml
+++ src/lib/presentation/imports/MellowPlayer/Controls/WebView.qml
@@ -60,6 +60,13 @@ Page {
webView.reload();
}
+ function getDefaultAcceptLanguage() {
+ var lang_country = Qt.locale().name.split(".")[0].replace("_", "-");
+ var lang = lang_country.split("-")[0];
+ var header = lang_country + ", " + lang + ";q=0.9, en;q=0.8, *;q=0.5";
+ return header;
+ }
+
WebEngineView {
id: webView
@@ -68,6 +75,7 @@ Page {
url: service.url
profile {
httpUserAgent: userAgentSetting.value
+ httpAcceptLanguage: getDefaultAcceptLanguage()
}
settings {
pluginsEnabled : true
I added a quick-n-dirty implementation on my local clone. I've used it successfully for a few weeks:
diff --git src/lib/presentation/imports/MellowPlayer/Controls/WebView.qml src/lib/presentation/imports/MellowPlayer/Controls/WebView.qml
index 12baf2cd..0a75a459 100644
--- src/lib/presentation/imports/MellowPlayer/Controls/WebView.qml
+++ src/lib/presentation/imports/MellowPlayer/Controls/WebView.qml
@@ -42,10 +42,18 @@ WebEngineView {
_zoom.reset();
}
+ function getDefaultAcceptLanguage() {
+ var lang_country = Qt.locale().name.split(".")[0].replace("_", "-");
+ var lang = lang_country.split("-")[0];
+ var header = lang_country + ", " + lang + ";q=0.9, en;q=0.8, *;q=0.5";
+ return header;
+ }
+
enabled: visible
url: service.url
visible: _streamingServices.currentService && _streamingServices.currentService.name === service.name
profile {
+ httpAcceptLanguage: getDefaultAcceptLanguage()
httpUserAgent: userAgentSetting.value
}
settings {
I'm not sure that it's a good idea to add en;q=0.8 as a fallback (probably not if the user language is already English). I have no idea how it works or fails if the user is fr instead of fr_FR. But nonetheless it works well for me
If it can help, feel free to use this as a basis for a better implementation
Thomas Jost (3c1a278e) at 02 Nov 10:02
I'm French and my entire system is sent in French. But in MellowPlayer, Spotify is in English.
Adding a Accept-Language header to every HTTP request would likely solve this.
Set your system in your favorite non-English language
Open MellowPlayer: it's in your language!
Open Spotify in MellowPlayer: it's in English!
Using Chrome DevTools connected to MellowPlayer shows that there's no Accept-Language in the request headers.
Now let's do the same with curl. Run this:
$ curl -s https://open.spotify.com/browse | head -3
<!DOCTYPE html><html
dir="ltr"
lang="en" ...
Let's now fix this with curl:
$ curl -s https://open.spotify.com/browse -H 'Accept-Language: fr' | head -3
<!DOCTYPE html><html
dir="ltr"
lang="fr" ...
I'm sorry but I don't know enough about Qt or QtWebEngine to add that header myself and submit a PR. Could you please have a look at this?
Thanks a lot!
That theme looks great, thanks! :)
Thomas Jost (8c48c229) at 20 Jun 12:19
Fix Brain.fm track metadata
Thomas Jost (e1484d9b) at 20 Jun 09:26
Update Brain.fm URL
It only streams mp3 audio :)
Tested with the AppImage build from CI: it works, I'm listening to it right now :)
This adds support for Brain.fm, a (non-free) music streaming service that aims at improving focus, meditation & sleep.
Tested against a fresh debug build of MellowPlayer on Linux x86_64. Brain.fm doesn't use any DRM or Flash so it should work everywhere :)
Thomas Jost (ba29fb98) at 18 Jun 13:08
Add Brain.fm