Приветствие землян,
Вот мой вопрос:
Как мне создать программу, которая устанавливает переменную в текущий сеанс cmd.exe, например
c:\> set myvar
Environment variable myvar not defined
c:\>myexe.exe
c:>set myvar
myvar=myvalue
Единственная похожая тема, которую я нашел, это -
Как изменить переменные среды оболочки Windows (cmd.exe) из C ++?
Но я не получил ни одного слова из этого:
Есть способ ... Просто введите свой
код в родительский процесс и вызов
SetEnvironmentVariableA внутри cmd's
память процесса. После инъекции просто
освободить выделенную память.
Хотя C / C ++ не является моим «родным» языком, я чувствовал себя совершенно потерянным, когда я искал в Google «c ++ inject code» и т. Д. ... Есть ли статья, где я могу получить больше информации об этом .
Кстати, сейчас я использую один немного глупый обходной путь. В качестве установки переменной
HKEY_CURRENT_USER \ Environment
и
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Диспетчер сеансов \ Среда
сравнительно легко. Я просто записываю переменную, похожую на реестр:
load.temp.vars=set myvar1=myval1&set myvar2=myval2& ....
, а затем просто вызовите% load.temp.vars%, и он будет выполнен как команда:
c:/>%load.temp.vars%
c:/>set myvar1
myvar1=myval1
Работает нормально, но для меня этого недостаточно:)
Живи долго и процветай,
\\ // _