Информация об изменениях

Сообщение Re[12]: netcore app.dll и firewall от 04.12.2023 19:08

Изменено 04.12.2023 19:12 Serginio1

Re[12]: netcore app.dll и firewall
Здравствуйте, ·, Вы писали:

·>Здравствуйте, Serginio1, Вы писали:


S>>·>Здравствуйте, Serginio1, Вы писали:S>>·>Кто? Зачем? Ты о чём? Предлагаешь в фаерволл регекспы на командную строку ставить? Я написал почему это не будет работать.

S>>>>Там даже без регекспов а просто путь с командной строкой
S>>·>Я не понял что ты предлагаешь, но это не может работать в принципе.
S>>Сейчас ты можешь настроить только на путь. Но хотелось бы добавить путь с параметрами, что бы фильровать еще и по параметрам.
S>> Сейчас этого нет, но возможность такая есть ибо процесс эту информацию хранит.
·>Т.е. Ты предлагаешь фильтровать по совпадению на строчку "dotnet.exe App.dll"?
·>А вот так? "dotnet.exe .\App.dll"
·>А вот так? "dotnet.exe App.dll app-args"
·>А вот так? "dotnet.exe --depsfile xyz App.dll"
·>А вот так? "dotnet.exe AnotherAppWhichRuns-theApp-Indirectly.dll"
·>А вот так? "dotnet.exe SomethingCompletelyDifferent.dll --some-args=App.dll --more"

·>Ещё раз повторюсь — такое в принципе работать не может.


Я с тебя хренею. Во первых ТП уже знает как запускает приложение.

Второе достаточно CommamdLine.Contains

·>Фаерволл вешается где-нибудь внутре CreateProcess и проверяет путь до executable. А ты ещё предлагаешь парсить аргументы, разбираться в их структуре, понимать что к чему и где там имя Dll-ки который executable может загружать (а может и не загружать!) на выполнение.


Ты программсит? Что там в Main передается?
https://learn.microsoft.com/en-us/windows/win32/procthread/creating-processes
if( !CreateProcess( NULL,   // No module name (use command line)
        argv[1],        // Command line
        NULL,           // Process handle not inheritable
        NULL,           // Thread handle not inheritable
        FALSE,          // Set handle inheritance to FALSE
        0,              // No creation flags
        NULL,           // Use parent's environment block
        NULL,           // Use parent's starting directory 
        &si,            // Pointer to STARTUPINFO structure
        &pi )           // Pointer to PROCESS_INFORMATION structure
    )


Ты споришь, ради того, что бы тебе чего то написать. Раз есть командная строка, то всегда по ней можно фильтровать. Хоть Contains, хоть Like? хоть регекспы.
Второе, кроме имени приложения еще есть отборы по протоколам портам. А сделать проверку при создании это такая мелочь.
Мы же программисты. И ты говришь, о таких мелочах
Re[12]: netcore app.dll и firewall
Здравствуйте, ·, Вы писали:

·>Здравствуйте, Serginio1, Вы писали:


S>>·>Здравствуйте, Serginio1, Вы писали:S>>·>Кто? Зачем? Ты о чём? Предлагаешь в фаерволл регекспы на командную строку ставить? Я написал почему это не будет работать.

S>>>>Там даже без регекспов а просто путь с командной строкой
S>>·>Я не понял что ты предлагаешь, но это не может работать в принципе.
S>>Сейчас ты можешь настроить только на путь. Но хотелось бы добавить путь с параметрами, что бы фильровать еще и по параметрам.
S>> Сейчас этого нет, но возможность такая есть ибо процесс эту информацию хранит.
·>Т.е. Ты предлагаешь фильтровать по совпадению на строчку "dotnet.exe App.dll"?
·>А вот так? "dotnet.exe .\App.dll"
·>А вот так? "dotnet.exe App.dll app-args"
·>А вот так? "dotnet.exe --depsfile xyz App.dll"
·>А вот так? "dotnet.exe AnotherAppWhichRuns-theApp-Indirectly.dll"
·>А вот так? "dotnet.exe SomethingCompletelyDifferent.dll --some-args=App.dll --more"

·>Ещё раз повторюсь — такое в принципе работать не может.


Я с тебя хренею. Во первых ТП уже знает как запускает приложение.

Второе достаточно CommamdLine.Contains

·>Фаерволл вешается где-нибудь внутре CreateProcess и проверяет путь до executable. А ты ещё предлагаешь парсить аргументы, разбираться в их структуре, понимать что к чему и где там имя Dll-ки который executable может загружать (а может и не загружать!) на выполнение.


Ты программсит? Что там в Main передается?
https://learn.microsoft.com/en-us/windows/win32/procthread/creating-processes
if( !CreateProcess( NULL,   // No module name (use command line)
        argv[1],        // Command line
        NULL,           // Process handle not inheritable
        NULL,           // Thread handle not inheritable
        FALSE,          // Set handle inheritance to FALSE
        0,              // No creation flags
        NULL,           // Use parent's environment block
        NULL,           // Use parent's starting directory 
        &si,            // Pointer to STARTUPINFO structure
        &pi )           // Pointer to PROCESS_INFORMATION structure
    )


Ты споришь, ради того, что бы тебе чего то написать. Раз есть командная строка, то всегда по ней можно фильтровать. Хоть Contains, хоть Like? хоть регекспы.
Это мелочь, даже по тому, что бы разобрать путь и загрузить программу в память!
Второе, кроме имени приложения еще есть отборы по протоколам портам. А сделать проверку при создании это такая мелочь.
Мы же программисты. И ты говришь, о таких мелочах