Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void WriteRegKey(string keyName, string ipm1, string ipm2, string p1, string p2)
- {
- string value1 = p1; // Преобразование string в int
- short i1 = Convert.ToInt16(value1);
- int valueHex1 = IPAddress.NetworkToHostOrder(i1);
- string h1 = valueHex1.ToString("X2");
- string value2 = p2; // Преобразование string в int
- short i2 = Convert.ToInt16(value2);
- int valueHex2 = IPAddress.NetworkToHostOrder(i2);
- string h2 = valueHex2.ToString("X2");
- string str1 = ipm1;
- var result1 = str1.Split('/');
- string input1 = result1[0];
- string hex3 = string.Concat(input1.Split('.').Select(x => int.Parse(x).ToString("X2").PadLeft(2, '0')));
- int cidr1 = int.Parse(result1[1]);
- BitVector32 bits1 = new BitVector32(-1 << (32 - cidr1));
- string hex4 = bits1.Data.ToString("X2");
- string str2 = ipm2;
- var result2 = str2.Split('/');
- string input3 = result2[0];
- string hex5 = string.Concat(input3.Split('.').Select(x => int.Parse(x).ToString("X2").PadLeft(2, '0')));
- int cidr2 = int.Parse(result2[1]);
- BitVector32 bits2 = new BitVector32(-1 << (32 - cidr2));
- string hex6 = bits2.Data.ToString("X2");
- // Преобразование в IP
- var bytes = BitConverter.GetBytes((uint)bits1.Data);
- IPAddress netMask = new IPAddress(bytes.Reverse().ToArray());
- var IP1 = hex3; // Адрес 8.8.8.8
- var IPm1 = hex4; // Маска 255.255.255.255
- var IP2 = hex5; // Адрес2 9.9.9.9
- var IPm2 = hex6; // Маска 255.255.255.255
- var Type = "06"; // Тип протокола (6) он же TCP
- var Port1 = h1; // Порт 1111
- var Port2 = h2; // Порт 2222
- var guidText = (Guid.NewGuid().ToString("B"));
- RegistryKey lm = Registry.LocalMachine;
- RegistryKey cs1 = lm.CreateSubKey("SOFTWARE\\002");
- RegistryKey cs2 = cs1.CreateSubKey("ipsecFilter" + guidText);
- var hex2 = "B520DC80C82ED111A89E00A0248D30214600000001000000020000000000020000000000020000000000424899DBF729" +
- "3E4B90A44D6BB8ACCB3001000000" + IP1 + IPm1 + IP2 + IPm2 + "00000000" + Type + "0000000000" + Port1 + Port2 + "00000000";
- var valueReg = StringToByteArray(hex2);
- cs2.SetValue("className", "ipsecFilter");
- cs2.SetValue(keyName, valueReg, RegistryValueKind.Binary);
- cs2.SetValue("ipsecDataType", "100", RegistryValueKind.DWord);
- cs2.SetValue("ipsecID", guidText);
- cs2.SetValue("ipsecName", "Белый список");
- cs2.SetValue("name", "ipsecFilter" + guidText);
- cs2.SetValue("whenChanged", "00000000", RegistryValueKind.DWord);
- // Сохранение ключа и его значения в config.ini (value имя ключа || guidText имя раздела)
- //ini.Write("ipsecFilter" + guidText, ip1 + "/" + ipm1, "IPsec");
- ini.Write("ipsecFilter" + guidText, ipm1, "IPsec");
- textBoxHex.Text = hex2;
- }
- private void buttonHex_Click(object sender, EventArgs e)
- {
- WriteRegKey("ipsecData", textBoxIPm1.Text, textBoxIPm2.Text, textBoxPort1.Text, textBoxPort2.Text);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement