Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 0 / 0
Регистрация: 30.04.2026
Сообщений: 11

Загрузка выгрузка без процесса и с процессом

30.04.2026, 12:07. Показов 3093. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
там нужно получить hwnd
чтобы выгрузить процесс de

C++
1
2
3
TerminateProcess(pi.hProcess, 0);
 CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
свой калькулятор или блокнот
я могу выгрузить из памяти
а запущенный по таймеру яндекс броузер
не закрывается

1.
C++
1
2
//hwndhwnd=FindWindow("calc.exe", NULL);
//DestroyWindow(hwndhwnd);
2.
C++
1
2
3
TerminateProcess(pi.hProcess, 0);
 CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
что делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2026, 12:07
Ответы с готовыми решениями:

Двунаправленная связь через pipe между процессом-родителем и процессом-ребенком
Зачем мы используем в этой программе 2 пайпа? #include <sys/types.h> #include <unistd.h> ...

Добавление своей dll в список dll подгружаемых процессом чужого процесса
Вообще вопрос такой,как можно внедрить свою dll в список Import чужого не запущенного процесса?Не...

Организация работы со словарем: загрузка/выгрузка, поиск слов с заданным корнем
STL Нужно использовать шаблон list (двусвязного списка) для организации работы со словарем...

31
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
02.05.2026, 22:43
Студворк — интернет-сервис помощи студентам
Напишите - код гавно, сделаю одной строчкой?
Тогда позвольте возразить.
Эта штука настраиваеться на разные файлы и разное удаление.
Она может удалять папки вместе с содержимым.
Или файлы с данным расширением.
Так же переносить или переименовывать.
0
Software Engineer
 Аватар для Custos
337 / 341 / 55
Регистрация: 23.09.2014
Сообщений: 1,048
02.05.2026, 23:50
Цитата Сообщение от Royal_X Посмотреть сообщение
Но шуточные пакости, про которые я писал выше, не будут определяться как вирус на сайте virustotal
Даже если исполняемый файл будет содержать деструктивный код, который гарантированно палится поведенческими анализаторами антивирусов, то virustotal все равно можно обмануть, так как малварь зачастую содержит детекты для обнаружения виртуального окружения. Если виртуальное окружение обнаружено, то малварь будет себя вести как безобидное приложение, чтобы не вызывать подозрений, а деструктивное поведение будет проявляться только на реальных машинах пользователей.

Поэтому virustotal по большей части бесполезен.
А для разработчиков легитимного софта даже вреден, так как некоторые антивирусы могут воспринимать сам факт отправки бинарника на virustotal как недоверие/подозрительность пользователей в отношении ПО, и просто на всякий случай могут помечать такой софт как "потенциально опасный".

Также virustotal любит ругаться на бинарники, которые используют публичные библиотеки, которые также активно используются и авторами вредоносного ПО. У меня, к примеру, так было с lazy importer. Пришлось делать форк и немного перерабатывать либу.
2
0 / 0 / 0
Регистрация: 30.04.2026
Сообщений: 11
03.05.2026, 00:11  [ТС]
pid-error-list-txtfile <it=analyz>

1.pid 1=error 5
2.pid 2=error 6
3.pid 3=error 5
4.pid 4=error 6
5.pid 5=error 6
6.pid 6=error 5
----------------
100.pid 100=error 5
101.pid 101=error 6

getlasterror использовал
лист отчет тест ткст файл

все процессы открыла enumprocess() загрузкой таблицы пидов-pids
openprocess()


C++
1
2
3
4
5
6
7
//#if _WIN32_WINNT >= 0x0600
    // ?????????? QueryFullProcessImageName
    //QueryFullProcessImageName(hProcess, 0, szProcessName, pnsize);
//#else
    // ?????????????? ????? ??? ?????? ?????? Windows
 //   GetModuleFileNameEx(hProcess, NULL, szProcessName, &pnsize);
//#endif

QueryFullProcessImageName( -вылетают ошибки что только ни делал (флаг версии винды вначале выставлял даже)

GetModuleFileNameEx( - компилится нормально - но в чек-листе с пидами-pids == выдает 5 5 5 6 5 6 5 6 6 5

самое интересное номера ошибки моно и легко находятся в справочнике микросовт

szProcessName - самая интеоресная выходная переменная текстовая.....от функции выше на одну строку

она должна выдать имя в нормальном текстовом виде -
но нет
черт побери только адна буква как байт и ошибка в указателе переменной компилятора
я указатель "&" &var1000 - так ошибка
а var1000 - нет ошибки...................
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
03.05.2026, 00:11
Custos,
Полезно...
0
0 / 0 / 0
Регистрация: 30.04.2026
Сообщений: 11
03.05.2026, 00:13  [ТС]
щас попробую менятель привилегий новых пустых файлов создать
чтобы понять как это выглядит снизу.....
проблема простых разрабов
защитить свою новую прогу от себя же....на всяк случай
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
03.05.2026, 00:18
Роман1005000,
У тебя с письмом не всё очень хорошо.
И с чтением похоже тоже.
Будь проще.. Всё работает без привилегий.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// ================================
// Получить ID процесса и потока
                DWORD processId;
                GetWindowThreadProcessId(hTargetWindow, &processId);
 
 
        HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processId);
        if (hProcess == NULL) {
            std::cerr << "Не удалось открыть процесс: "  << std::endl;
            Sleep(300);
        }
DWORD charsCarried = BUF_LEN;
/* get executable name*/
        if (QueryFullProcessImageName(hProcess, 0, fullPath, &charsCarried) == FALSE)
        {
            memset(fullPath, 0, wcslen(fullPath) * sizeof(wchar_t));
        }
std::wcout  << fullPath << std::endl;
 
    CloseHandle(hProcess);
        hProcess = NULL;
Почему у меня нет проблем с пидлами?
0
0 / 0 / 0
Регистрация: 30.04.2026
Сообщений: 11
03.05.2026, 00:20  [ТС]
сначала пишем фотку грузит
задаем привилегию я крутая такая
шиш со мной.....

потом пишем закрывалку простую
с другой фоткой типа я танк а ты кукла

так на двух разных програх
мы можем искать по этой модели способы закрытия разн программ
деинсталятор с нуля даже написать с драйвером типа антивир чутьть
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
03.05.2026, 00:35
Цитата Сообщение от Роман1005000 Посмотреть сообщение
менятель привилегий новых пустых файлов создать
Я создавал...
Потом кучу файлов восстанавливать задолбался.
Менять обратно. В ручную...
(Сколько чудаков здесь мелькает...)

Добавлено через 7 минут
И пожалеешь............

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
#include <windows.h>
#include <locale.h>
#include <Aclapi.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");// Принимает русский путь...(проблемы с русскими путями)    
    static char dst_foldername[128]{};
    if (argc == 2) {// Если перетащил на экзешник файл то
                    //----------------Грузить  (перетаскиванием)
        WideCharToMultiByte(CP_ACP, 0, argv[1], -1, dst_foldername, wcslen(argv[1]), NULL, NULL);
        dst_foldername[wcslen(argv[1])] = '\0';
    }
    else {
        printf(" ====== Drag the folder with shit onto the exe file ======\n\n ");
        printf("      drag the file to the executable\n \n         ### press ENTER ###"); getchar(); return 0;
    }
    
    //----------------------------
    // printf("%s\n", dst_foldername);
    //  getchar(); getchar();
 
    PACL pSacl{};
    DWORD dwResult{};
    
// Беру дискриптор.
    HANDLE hDir_out = CreateFileA(dst_foldername,
                  READ_CONTROL | WRITE_DAC, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
    if (hDir_out == INVALID_HANDLE_VALUE)printf("%s\n", "fucked CreateFileA");
 
    
    ACL* pOldDACL;//   Беру DACL У папки.
    PSECURITY_DESCRIPTOR pSD = NULL;
GetSecurityInfo(hDir_out, SE_FILE_OBJECT,
        DACL_SECURITY_INFORMATION, NULL, NULL, &pOldDACL,// <------ Указатель на переменную, 
        NULL, &pSD);//        которая получает указатель на список DACL в возвращенном дескрипторе безопасности.
 
PACL pAcl = pOldDACL;
int aceNum = pOldDACL->AceCount;
for (int i = 0; i < aceNum; i++)
{
    ACE_HEADER *aceAddr = NULL;
    if (GetAce(pAcl, i, (void**)(&aceAddr)))
    {
        printf("ACE type: %d \n", aceAddr->AceType); ACCESS_ALLOWED_ACE_TYPE;
        printf("ACE flags: %d \n", aceAddr->AceFlags);
        printf("ACE size: %d \n", aceAddr->AceSize);
    //--------------------- 
        DeleteAce(// Удаляю все разрешения
            pOldDACL,
            i
        );
    }
}
 
    ACL* pNewDACL = 0;
// Сшибаю всё
    SetSecurityInfo(hDir_out, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, pNewDACL, NULL);
 
      //while (true) {
    //  Sleep(10);
  //        if (KEYDOWN(VK_SPACE))break;
//  }
 
    //  Устанавливаю
        SetSecurityInfo(hDir_out, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, pOldDACL, NULL);
        
    LocalFree(pNewDACL);
    LocalFree(pSD);
    LocalFree(pOldDACL);
                       CloseHandle(hDir_out);
                        
    return 0;
}
0
0 / 0 / 0
Регистрация: 30.04.2026
Сообщений: 11
03.05.2026, 04:07  [ТС]
system("taskkill /IM browser.exe /F");

как cls в бейсике сработало.
я даже удивился от ужаса
впроделанной многоработе

[
в результате я задумался о новых сложных программах как антивирус
я вначале сомневался но это интересные случаи виртуализации
]

Добавлено через 3 минуты
но мне надо чтобы он конкретно среди мозиллы оперы закрывал именно яндекс броузер
а то вдруг
чрезмерно обобщая он мне все разные броузеры закроет а я там телики в разных бро смотрю

поэтому проверяю ваши вложения внимательно
windowsclose.rar там всего две три voids функции важные

дефендер на гитхабе от взлома

тасккил

вообщем куча интересных идей господа

Добавлено через 58 секунд
спасибо за таскилл

милион лайков

вам профессор
0
0 / 0 / 0
Регистрация: 30.04.2026
Сообщений: 11
04.05.2026, 11:41  [ТС]
а как сделать чтоб окно было выше всех окон даже перекрывало фулскриновое с фильмом?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,529
04.05.2026, 13:06
Цитата Сообщение от Роман1005000 Посмотреть сообщение
а как сделать чтоб окно было выше всех окон
с этим всё просто, нужно использовать флаг HWND_TOPMOST. Этот флаг можно передать в SetWindowPos в качестве второго аргумента. Подробнее: https://learn.microsoft.com/en... twindowpos

Цитата Сообщение от Роман1005000 Посмотреть сообщение
даже перекрывало фулскриновое с фильмом
с этим уже посложнее. Можно попробовать при создании окна использовать CreateWindowEx со стилем WS_EX_TOPMOST. Может сработать, а может и нет, хз.
Прикол в том, что эти окна полноэкранных фильмов, скорее всего, будут тоже в режиме exclusive fullscreen, причем, будут использовать всякие DirectX и прочее, а стало быть будут иметь приоритет над WS_EX_TOPMOST и HWND_TOPMOST.
В таких случаях, нужно тоже использовать низкоуровневые техники типа Direct Composition / DXGI overlay, которые например используются курсором мыши, который поверх даже полноэкранного фильма. Тут уже обычных знаний по WinAPI будет недостаточно, и такое реализовать сложно. По крайней мере, я таким никогда не занимался.
Как альтернативу, в голову приходит идея отключить эксклюзивный fullscreen у окна с фильмом. Это, конечно, вмешательство в чужой процесс, но в таком случае твое topmost окно уже сможет перекрыть фильм. Но и тут не уверен, сработает ли или нет.
1
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
04.05.2026, 13:57
Такую конструкцию долбить надо регулярно. Таймером что ли? По верх всего будет.

C++
1
2
3
// Подбросить окно браузера поверх всех окон, и сбросить обратно.
    SetWindowPos(data.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
    SetWindowPos(data.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
Добавлено через 13 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//------------------Анимация---------------------------------------------------------
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
aniPic++;
if(aniPic==2){Image1->Picture->Bitmap = NULL;Image1->Picture->Assign(Image2->Picture);}
if(aniPic==3){Image1->Picture->Bitmap = NULL;Image1->Picture->Assign(Image3->Picture);}
if(aniPic==4){Image1->Picture->Bitmap = NULL;Image1->Picture->Assign(Image4->Picture);}
if(aniPic==5){Image1->Picture->Bitmap = NULL;Image1->Picture->Assign(Image5->Picture);}
if(aniPic==6){Image1->Picture->Bitmap = NULL;Image1->Picture->Assign(Image6->Picture);}
if(aniPic==7){Image1->Picture->Bitmap = NULL;Image1->Picture->Assign(Image7->Picture);}
if(aniPic==8)aniPic=1;
SetWindowPos(Form1->Handle, HWND_TOPMOST, 0, 0, 0, 0,//--По верх всех окон
        SWP_NOMOVE | SWP_NOSIZE);
На шестом бильдере... И так и оставил...
Здесь за один проход таймера показывает один спрайт и делает по верх всех окон.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.05.2026, 13:57

WebServer выгрузка / загрузка файлов
Домашний Веб сервер по методологии CGI ISAPI - Web Server Application Задача: 1. При...

Загрузка\выгрузка в файл
Добрый день! У меня не получается сохранить двусвязный список в файл, точнее, оно сохраняет...

Создание динамической библиотеки с функцией загрузки и выгрузки
Ребят, помогите написать программу. Такое совсем не знаю как осилить... Написать динамическую...

Выгрузка DLL из стороннего процесса
Как возможно выгрузить DLL из стороннего процесса, желательно пару примеров.

Выгрузка dll из процесса
Здраствуйте. DLL подключается к процессу при его старте, и мне нужно чтобы при определенном условии...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru