-1

実際には、ファイルを開いて暗号化キーまたはパスワードを設定し、他のユーザー(知っている人以外)が使用できないようにする方法があります。

vim -x test.c(ファイル名はtest.cと言います)

暗号化キーを要求されたら、コードを記述できます。

しかし、gcc(Linuxの場合)またはcc(solarisの場合)でコンパイルすると、次のようなエラーのリストが表示されます。

 encrypted.c", line 1: invalid source character: <0x17>
"encrypted.c", line 1: invalid source character: <0xffffff96>
"encrypted.c", line 1: invalid source character: <0xffffffd8>
"encrypted.c", line 1: invalid source character: <0xffffffa9>
"encrypted.c", line 1: invalid source character: <0xffffffcc>

この暗号化ファイルをコンパイルする方法はありますか、またはコンパイル中に何か間違ったことをしています(そうすることは無効のようですか)

以下はtest.cのコードです

#include <stdio.h>

#define CUBE(x) ((x)*(x)*(x))

int main()
{
int x = 5;
int val;
val = CUBE(++x);
printf("val is: %d",val);
return 0;
}
4

2 に答える 2

2

ファイルを復号化するものにパイプしてから、出力をコンパイラにパイプします。ファイルの暗号化には多くのオプションがあるため、自分で行う必要があります。コンパイラがそれを行うことは期待できません。

于 2013-01-02T13:00:21.247 に答える
1

gcc の実行ごとに正確に 1 つの .c ファイルをコンパイルする Makefile を作成する必要があります。次に、gcc が stdin からソース コードを読み取れるようにする必要があります。次に、復号化されたソースコードを標準出力に出力する復号化ツールが必要になるため、gcc にパイプできます。

このソリューションを拡張するには、ラッパー スクリプト/プログラムを作成してコンパイラ コマンド ラインを解釈し、適切に変更された引数を使用して実際のコンパイラを呼び出し、暗号化されていないソース コードをコンパイラにパイプします (1 つのコマンド ラインに多数のソース ファイルがある場合は、複数回実行する可能性があります)。 . このようにして、既存の Makefile を使用できます。

ただし、これを機能させるための最初のステップは、標準出力に出力できる復号化ツールが必要であるため、それをコンパイラーにパイプできることです。vimおそらく正しいコマンドラインでこれを行うことができます...

于 2013-01-02T13:10:48.260 に答える