There is an ethical java trick called Pimp My uTorrent, it is offered on github
Pimp my uTorrent : An angular.js application that removes the ads in uTorrent with a single click
its purpose is to clean up the uTorrent GUI.
I personally don't use uTorrent, but I wanted to test out Sandboxie's ability to protect the file system from exploits coming in through the browser.
I opened chrome in sandbox, but opened uTorrent regular.
Then I went to the Pimp My uTorrent site, and I was surprised and confused to see that it changed the settings in my uTorrent.
What's up with this?
When you click on
"Pimp My uTorrent" , there is a connection established with your uTorrent (after asking for redirection to a http connection if you used https) and communications.
If you opened uTorrent "regular", setting can be changed this way by uTorrent itself but initiated (see explanation below ) by the click on
"Pimp My uTorrent" , even if chrome is open in a sandbox, because it's the uTorrent Client that makes the modifications.
Notice : uTorrent Client has to be running when you click on "Pimp My uTorrent", or else no communications => no modifications
Explanation :
=> To connect to your uTorrent Client
"Pimp my uTorrent" uses
duckietorrent.torrent.js
This is a small part of its description:
*........
* The Utorrent/Bittorrent clients listen on one of 20 ports on localhost to allow other apps to connect to them.
* Discovery is done by performing a /version request to these ports until the first hit
* After that, an authentication token is requested on the client (you need to save this somewhere, the demo does so in localStorage)
* With the token you can get a session ID, and with the session ID you can start polling for data. Don't poll and the session will expire and you will need to fetch a new session ID with the token.*
* Polling for data results in a tree structure of RPC functions and object data
* The RPC structures are matched against regexes and the parameters are type-checked.
* Passing the wrong data into a callback will crash uTorrent/BitTorrent violently (Which could be an attack angle for security researchers)
*......
"RPC is a kind of request–response protocol. An RPC is initiated by the client, which sends a request message to a known remote / local server to execute a specified procedure with supplied parameters."
In your case, the client is
"Pimp my uTorrent", the server is your "uTorrent" (to simplify).
=>
duckietorrent.torrent.js can do it with your uTorrent, and modifications are made by your uTorrent Client itself, because it's one of its procedure that is called.
Parameters used , found in
controllers.js, which correspond to the values that your uTorrent will change :
var pimpValues = {
'gui.pro_installed': true,
'offers.left_rail_offer_enabled': false,
'offers.sponsored_torrent_offer_enabled': false,
'show_bundles_tab': false,
'offers.featured_content_badge_enabled': false,
'gui.show_plus_upsell_nodes': false,
'gui.show_gate_notify': false,
'gui.show_plus_upsell': false,
'gui.show_plus_av_upsell': false,
'offers.content_offer_autoexec': false,
'offers.featured_content_notifications_enabled': false,
'offers.featured_content_rss_enabled': false
};
I have not investigated more, it's enough to answer you question, I think
(02h54 am in my Country, time to go to sleep)
EDITED to be more understandable