这是从c#运行 .reg 文件的代码。是否可以加密 .reg文件,以便 C#可以解密,然后再从内存执行"
FROM docker:latest
RUN apk update
ENV LANG C.UTF-8
RUN { \
echo '#!/bin/sh'; \
echo 'set -e'; \
echo; \
echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \
} > /usr/local/bin/docker-java-home \
&& chmod +x /usr/local/bin/docker-java-home
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
ENV JAVA_VERSION 8u111
ENV JAVA_ALPINE_VERSION 8.111.14-r0
RUN set -x \
&& apk add --no-cache \
openjdk8="$JAVA_ALPINE_VERSION" \
&& [ "$JAVA_HOME" = "$(docker-java-home)" ]
在这种情况下,上述行如何变化?
编辑:
我的问题是,我可以解密文件并将其临时写入一个位置并将其传递给我的代码,例如test.reg。但是我可以使用FROM docker:latest
RUN apk update
ENV LANG C.UTF-8
RUN { \
echo '#!/bin/sh'; \
echo 'set -e'; \
echo; \
echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \
} > /usr/local/bin/docker-java-home \
&& chmod +x /usr/local/bin/docker-java-home
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
ENV JAVA_VERSION 8u111
ENV JAVA_ALPINE_VERSION 8.111.14-r0
RUN set -x \
&& apk add --no-cache \
openjdk8="$JAVA_ALPINE_VERSION" \
&& [ "$JAVA_HOME" = "$(docker-java-home)" ]
命令在内存中执行reg文件而不传递实际的文件位置吗?
原因是不允许任何人搞乱.reg文件。 exe执行一些任务并沿途运行.reg文件。我不介意他们稍后查看,但他们不会识别加密时哪些条目发生了变化。
答案 0 :(得分:0)
没有
据我所知,RegEdit无法从控制台读取输入(这通常是直接将信息传递给现有应用程序的唯一方法) - 所以不,你不能在不保存到磁盘的情况下从内存中将信息传递给RegEdit。 / p>
请注意,对于RegEdit来说,这是一个奇怪的要求,因为它所做的所有更改对于当前用户来说都是可见的 - 因此您不会在没有将文件写入磁盘的情况下隐藏任何内容。
我能想到的唯一选择是自己阅读文件并通过.Net API进行注册表更改(参见modifying the registry key value)。