タグ付けされた質問 「compiler」

4
Cコンパイラをゼロからコンパイルし、Unix / Linuxをゼロからコンパイルする方法
アメリカ/イギリス以外の大規模なサービス組織で働いているとしましょう。UNIXサーバーとLinuxサーバーを幅広く使用しています。 この記事を読むと、Cコンパイラにバックドアを簡単に挿入でき、そのコンパイラでコンパイルされたコードにもバックドアが含まれることに言及しています。すべての暗号化方法、ハードウェア、およびソフトウェアにバックドア/弱点を置くというNSA / GCHQの命令に関する最近のリークを考えると、コンパイラは障害の重大なポイントになりました。すべての標準UNIX / Linixディストリビューションが危険にさらされる可能性があります。システム、データ、および顧客データを不正な政府によって侵害することはできません。 この情報を基に、信頼できるコンパイラをゼロから構築したいと考えています。その後、そのコンパイラを使用してソースコードからオペレーティングシステムとアプリケーションを構築できるように、安全な基盤を構築します。 質問 ソースコードからコンパイラをコンパイルし(一見鶏卵のシナリオ)、信頼できるUnix / Linuxディストリビューションをゼロからコンパイルするための正しい(そして安全な方法)は何ですか? 私や他の人がセキュリティ欠陥のソースコードを読んで理解する能力を持っていると仮定できるので、ソースコードはコンパイルする前に最初に吟味されます。私が本当に望んでいるのは、このコンパイラをゼロから安全に作成し、カーネル、OSのその他の部分、およびアプリケーションをコンパイルするために使用できる作業ガイドです。 セキュリティスタックは、そのスタックで実行されているオペレーティングシステムまたはアプリケーションに自信がある場合、ベースレベルで開始する必要があります。はい、ハードウェアのバックドアがあり、ビルド中にコンパイラにマイクロコードを挿入する可能性があることを理解しています。現時点では、米国で設計されていないチップを使用することを除いて、私たちができることはあまりありません。このレイヤーを最初にソートして、バックドアが挿入される前に古いコンピューターで構築できると仮定します。 ブルース・シュナイアーが言うように:「エンジニアに対して、私はこう言います。私たちはインターネットを構築し、私たちの何人かはそれを破壊するのを助けました。今、自由を愛する私たちはそれを直さなければなりません。」 追加リンク: http://nytimes.com/2013/09/06/us/nsa-foils-much-internet-encryption.html?pagewanted=all&_r=0 http://theguardian.com/commentisfree/2013/sep/05/government-betrayed-internet-nsa-spying

8
elfバイナリからコンパイラ情報を取得できますか?
Linuxでバイナリがどのように構築されたかを知る機会はありますか?(または他のUnix) コンパイラ、バージョン、時間、フラグなど... 私は見てreadelf、多くを見つけることができませんでしたが、バイナリコード/セクションなどを分析する他の方法があるかもしれません... 抽出方法を知っていることはありますか?

2
このCプログラムを実行できないのはなぜですか?
最初の「プロセス」プログラムを実行しようとしていますが、次のエラーが表示されます。 ./fork.c: line 4: syntax error near unexpected token `(' ./fork.c: line 4: `int main()' 私はコードが正しいと確信しています: #include <sys/types.h> #include <stdio.h> int main() { pid_t pid; printf("Hello fork()\n"); switch(pid=fork()) { case -1: printf("Error by fork().....\n"); exit(0); case 0: printf("I'm the child process \n"); break; default: printf("I'm the dad \n"); break; } …
12 c  compiler 

3
コンパイルを続行するにはどうすればよいですか?
makeソースツリー全体を再コンパイルしなくても、いつでもプロセスを中断できることはわかっています。私が知っているようにmake、ターゲットがまだコンパイルされていない場合、または最後のコンパイル後にソースコードが変更されている場合にのみ、ターゲットをコンパイルします。 しかし、私が中断した場合make、1つ以上の(並行性レベルに応じて)ハーフレディバイナリが確実に存在します。次に実行するときに、それらはmakeどうなりますか?または、部分的にコンパイルされたバイナリを回避するためにCtrl+ を押すと、現在のターゲットが終了しCますか?

2
静的Cコンパイラを入手するにはどうすればよいですか?
私はchroot環境で遊んでいますが、あまり多くのライブラリを移動する必要なく、各環境でいくつかの基本的なビルドツールを簡単にセットアップできるように、移植可能なCコンパイラが欲しいです。 GCCは私がやりたいことに対してかなり膨らんでいるように見えますが、静的なgccを構築するのがかなり簡単であれば、数十メガバイトを気にしないでしょう。 私はまた、Tiny C Compilerを見ています。これは小さいですが、それでも印象的な機能セットがあるように見えます。ただし、ソースディレクトリで./configure --helpを実行しても、tccを静的にビルドするためのオプションは表示されず、それ以外の場合にどのように実行されるかわかりません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.