2013-10-26 61 views
1

我所試圖做的看似簡單比較複雜的代碼靜態分析工作C代碼注入

  1. 找到所有的分配代碼,並插入一個新的代碼片段基於分配碼用於更新值某些內存
  2. 找到所有的基本控制塊,分配一個唯一的ID給每個塊,並插入基於ID的新代碼片段更新某些內存

目前我源代碼,所以我不不需要處理二進制:)

但我是新近在這個領域,我想知道如果我需要類似Perl腳本的東西來手動分析..?任何機構可以給我一些關於如何完成這項工作的指示..?

非常感謝!

+1

「我想要做的事似乎很簡單」 - 呃,不。你需要一個完整的C語言分析器。而且你可以擴展一個編譯器來注入代碼。 – Mat

+0

嗨,馬特,謝謝你,抱歉我的不成熟的說法......但我想我可以只是插入某些代碼片段的源代碼來獲得一個「新」的源代碼,並將其放入常規編譯器......它看起來更可行..? – computereasy

+1

您仍然需要一個完整的C語言分析器/分析器,並在這種情況下找出一種方法來爲您的需求做適當的「文本」更改。在一般情況下,實際上可能比在考慮模塊化/可擴展性的編譯器內部工作更困難(請參閱clang/llvm)。 – Mat

回答