Skip to content

Commit 960d1c5

Browse files
committed
revert rp2 mitigations
1 parent 9b1bbc1 commit 960d1c5

File tree

3 files changed

+120
-137
lines changed

3 files changed

+120
-137
lines changed

Rectify11.Phase2/Program.cs

Lines changed: 60 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -137,76 +137,84 @@ private static void Main()
137137
}
138138
}
139139
}
140-
if (!Directory.Exists(Path.Combine(backupDir, "msc")))
140+
foreach (string regFile in pendingFiles)
141141
{
142-
Directory.CreateDirectory(Path.Combine(backupDir, "msc"));
143-
if (CultureInfo.CurrentUICulture.Name != "en-US")
142+
if (regFile.Contains("mmcbase.dll.mun")
143+
|| regFile.Contains("mmcndmgr.dll.mun")
144+
|| regFile.Contains("mmc.exe"))
144145
{
145-
Directory.CreateDirectory(Path.Combine(backupDir, "msc", CultureInfo.CurrentUICulture.Name));
146-
}
147-
Directory.CreateDirectory(Path.Combine(backupDir, "msc", "en-US"));
148-
}
149-
var langFolder = Path.Combine(Variables.sys32Folder, CultureInfo.CurrentUICulture.Name);
150-
var usaFolder = Path.Combine(Variables.sys32Folder, "en-US");
151-
List<string> langMsc = new List<string>(Directory.GetFiles(langFolder, "*.msc", SearchOption.TopDirectoryOnly));
152-
List<string> usaMsc = new List<string>(Directory.GetFiles(usaFolder, "*.msc", SearchOption.TopDirectoryOnly));
153-
List<string> sysMsc = new List<string>(Directory.GetFiles(Variables.sys32Folder, "*.msc", SearchOption.TopDirectoryOnly));
154-
List<string> r11Msc = new List<string>(Directory.GetFiles(Path.Combine(Variables.r11Folder, "Tmp", "msc"), "*.msc", SearchOption.TopDirectoryOnly));
155-
if (CultureInfo.CurrentUICulture.Name != "en-US")
156-
{
157-
for (int i = 0; i < langMsc.Count; i++)
158-
{
159-
for (int j = 0; j < usaMsc.Count; j++)
146+
if (!Directory.Exists(Path.Combine(backupDir, "msc")))
160147
{
161-
if (Path.GetFileName(langMsc[i]) == Path.GetFileName(usaMsc[j]))
148+
Directory.CreateDirectory(Path.Combine(backupDir, "msc"));
149+
if (CultureInfo.CurrentUICulture.Name != "en-US")
162150
{
163-
usaMsc.RemoveAt(j);
151+
Directory.CreateDirectory(Path.Combine(backupDir, "msc", CultureInfo.CurrentUICulture.Name));
164152
}
153+
Directory.CreateDirectory(Path.Combine(backupDir, "msc", "en-US"));
165154
}
166-
}
167-
}
168-
for (int j = 0; j < r11Msc.Count; j++)
169-
{
170-
for (int i = 0; i < usaMsc.Count; i++)
171-
{
172-
if (Path.GetFileName(usaMsc[i]) == Path.GetFileName(r11Msc[j]))
155+
var langFolder = Path.Combine(Variables.sys32Folder, CultureInfo.CurrentUICulture.Name);
156+
var usaFolder = Path.Combine(Variables.sys32Folder, "en-US");
157+
List<string> langMsc = new List<string>(Directory.GetFiles(langFolder, "*.msc", SearchOption.TopDirectoryOnly));
158+
List<string> usaMsc = new List<string>(Directory.GetFiles(usaFolder, "*.msc", SearchOption.TopDirectoryOnly));
159+
List<string> sysMsc = new List<string>(Directory.GetFiles(Variables.sys32Folder, "*.msc", SearchOption.TopDirectoryOnly));
160+
List<string> r11Msc = new List<string>(Directory.GetFiles(Path.Combine(Variables.r11Folder, "Tmp", "msc"), "*.msc", SearchOption.TopDirectoryOnly));
161+
if (CultureInfo.CurrentUICulture.Name != "en-US")
173162
{
174-
Console.WriteLine(usaMsc[i]);
175-
if (!File.Exists(Path.Combine(backupDir, "msc", "en-US", Path.GetFileName(usaMsc[i]))))
163+
for (int i = 0; i < langMsc.Count; i++)
176164
{
177-
File.Move(usaMsc[i], Path.Combine(backupDir, "msc", "en-US", Path.GetFileName(usaMsc[i])));
165+
for (int j = 0; j < usaMsc.Count; j++)
166+
{
167+
if (Path.GetFileName(langMsc[i]) == Path.GetFileName(usaMsc[j]))
168+
{
169+
usaMsc.RemoveAt(j);
170+
}
171+
}
178172
}
179-
File.Copy(r11Msc[j], usaMsc[i], true);
180173
}
181-
}
182-
for (int i = 0; i < sysMsc.Count; i++)
183-
{
184-
if (Path.GetFileName(sysMsc[i]) == Path.GetFileName(r11Msc[j]))
174+
for (int j = 0; j < r11Msc.Count; j++)
185175
{
186-
Console.WriteLine(sysMsc[i]);
187-
if (!File.Exists(Path.Combine(backupDir, "msc", Path.GetFileName(sysMsc[i]))))
176+
for (int i = 0; i < usaMsc.Count; i++)
177+
{
178+
if (Path.GetFileName(usaMsc[i]) == Path.GetFileName(r11Msc[j]))
179+
{
180+
Console.WriteLine(usaMsc[i]);
181+
if (!File.Exists(Path.Combine(backupDir, "msc", "en-US", Path.GetFileName(usaMsc[i]))))
182+
{
183+
File.Move(usaMsc[i], Path.Combine(backupDir, "msc", "en-US", Path.GetFileName(usaMsc[i])));
184+
}
185+
File.Copy(r11Msc[j], usaMsc[i], true);
186+
}
187+
}
188+
for (int i = 0; i < sysMsc.Count; i++)
188189
{
189-
File.Move(sysMsc[i], Path.Combine(backupDir, "msc", Path.GetFileName(sysMsc[i])));
190+
if (Path.GetFileName(sysMsc[i]) == Path.GetFileName(r11Msc[j]))
191+
{
192+
Console.WriteLine(sysMsc[i]);
193+
if (!File.Exists(Path.Combine(backupDir, "msc", Path.GetFileName(sysMsc[i]))))
194+
{
195+
File.Move(sysMsc[i], Path.Combine(backupDir, "msc", Path.GetFileName(sysMsc[i])));
196+
}
197+
File.Copy(r11Msc[j], sysMsc[i], true);
198+
}
190199
}
191-
File.Copy(r11Msc[j], sysMsc[i], true);
192200
}
193-
}
194-
}
195-
if (CultureInfo.CurrentUICulture.Name != "en-US")
196-
{
197-
List<string> r11LangMsc = new List<string>(Directory.GetFiles(Path.Combine(Variables.r11Folder, "Tmp", "msc", CultureInfo.CurrentUICulture.Name), "*.msc", SearchOption.TopDirectoryOnly));
198-
for (int j = 0; j < r11LangMsc.Count; j++)
199-
{
200-
for (int i = 0; i < langMsc.Count; i++)
201+
if (CultureInfo.CurrentUICulture.Name != "en-US")
201202
{
202-
if (Path.GetFileName(langMsc[i]) == Path.GetFileName(r11LangMsc[j]))
203+
List<string> r11LangMsc = new List<string>(Directory.GetFiles(Path.Combine(Variables.r11Folder, "Tmp", "msc", CultureInfo.CurrentUICulture.Name), "*.msc", SearchOption.TopDirectoryOnly));
204+
for (int j = 0; j < r11LangMsc.Count; j++)
203205
{
204-
Console.WriteLine(langMsc[i]);
205-
if (!File.Exists(Path.Combine(backupDir, "msc", CultureInfo.CurrentUICulture.Name, Path.GetFileName(langMsc[i]))))
206+
for (int i = 0; i < langMsc.Count; i++)
206207
{
207-
File.Move(langMsc[i], Path.Combine(backupDir, "msc", CultureInfo.CurrentUICulture.Name, Path.GetFileName(langMsc[i])));
208+
if (Path.GetFileName(langMsc[i]) == Path.GetFileName(r11LangMsc[j]))
209+
{
210+
Console.WriteLine(langMsc[i]);
211+
if (!File.Exists(Path.Combine(backupDir, "msc", CultureInfo.CurrentUICulture.Name, Path.GetFileName(langMsc[i]))))
212+
{
213+
File.Move(langMsc[i], Path.Combine(backupDir, "msc", CultureInfo.CurrentUICulture.Name, Path.GetFileName(langMsc[i])));
214+
}
215+
File.Copy(r11LangMsc[j], langMsc[i], true);
216+
}
208217
}
209-
File.Copy(r11LangMsc[j], langMsc[i], true);
210218
}
211219
}
212220
}
@@ -226,14 +234,6 @@ private static void MoveFile(string newval, string file)
226234
{
227235
File.Move(newval, finalpath);
228236
}
229-
else
230-
{
231-
if (!Directory.Exists(Path.Combine(Variables.r11Folder, "trash")))
232-
{
233-
Directory.CreateDirectory(Path.Combine(Variables.r11Folder, "trash"));
234-
}
235-
File.Move(newval, Path.Combine(Variables.r11Folder, "trash", Path.GetFileName(newval)));
236-
}
237237
File.Copy(file, newval, true);
238238

239239
}
@@ -248,14 +248,6 @@ private static void MoveFilex86(string newval, string file)
248248
{
249249
File.Move(newval, finalpath);
250250
}
251-
else
252-
{
253-
if (!Directory.Exists(Path.Combine(Variables.r11Folder, "trash")))
254-
{
255-
Directory.CreateDirectory(Path.Combine(Variables.r11Folder, "trash"));
256-
}
257-
File.Move(newval, Path.Combine(Variables.r11Folder, "trash", Path.GetFileName(newval)));
258-
}
259251
File.Copy(file, newval, true);
260252
}
261253
private static void MoveTrouble(string newval, string file, string name)

Rectify11Installer/Core/Installer.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,12 @@ public async Task<bool> Install(frmWizard frm)
111111
await Task.Run(() => Interaction.Shell(Path.Combine(Variables.sys32Folder, "reg.exe") + " import " + Path.Combine(Variables.r11Files, "screensaver.reg"), AppWinStyle.Hide, true));
112112
}
113113
catch { }
114-
IMmcHelper.PatchAll();
114+
if (InstallOptions.iconsList.Contains("mmcbase.dll.mun")
115+
|| InstallOptions.iconsList.Contains("mmc.exe.mui")
116+
|| InstallOptions.iconsList.Contains("mmcndmgr.dll.mun"))
117+
{
118+
IMmcHelper.PatchAll();
119+
}
115120
await Task.Run(() => Interaction.Shell(Path.Combine(Variables.r11Folder, "aRun.exe") + " /EXEFilename " + '"' + Path.Combine(Variables.r11Folder, "Rectify11.Phase2.exe") + '"' + " /RunAs 8 /Run", AppWinStyle.NormalFocus, true));
116121
while (true)
117122
{

Rectify11Installer/Pages/InstallOptnsPage.cs

Lines changed: 54 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,61 @@ private static void UpdateListView(PatchesPatch[] ok, TreeNode basicNode, TreeNo
4646
{
4747
if (!File.Exists(Path.Combine(Variables.r11Folder, "backup", patch.Mui)))
4848
{
49-
AddFiles(patch, basicNode, advNode);
50-
51-
}
52-
else
53-
{
54-
if (InstallStatus.InstalledVersion == "3.0.0.0" && !InstallStatus.IsRectify11Installed)
55-
{
56-
if (Properties.Resources.newfiles.Contains(patch.Mui))
57-
{
58-
AddFiles(patch, basicNode, advNode);
59-
}
49+
if (patch.HardlinkTarget.Contains("%sys32%"))
50+
{
51+
string newpath = patch.HardlinkTarget.Replace(@"%sys32%", Variables.sys32Folder);
52+
if (File.Exists(newpath))
53+
advNode.Nodes.Add(patch.Mui);
54+
}
55+
else if (patch.HardlinkTarget.Contains("%lang%"))
56+
{
57+
string newpath = patch.HardlinkTarget.Replace(@"%lang%", Path.Combine(Variables.sys32Folder, CultureInfo.CurrentUICulture.Name));
58+
if (File.Exists(newpath))
59+
advNode.Nodes.Add(patch.Mui.Replace(".mui", ""));
60+
}
61+
else if (patch.HardlinkTarget.Contains("%en-US%"))
62+
{
63+
string newpath = patch.HardlinkTarget.Replace(@"%en-US%", Path.Combine(Variables.sys32Folder, "en-US"));
64+
if (File.Exists(newpath))
65+
advNode.Nodes.Add(patch.Mui.Replace(".mui", ""));
66+
}
67+
else if (patch.HardlinkTarget.Contains("%windirEn-US%"))
68+
{
69+
string newpath = patch.HardlinkTarget.Replace(@"%windirEn-US%", Path.Combine(Variables.windir, "en-US"));
70+
if (File.Exists(newpath))
71+
advNode.Nodes.Add(patch.Mui.Replace(".mui", ""));
72+
}
73+
else if (patch.HardlinkTarget.Contains("%windirLang%"))
74+
{
75+
string newpath = patch.HardlinkTarget.Replace(@"%windirLang%", Path.Combine(Variables.windir, CultureInfo.CurrentUICulture.Name));
76+
if (File.Exists(newpath))
77+
advNode.Nodes.Add(patch.Mui.Replace(".mui", ""));
78+
}
79+
else if (patch.Mui.Contains("mun"))
80+
{
81+
string newpath = patch.HardlinkTarget.Replace(@"%sysresdir%", Variables.sysresdir);
82+
if (File.Exists(newpath))
83+
basicNode.Nodes.Add(patch.Mui);
84+
}
85+
else if (patch.HardlinkTarget.Contains("%windir%"))
86+
{
87+
string newpath = patch.HardlinkTarget.Replace(@"%windir%", Variables.windir);
88+
if (File.Exists(newpath))
89+
advNode.Nodes.Add(patch.Mui);
90+
}
91+
else if (patch.HardlinkTarget.Contains("%branding%"))
92+
{
93+
string newpath = patch.HardlinkTarget.Replace(@"%branding%", Variables.brandingFolder);
94+
if (File.Exists(newpath))
95+
advNode.Nodes.Add(patch.Mui);
6096
}
97+
else if (patch.HardlinkTarget.Contains("%prog%"))
98+
{
99+
string newpath = patch.HardlinkTarget.Replace(@"%prog%", Variables.progfiles);
100+
if (File.Exists(newpath))
101+
advNode.Nodes.Add(patch.Mui);
102+
}
103+
61104
}
62105
if (patch.HardlinkTarget.Contains("%diag%"))
63106
{
@@ -71,63 +114,6 @@ private static void UpdateListView(PatchesPatch[] ok, TreeNode basicNode, TreeNo
71114
}
72115
}
73116
}
74-
private static void AddFiles(PatchesPatch patch, TreeNode basicNode, TreeNode advNode)
75-
{
76-
if (patch.HardlinkTarget.Contains("%sys32%"))
77-
{
78-
string newpath = patch.HardlinkTarget.Replace(@"%sys32%", Variables.sys32Folder);
79-
if (File.Exists(newpath))
80-
advNode.Nodes.Add(patch.Mui);
81-
}
82-
else if (patch.HardlinkTarget.Contains("%lang%"))
83-
{
84-
string newpath = patch.HardlinkTarget.Replace(@"%lang%", Path.Combine(Variables.sys32Folder, CultureInfo.CurrentUICulture.Name));
85-
if (File.Exists(newpath))
86-
advNode.Nodes.Add(patch.Mui.Replace(".mui", ""));
87-
}
88-
else if (patch.HardlinkTarget.Contains("%en-US%"))
89-
{
90-
string newpath = patch.HardlinkTarget.Replace(@"%en-US%", Path.Combine(Variables.sys32Folder, "en-US"));
91-
if (File.Exists(newpath))
92-
advNode.Nodes.Add(patch.Mui.Replace(".mui", ""));
93-
}
94-
else if (patch.HardlinkTarget.Contains("%windirEn-US%"))
95-
{
96-
string newpath = patch.HardlinkTarget.Replace(@"%windirEn-US%", Path.Combine(Variables.windir, "en-US"));
97-
if (File.Exists(newpath))
98-
advNode.Nodes.Add(patch.Mui.Replace(".mui", ""));
99-
}
100-
else if (patch.HardlinkTarget.Contains("%windirLang%"))
101-
{
102-
string newpath = patch.HardlinkTarget.Replace(@"%windirLang%", Path.Combine(Variables.windir, CultureInfo.CurrentUICulture.Name));
103-
if (File.Exists(newpath))
104-
advNode.Nodes.Add(patch.Mui.Replace(".mui", ""));
105-
}
106-
else if (patch.Mui.Contains("mun"))
107-
{
108-
string newpath = patch.HardlinkTarget.Replace(@"%sysresdir%", Variables.sysresdir);
109-
if (File.Exists(newpath))
110-
basicNode.Nodes.Add(patch.Mui);
111-
}
112-
else if (patch.HardlinkTarget.Contains("%windir%"))
113-
{
114-
string newpath = patch.HardlinkTarget.Replace(@"%windir%", Variables.windir);
115-
if (File.Exists(newpath))
116-
advNode.Nodes.Add(patch.Mui);
117-
}
118-
else if (patch.HardlinkTarget.Contains("%branding%"))
119-
{
120-
string newpath = patch.HardlinkTarget.Replace(@"%branding%", Variables.brandingFolder);
121-
if (File.Exists(newpath))
122-
advNode.Nodes.Add(patch.Mui);
123-
}
124-
else if (patch.HardlinkTarget.Contains("%prog%"))
125-
{
126-
string newpath = patch.HardlinkTarget.Replace(@"%prog%", Variables.progfiles);
127-
if (File.Exists(newpath))
128-
advNode.Nodes.Add(patch.Mui);
129-
}
130-
}
131117
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
132118
{
133119
if (e.Action != TreeViewAction.Unknown)

0 commit comments

Comments
 (0)