Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/35: Рейтинг темы: голосов - 35, средняя оценка - 4.69
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1

Запись и удаление значений реестра

14.08.2012, 21:42. Показов 6795. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
если на этот вопрос найдётся ответ то все предыдущие темы стоит удалить...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 if (BitnostSistem == bit32)
                    {
                        RegistryKey regFirst = Registry.LocalMachine;
                        RegistryKey regsw = regFirst.OpenSubKey("SOFTWARE", true);
                        RegistryKey regmc = regsw.OpenSubKey("Microsoft", true);
                        RegistryKey regwin = regmc.OpenSubKey("Windows NT", true);
                        RegistryKey regcv = regwin.OpenSubKey("CurrentVersion", true);
                        RegistryKey regrun = regcv.OpenSubKey("Windows", true);
 
                        regrun.SetValue("AppInit_DLLs", NameDLL);
                        regrun.SetValue("LoadAppInit_DLLs", 1, RegistryValueKind.DWord);
                        timer1.Stop();
                        timer2.Start();
                        notifyIcon1.ShowBalloonTip(600, "**", "DLL внедрена в процесс.", ToolTipIcon.Warning);

regrun.SetValue("AppInit_DLLs", NameDLL);
regrun.SetValue("LoadAppInit_DLLs", 1, RegistryValueKind.DWord);

этой командой DLl добавляется в реестр?

каким образом выгрузить её с реестра?

Добавлено через 4 минуты
string NameDLL = "" если оставить так? будет ли работать, у меня просто vs не запускается, нужно сделать откат системы

Добавлено через 56 минут
додумался до такого

C#
1
2
3
4
private void Form1_Closing(object sender, EventArgs e)
        {
            reg.SetValue("AppInit_DLLs", string.Empty);
        }
ругается на reg
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2012, 21:42
Ответы с готовыми решениями:

Запись значения в реестр и удаление из реестра
Пытался пытался, так и не получилось поладить с api для реестра. Нужно установить значение и потом удалить. public bool...

Удаление значений реестра
Подскажите пожалуйста.. Не могу разобраться с циклом во второй процедуре.. Нужно, чтобы все выделенные чеки (это параметры реестра) по...

Считывание бинарных значений из реестра и запись их в одну строку
//9.Функция для считывание бинарных значений из реестра и передачи значения в виде одной строки через пробел (передать переменные с путем и...

8
 Аватар для xnimor
72 / 72 / 6
Регистрация: 16.06.2012
Сообщений: 220
14.08.2012, 21:45
Попроще пример отправлю - думаю, разберетесь -
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void button1_Click(object sender, EventArgs e)
        {
            string ExePath = Application.ExecutablePath;
            RegistryKey reg;
            string name = "Календарик";
            reg = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run\\");//Здесь переходим по реестру
            try
            {
 
                reg.SetValue(name, ExePath);//устанавливаем значение
                reg.Close();//сохраняем изменения
            }
            catch
            {
 
            }
0
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1
14.08.2012, 21:48  [ТС]
и ещё вопросик куда именно заносится DLL файл? может мне проще всего удалять ветвь?

C#
1
Registry.CurrentUser.DeleteSubKey(@"что удалить");
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
14.08.2012, 21:53
Цитата Сообщение от HPB Посмотреть сообщение
этой командой DLl добавляется в реестр?
LoadAppInit_DLLs - говорит системе о том что все DLL из списка AppInit_DLLs должны быть загружены во все процессы.
Цитата Сообщение от HPB Посмотреть сообщение
если оставить так? будет ли работать
Вы хотите чтобы система "пустоту" грузила в процессы? В NameDLL должен быть путь к DLL в короткой форме.
Цитата Сообщение от HPB Посмотреть сообщение
ругается на reg
Ну так может её объявить стоит?

Добавлено через 1 минуту
Цитата Сообщение от HPB Посмотреть сообщение
вопросик куда именно заносится DLL файл
DLL файл никуда не заносится, имя DLL должно быть записано (дополнено) в список AppInit_DLLs.

Вы хотите что-то добавить или удалить из AppInit_DLLs?

з.ы. Такое чувство что Вы даже не понимаете что делаете, как в коде, так и в реестре...
1
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1
15.08.2012, 13:32  [ТС]
LoadAppInit_DLLs - говорит системе о том что все DLL из списка AppInit_DLLs должны быть загружены во все процессы.
допустим я не знал как подгрузить в нужный хоть и пользовался я
C#
1
if (proc.ProcessName == "LOLO")
Вы хотите чтобы система "пустоту" грузила в процессы? В NameDLL должен быть путь к DLL в короткой форме.
на счёт пустоты "помощЬ"
на счёт длины пути к DLL файлу...вроде всё прекрасно работало

Ну так может её объявить стоит?.
тыкните : (


DLL файл никуда не заносится, имя DLL должно быть записано (дополнено) в список AppInit_DLLs.

Вы хотите что-то добавить или удалить из AppInit_DLLs?

з.ы. Такое чувство что Вы даже не понимаете что делаете, как в коде, так и в реестре...
при подгрузки библиотеки в процес (как оказалось не только в нужный процесс) так же создаётся запись в реестр....после того как всё успешно выполнено мне нужно уже удалить эту проклятую запись с реестра которая мешала уже дальше удалить свободно библиотеку!

Добавлено через 12 часов 54 минуты
: ( АП

Добавлено через 2 часа 37 минут
АП2!!!
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
15.08.2012, 13:49
Цитата Сообщение от HPB Посмотреть сообщение
после того как всё успешно выполнено мне нужно уже удалить эту проклятую запись с реестра которая мешала уже дальше удалить свободно библиотеку!
Даже если Вы удалите запись с реестра, Вы без перезагрузки не удалите библиотеку, т.к. если она загружена в процессы, то они её будут держать.

Удаление:
C#
1
2
3
4
5
            using ( var key = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows", true ) )
            {
                key.SetValue( "AppInit_DLLs", null, RegistryValueKind.String );
                key.SetValue( "LoadAppInit_DLLs", 0, RegistryValueKind.DWord );
            }
0
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1
15.08.2012, 13:56  [ТС]
LoadAppInit_DLLs - говорит системе о том что все DLL из списка AppInit_DLLs должны быть загружены во все процессы.
как можно будет этого избежать? раз во все процессы грузит
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
15.08.2012, 14:01
HPB, грузить в определенный процесс, как - я здесь показывал.
1
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1
16.08.2012, 08:02  [ТС]
благодарю вас..

прийдётся переписать проект

Добавлено через 28 минут
чёрт работает только с 32x это проблема : (

Добавлено через 1 час 11 минут



полный код моего проекта... : (
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Net;
using System.Management;
using Microsoft.Win32;
 
 
namespace Инжектор_DLL
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            //#region Global оказалось не нужным
 
            //string globalstringtextbox = "";
            //const bool debugState = false;
            //#endregion
 
            timer1.Start();
            notifyIcon1.Text = "****блоло";
            
            notifyIcon1.MouseClick += new MouseEventHandler(_notifyIcon_MouseClick);
            this.components = null;
        }
        
 
 
        public static int BitnostSistem = IntPtr.Size;//Переменная равная 4 - 32x(битности). А в 64x - 8.
        int bit32 = 4;//Windows ... 32(86)x
        int bit64 = 8;//Windows ... 64x
 
        /// <summary>
        /// здесь хранится состояние окна до сворачивания (максимизированное или нормальное)
        /// </summary>
        private FormWindowState _OldFormState;
        private static bool debugState;
 
        /// <summary>
        /// обрабатываем событие клика мышью по значку в трее
        /// </summary>
        void _notifyIcon_MouseClick(object sender, MouseEventArgs e)
        {
            //проверяем, какой кнопкой было произведено нажатие
            if (e.Button == MouseButtons.Left)//если левой кнопкой мыши
            {
                //проверяем текущее состояние окна
                if (WindowState == FormWindowState.Normal || WindowState == FormWindowState.Maximized)//если оно развернуто
                {
                    //сохраняем текущее состояние
                    _OldFormState = WindowState;
                    //сворачиваем окно
                    WindowState = FormWindowState.Minimized;
                    //скрываться в трей оно будет по событию Resize (изменение размера), которое сгенерировалось после минимизации строчкой выше               
                }
                else//в противном случае
                {
                    //и показываем на нанели задач
                    Show();
                    //разворачиваем (возвращаем старое состояние "до сворачивания")
                    WindowState = _OldFormState;
                }
            }
        }
 
        /// <summary>
        /// обрабатываем событие изменения размера
        /// </summary>
        
        private void Form1_Load(object sender, EventArgs e)
        {
            notifyIcon1.ShowBalloonTip(600, "Инжектор", "Программа запущена", ToolTipIcon.Warning);
 
           // MessageBox.Show("Pleas Wait (2-3min.");
           // WebClient Client = new WebClient();
            //Создаем клиент
            //string DownloadFileName = System.IO.Path.GetFileName(txtAddr2.Text);
            //Объявляем адрес файла для скачки
           //Client.DownloadFile(txtAddr2.Text, txtPath2.Text + DownloadFileName);
            //С помощью клиента начинаем загрузку файла
            
           
         
            
            
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            Process[] process = Process.GetProcesses();
            bool ProcessFound = false;
            foreach (Process proc in process)
            {
                if (proc.ProcessName == "GTA*.*")
                {
                    string NameDLL = @"C:\Disco.dll";
 
                    if (BitnostSistem == bit32)
                    {
                        RegistryKey regFirst = Registry.LocalMachine;
                        RegistryKey regsw = regFirst.OpenSubKey("SOFTWARE", true);
                        RegistryKey regmc = regsw.OpenSubKey("Microsoft", true);
                        RegistryKey regwin = regmc.OpenSubKey("Windows NT", true);
                        RegistryKey regcv = regwin.OpenSubKey("CurrentVersion", true);
                        RegistryKey regrun = regcv.OpenSubKey("Windows", true);
 
                        regrun.SetValue("AppInit_DLLs", NameDLL);
                        regrun.SetValue("LoadAppInit_DLLs", 1, RegistryValueKind.DWord);
                        timer1.Stop();
                        timer2.Start();
                        notifyIcon1.ShowBalloonTip(600, "Инжектор", "DLL внедрена в процесс.", ToolTipIcon.Warning);
 
                        //System.IO.File.Delete(@"C:\WINDOWS\Temp\Disco.dll");
                    }
 
 
 
                    if (BitnostSistem == bit64)
                    {
                        RegistryKey regFirst = Registry.LocalMachine;
                        RegistryKey regsw = regFirst.OpenSubKey("SOFTWARE", true);
                        RegistryKey regmc = regsw.OpenSubKey("Wow6432Node", true);
                        RegistryKey regwin = regmc.OpenSubKey("Microsoft", true);
                        RegistryKey regcv = regwin.OpenSubKey("Windows NT", true);
                        RegistryKey regrun = regcv.OpenSubKey("CurrentVersion", true);
                        RegistryKey rego = regcv.OpenSubKey("Windows", true);
 
                        rego.SetValue("AppInit_DLLs", NameDLL);
                        rego.SetValue("LoadAppInit_DLLs", 1, RegistryValueKind.DWord);
                        timer1.Stop();
                        timer2.Start();
                        
                        notifyIcon1.ShowBalloonTip(600, "Инжектор", "DLL внедрена в процесс.", ToolTipIcon.Warning);
                        ProcessFound = true;
                        //System.IO.File.Delete(@"C:\WINDOWS\Temp\Disco.dll");
                       
                    }
                }
                if (ProcessFound != true)
                    label1.Text = "Go Go Go WarFace Hacking...";
                label2.Text = "[ожидание запуска игры]...";
               
            }
        }
 
        private void timer2_Tick(object sender, EventArgs e)
        {
            Process[] process = Process.GetProcesses();
            bool ProcessFound = false;
            foreach (Process proc in process)
            {
                if (proc.ProcessName == "Game")
                {
                    string NameDLL = @"C:\WINDOWS\Temp\Disco.dll";
 
                    if (BitnostSistem == bit32)
                    {
                        RegistryKey regFirst = Registry.LocalMachine;
                        RegistryKey regsw = regFirst.OpenSubKey("SOFTWARE", true);
                        RegistryKey regmc = regsw.OpenSubKey("Microsoft", true);
                        RegistryKey regwin = regmc.OpenSubKey("Windows NT", true);
                        RegistryKey regcv = regwin.OpenSubKey("CurrentVersion", true);
                        RegistryKey regrun = regcv.OpenSubKey("Windows", true);
 
                        regrun.SetValue("AppInit_DLLs", NameDLL);
                        regrun.SetValue("LoadAppInit_DLLs", 1, RegistryValueKind.DWord);
                        timer2.Stop();
                        
                        notifyIcon1.ShowBalloonTip(600, "Инжектор", "DLL успешно заинжектена!", ToolTipIcon.Warning);
                        this.Opacity = 100;
                     
                        //rego.SetValue("AppInit_DLLs", string.Empty);
                        FileInfo fi = new FileInfo(@"C:\WINDOWS\Temp\Disco.dll");
                        fi.Delete();
                        //Process.Start(@"C:\Windows\System32\cmd.exe", @" /C del C:\WINDOWS\Temp\Disco.dll");
                       // System.IO.File.Delete(@"C:\WINDOWS\Temp\Disco.dll");
                        Application.Exit();
                       
                    }
 
 
 
                    if (BitnostSistem == bit64)
                    {
                        RegistryKey regFirst = Registry.LocalMachine;
                        RegistryKey regsw = regFirst.OpenSubKey("SOFTWARE", true);
                        RegistryKey regmc = regsw.OpenSubKey("Wow6432Node", true);
                        RegistryKey regwin = regmc.OpenSubKey("Microsoft", true);
                        RegistryKey regcv = regwin.OpenSubKey("Windows NT", true);
                        RegistryKey regrun = regcv.OpenSubKey("CurrentVersion", true);
                        RegistryKey rego = regcv.OpenSubKey("Windows", true);
 
                        rego.SetValue("AppInit_DLLs", NameDLL);
                        rego.SetValue("LoadAppInit_DLLs", 1, RegistryValueKind.DWord);
                        timer2.Stop();
                       
                        notifyIcon1.ShowBalloonTip(600, "Инжектор", "DLL успешно заинжектена!", ToolTipIcon.Warning);
                        this.Opacity = 100;
                        ProcessFound = true;
                      //  Process.Start(@"C:\Windows\System32\cmd.exe", @" /C del C:\WINDOWS\Temp\Disco.dll");
                       // System.IO.File.Delete(@"C:\WINDOWS\Temp\Disco.dll");
                       // FileInfo fi = new FileInfo(@"C:\WINDOWS\Temp\Disco.dll");
                        Application.Exit();
                    }
                }
                if (ProcessFound != true)
                    label1.Text = "Ожидание запуска игры...";
                
 
            }
        }
        public static void ErrorMessage(string message)//Служит для определения в каком месте - произошла ошибка. Конечно можно просто использовать MessBox, но мне так удобней
        {
            if (debugState == true)
                MessageBox.Show("Ошибка : " + message);
        }
        private void Form1_Closing(object sender, EventArgs e)
        {
            Registry.CurrentUser.DeleteSubKey(@"что удалить");
        }
        
    }
}

Принцип работы:
При обноружение процесса "GTA *.*", заносить в реестер вх, и сразу же уберать(Ведь так же?)




сделал с таймером:
timer1 внесение.
timer2 удаление.





но теперь беда : ( я не знаю как мне подгрузить в один единственный процесс : ( кто сможет подправьте пожалуйста


это последняя просьба.

Добавлено через 44 минуты
могу немного заплатить..за перезапись

Добавлено через 56 минут
или реестрово нельзя указать куда именно ему подгружать

он во все грузит с модулями d3d9 ?

Добавлено через 14 часов 38 минут
что нельзя не каким образом?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2012, 08:02
Помогаю со студенческими работами здесь

Удаление из реестра
Здравствуйте. Не могу понять, почему не удаляется программа из реестра. Вот код помещения в реестр: HKEY hKeys; if (ERROR_SUCCESS ==...

Удаление из реестра
Подскажите, пожалуйста. Проблема вот в чем: удаляю разделы из реестра, но мне надо удалить все подразделы указанного раздела, а сам раздел...

Удаление из реестра
procedure TForm1.N4Click(Sender: TObject); var reg: tregistry; begin reg := tregistry.create; try reg.rootkey :=...

Удаление параметра реестра
Всем привет. Есть в реестре по адресу HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\ такие записи: Имя |Тип |Значение С:\qw\ ...

Удаление из системного реестра
Товарищи подскажите как удалить целый каталог из системного реестра или хотябы переименовать. К примеру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru