Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/10se1ucgo/DisableWinTracking.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author10se1ucgo <hammaadu1@gmail.com>2015-08-03 00:44:09 +0300
committer10se1ucgo <hammaadu1@gmail.com>2015-08-03 00:44:09 +0300
commit69988e50b1d6da6b1c35cfa8c12d8fc33ec65b31 (patch)
treeea5dbd146dac039c4ed513c7c47a961541d0acb1
Initial Commit
-rw-r--r--.gitignore10
-rw-r--r--LICENSE13
-rw-r--r--README.md42
-rw-r--r--run.py143
4 files changed, 208 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9b98532
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+# Pycharm
+.idea/
+
+# Python stuff
+*.py[cod]
+
+# Pyinstaller
+build/
+dist/
+*.spec
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..db02244
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,13 @@
+Copyright 2015 10se1ucgo
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. \ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..acf3e39
--- /dev/null
+++ b/README.md
@@ -0,0 +1,42 @@
+# DisableWinTracking
+[GIF of GUI](http://i.imgur.com/AV8btDc.gifv)
+A tool that I created to use some of the known methods of disabling tracking in Windows 10.
+
+## Dependencies
+* wxPython
+* PyWin32
+* Windows 10 (Duh)
+
+## Methods Used
+#### Telemetry
+Set the "AllowTelemetry" string in "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DataCollection" to 0
+
+#### DiagTrack Log
+Clears log and disables writing to the log located in "C:\ProgramData\Microsoft\Diagnosis\ETLLogs\AutoLogger"
+
+#### Services
+* Delete: Remove both services
+* Disable: Set the "Start" registry key for both services to 4 (Disabled) Located at "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\"
+
+#### HOSTS
+Append known tracking domains to the HOSTS file located in "C:\Windows\System32\drivers\etc"
+
+
+
+## How to use
+You can either
+A. Install Python and the 2 dependencies and run the script from an elevated (admin) command prompt and select which options you'd like
+B. Run the binary uploaded to the Release tab as an Administrator and select which options you'd like
+
+## Delete Services vs Disable Services?
+Selecting the "Delete" choice will completely delete the tracking services. This is the recommended choice.
+Selecting "Disable" however will simply stop the services from being able to run.
+#  
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/run.py b/run.py
new file mode 100644
index 0000000..9c263d3
--- /dev/null
+++ b/run.py
@@ -0,0 +1,143 @@
+# Sorry if it looks messy
+
+import sys
+import subprocess
+import _winreg
+
+import wx
+import win32serviceutil
+import pywintypes
+
+
+class WinFrame(wx.Frame):
+ def __init__(self, parent, title):
+ super(WinFrame, self).__init__(parent, title=title, size=[375, 115],
+ style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX)
+
+ wxpanel = wx.Panel(self)
+
+ self.telebox = wx.CheckBox(wxpanel, label="Disable Telemetry", pos=(10, 15))
+ self.telebox.Set3StateValue(0)
+
+ self.diagbox = wx.CheckBox(wxpanel, label="Clear DiagTrack log", pos=(10, 45))
+ self.diagbox.Set3StateValue(0)
+
+ self.hostbox = wx.CheckBox(wxpanel, label="Block tracking servers with HOSTS file", pos=(10, 60))
+ self.hostbox.Set3StateValue(0)
+
+ self.servicebox = wx.CheckBox(wxpanel, label="Services", pos=(10, 30))
+ self.servicebox.Set3StateValue(0)
+ self.servicebox.Bind(wx.EVT_CHECKBOX, self.serviceradcheck)
+
+ self.servicerad = wx.RadioBox(wxpanel, label="Service Method", pos=(135, 10), choices=["Delete", "Disable"])
+ self.servicerad.Disable()
+
+ self.okbutton = wx.Button(wxpanel, -1, "Go Private!", (275, 25))
+ self.Bind(wx.EVT_BUTTON, self.onok, self.okbutton)
+ self.Centre()
+ self.Show()
+
+ def serviceradcheck(self, event):
+ self.servicerad.Enable(self.servicebox.IsChecked()) # If Service box is ticked enable Service radio box
+
+ def onok(self, event):
+ if self.telebox.IsChecked():
+ self.telekeypath = r'SOFTWARE\Policies\Microsoft\Windows\DataCollection' # Path to Telemetry key
+
+ try:
+ self.telekey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, self.telekeypath, 0, _winreg.KEY_ALL_ACCESS)
+ _winreg.SetValueEx(self.telekey, "AllowTelemetry", 0, _winreg.REG_SZ, "0") # Disable Telemetry
+ _winreg.CloseKey(self.telekey)
+ except WindowsError:
+ pass
+ if self.diagbox.IsChecked():
+ try:
+ open('C:\ProgramData\Microsoft\Diagnosis\ETLLogs\AutoLogger\AutoLogger-Diagtrack-Listener.etl',
+ 'w').close() # Clear the AutoLogger file
+ subprocess.Popen(
+ "echo y|cacls C:\ProgramData\Microsoft\Diagnosis\ETLLogs\AutoLogger\AutoLogger-Diagtrack-Listener.etl /d SYSTEM",
+ shell=True) # Prevent modification to file
+ except IOError:
+ pass
+
+ if self.hostbox.IsChecked():
+ self.MSHosts = "\r\n0.0.0.0 vortex.data.microsoft.com\r\n0.0.0.0 vortex-win.data.microsoft.com\r\n" \
+ "0.0.0.0 telecommand.telemetry.microsoft.com\r\n0.0.0.0 telecommand.telemetry.microsoft.com.nsatc.net\r\n" \
+ "0.0.0.0 oca.telemetry.microsoft.com\r\n0.0.0.0 oca.telemetry.microsoft.com.nsatc.net\r\n" \
+ "0.0.0.0 sqm.telemetry.microsoft.com\r\n0.0.0.0 sqm.telemetry.microsoft.com.nsatc.net\r\n" \
+ "0.0.0.0 watson.telemetry.microsoft.com\r\n0.0.0.0 watson.telemetry.microsoft.com.nsatc.net\r\n" \
+ "0.0.0.0 redir.metaservices.microsoft.com\r\n0.0.0.0 choice.microsoft.com\r\n" \
+ "0.0.0.0 choice.microsoft.com.nsatc.net\r\n0.0.0.0 df.telemetry.microsoft.com\r\n" \
+ "0.0.0.0 reports.wes.df.telemetry.microsoft.com\r\n0.0.0.0 wes.df.telemetry.microsoft.com\r\n" \
+ "0.0.0.0 services.wes.df.telemetry.microsoft.com\r\n0.0.0.0 sqm.df.telemetry.microsoft.com\r\n" \
+ "0.0.0.0 telemetry.microsoft.com\r\n0.0.0.0 watson.ppe.telemetry.microsoft.com\r\n" \
+ "0.0.0.0 telemetry.appex.bing.net\r\n0.0.0.0 telemetry.urs.microsoft.com\r\n" \
+ "0.0.0.0 telemetry.appex.bing.net:443\r\n0.0.0.0 settings-sandbox.data.microsoft.com\r\n" \
+ "0.0.0.0 vortex-sandbox.data.microsoft.com\r\n0.0.0.0 survey.watson.microsoft.com\r\n" \
+ "0.0.0.0 watson.live.com\r\n0.0.0.0 watson.microsoft.com\r\n0.0.0.0 statsfe2.ws.microsoft.com\r\n" \
+ "0.0.0.0 corpext.msitadfs.glbdns2.microsoft.com\r\n0.0.0.0 compatexchange.cloudapp.net\r\n" \
+ "0.0.0.0 cs1.wpc.v0cdn.net\r\n0.0.0.0 a-0001.a-msedge.net\r\n" \
+ "0.0.0.0 statsfe2.update.microsoft.com.akadns.net\r\n0.0.0.0 sls.update.microsoft.com.akadns.net\r\n" \
+ "0.0.0.0 fe2.update.microsoft.com.akadns.net\r\n0.0.0.0 65.55.108.23 \r\n0.0.0.0 65.39.117.230\r\n" \
+ "0.0.0.0 23.218.212.69 \r\n0.0.0.0 134.170.30.202\r\n0.0.0.0 137.116.81.24\r\n" \
+ "0.0.0.0 diagnostics.support.microsoft.com\r\n0.0.0.0 corp.sts.microsoft.com\r\n" \
+ "0.0.0.0 statsfe1.ws.microsoft.com\r\n0.0.0.0 pre.footprintpredict.com\r\n0.0.0.0 204.79.197.200\r\n" \
+ "0.0.0.0 23.218.212.69\r\n0.0.0.0 i1.services.social.microsoft.com\r\n" \
+ "0.0.0.0 i1.services.social.microsoft.com.nsatc.net\r\n0.0.0.0 feedback.windows.com\r\n" \
+ "0.0.0.0 feedback.microsoft-hohm.com\r\n0.0.0.0 feedback.search.microsoft.com" # Known MS Tracking domains
+ try:
+ with open('C:\Windows\System32\drivers\etc\hosts', 'ab') as f:
+ f.write(self.MSHosts)
+ except WindowsError:
+ pass
+
+ if self.servicerad.Selection == 0 and self.servicebox.IsChecked():
+ try:
+ win32serviceutil.RemoveService('dmwappushsvc') # Delete dmwappushsvc
+ except pywintypes.error:
+ print "dmwappushsvc unable to be deleted. Deleted already, or is the program not elevated?"
+ pass
+
+ try:
+ win32serviceutil.RemoveService('Diagnostics Tracking Service') # Delete the DiagnosticsTracking Service
+ except pywintypes.error:
+ print "Diagnostics Tracking Service unable to be deleted. Deleted already, or is the program not elevated?"
+ pass
+ elif self.servicerad.Selection == 1 and self.servicebox.IsChecked():
+ self.diagkeypath = r'SYSTEM\CurrentControlSet\Services\DiagTrack'
+ self.dmwakeypath = r'SYSTEM\CurrentControlSet\Services\dmwappushsvc'
+
+ try:
+ self.diagkey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, self.diagkeypath, 0, _winreg.KEY_ALL_ACCESS)
+ _winreg.SetValueEx(self.diagkey, "Start", 0, _winreg.REG_DWORD, 0x0000004)
+ _winreg.CloseKey(self.diagkey)
+ except WindowsError:
+ pass
+
+ try:
+ self.dmwakey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, self.dmwakeypath, 0, _winreg.KEY_ALL_ACCESS)
+ _winreg.SetValueEx(self.dmwakey, "Start", 0, _winreg.REG_DWORD, 0x0000004)
+ _winreg.CloseKey(self.dmwakey)
+ except WindowsError:
+ pass
+
+ try:
+ win32serviceutil.StopService('Diagnostics Tracking Service') # Disable Diagnostics Tracking Service
+ except pywintypes.error:
+ print "Diagnostics Tracking Service unable to be stopped. Deleted, or is the program not elevated?"
+ pass
+
+ try:
+ win32serviceutil.StopService('dmwappushsvc') # Disable dmwappushsvc
+ except pywintypes.error:
+ print "dmwappushsvc unable to be stopped. Deleted, or is the program not elevated?"
+ pass
+
+ print "Services Disabled"
+ sys.exit()
+
+
+if __name__ == '__main__':
+ wxwindow = wx.App(False)
+ WinFrame(None, title='Disable Windows 10 Tracking') # Create Window
+ wxwindow.MainLoop()