MCPcopy Create free account
hub / github.com/Selectively11/CloudRedirect / UnpatchSteamToolsExe

Method UnpatchSteamToolsExe

ui/Services/Patching/Patcher.cs:734–772  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

732 }
733
734 public bool UnpatchSteamToolsExe()
735 {
736 _verbose = true;
737 var exe = FindSteamToolsExe();
738 if (exe == null) return false;
739
740 try
741 {
742 KillSteamTools();
743
744 var data = ReadFileShared(exe);
745 if (data.Length < StExePatchOffset + 2) return false;
746
747 if (data[StExePatchOffset] == StExeOriginal[0]
748 && data[StExePatchOffset + 1] == StExeOriginal[1])
749 return true; // already original
750
751 if (data[StExePatchOffset] != StExePatched[0]
752 || data[StExePatchOffset + 1] != StExePatched[1])
753 return false; // unknown bytes
754
755 data[StExePatchOffset] = StExeOriginal[0];
756 data[StExePatchOffset + 1] = StExeOriginal[1];
757 FileUtils.AtomicWriteAllBytes(exe, data);
758
759 Log(" SteamTools.exe: restored to original");
760 return true;
761 }
762 catch (UnauthorizedAccessException)
763 {
764 Log(" SteamTools.exe: access denied - run as administrator");
765 return false;
766 }
767 catch (IOException ex)
768 {
769 Log($" SteamTools.exe: {ex.Message}");
770 return false;
771 }
772 }
773
774 void Log(string msg)
775 {

Callers 1

StExeUnpatch_ClickMethod · 0.80

Calls 1

AtomicWriteAllBytesMethod · 0.80

Tested by

no test coverage detected