2012-11-19 90 views
3

需要一個程序(用c編寫)來執行以下操作。gcc內存中編譯

  1. 採取用戶輸入
  2. 幾行產生在輸入
  3. 一個C程序築底編譯所生成的C程序,並創建一個.so文件和動態鏈接到主並執行它。

一個關鍵的要求是:生成的C程序不應該在文件系統上,因爲生成的C程序具有商業祕密。是的,這種機制遠非萬無一失,但總比沒有好。

在此先感謝。

+1

GCC是不是真的用於嵌入這樣做。相反,我建議你看看[clang](http://clang.llvm.org/)和[LLVM](http://llvm.org/)。 –

+0

感謝Joachim的鏈接,他們看起來很有趣。仍然希望有一個(可能是醜陋的)解決方法,因爲大多數基礎設施都是使用GCC完成的。 – pktCoder

+1

不要。無論你的商業祕密是**祕密**(如密碼學),或者你不應該隱瞞它。混淆讓所有錯誤的人感到安全,而實際上他們只是不過。 – DevSolar

回答

0

您可以使用內存文件系統爲您的。所以一個目的地,這樣sudo mount -osize=10M tmpfs /home/chill/tmp/supersikrit -t tmpfs

+1

非常感謝這個想法。但是,在用戶運行可執行文件並在中間殺死它的情況下(ctrl-C等),殘留文件(一些生成的源代碼)將保留在內存文件系統中。 – pktCoder