将reg文件传递给regedit而不将其写入磁盘(以避免将解密数据写入磁盘)

时间:2017-02-28 16:10:21

标签: c# encryption registry

这是从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文件。我不介意他们稍后查看,但他们不会识别加密时哪些条目发生了变化。

1 个答案:

答案 0 :(得分:0)

没有

据我所知,RegEdit无法从控制台读取输入(这通常是直接将信息传递给现有应用程序的唯一方法) - 所以不,你不能在不保存到磁盘的情况下从内存中将信息传递给RegEdit。 / p>

请注意,对于RegEdit来说,这是一个奇怪的要求,因为它所做的所有更改对于当前用户来说都是可见的 - 因此您不会在没有将文件写入磁盘的情况下隐藏任何内容。

我能想到的唯一选择是自己阅读文件并通过.Net API进行注册表更改(参见modifying the registry key value)。