/proc/cpuinfo
か?しかし、それがデコーダーの塊に役立つかどうかは
/proc/cpuinfo
か?しかし、それがデコーダーの塊に役立つかどうかは
回答:
私はこのフォーラムのスレッドからこれをコピーしています。
Domは、すべてのソースコード、Videocoreデバッガー、多くのクローズドVC固有のツールにアクセスできます。また、シリアル番号を変更できるように情報を公開すると、コーデックライセンスのメカニズムが壊れてしまうため、起こりません。
さらに、スレッドに投稿されたとおり。シリアルを変更する唯一の理由は、他の誰かのMP4ライセンスをコピーして使用することです。それがライセンスに関するセキュリティです。独自のシリアルはMP4ライセンスにリンクされているため、誰かがライセンスキーを取得しても、それを使って何もできません(Raspberry Piのシリアル番号を変更できない限り)。
更新:実際の質問に答えます。Domには、実際の低レベルファームウェアのソースがあるためだと思います。私は彼が本当にシリアルを読むソースコードを実際に変更し、それを強制的に異なる値を返すことを想像しているでしょう。正直に言って、実際には(CPU上で)変更されているのではなく、ファームウェアコードの一部を変更して別のシリアルを返すようです。また、質問者に謝罪します。私たちは皆、質問に答える代わりに、「なぜ?それはいいことではありません。あなたの盗み」をあなたに与えました。私の悪い。
ユーザースペースプログラムに関する限り、それらをだまして、ほぼすべてのファイルの内容を偽造することは非常に簡単です。たとえば、Cプログラムが/proc/cpuinfo
ファイルを使用してシリアル番号を確認するとします。プログラムはコピー保護されており、シリアルに関連付けられており、ソースコードがありません。しかし、私はまだ実行できますstrace program 2>&1 | grep cpuinfo
。
open("/proc/cpuinfo", O_RDONLY) = 3
この時点cpuinfo.so
で、次の関数を使用して小さなライブラリを作成できます。
int open(const char *file, int flags) {
static int (*real_open)(const char *file, int flags);
if(!real_open) real_open = dlsym(RTLD_NEXT, "open");
if(!strcmp(file, "/proc/cpuinfo")) file = "/tmp/cpuinfo";
return real_open(file, flags);
}
ご覧のとおり、ライブラリのユーザーが開こうとしたかどうかを確認していますが、/proc/cpuinfo
その場合は/tmp/cpuinfo
代わりに開きます。
次に、元のコピー保護されたプログラムをとして実行し、残りのファイルを正しく処理しながら、それがであるとLD_PRELOAD=/path/to/cpuinfo.so program
思って私の偽のファイルを喜んで読み取り/proc/cpuinfo
ます。
コピー保護されたソフトウェアにカーネルオブジェクトが含まれている場合、ハードウェアに直接アクセスできるため、だましにくいということに注意してください。ただし、このようなソフトウェアは、ビルドされたカーネルでのみ機能するため、配布するのは非常に実用的ではありません。