簡體   English   中英

哪些編譯器開關使逆向工程師的生活更加艱苦/輕松?

[英]What compiler switches make the life of a reverse engineer harder/easier?

讓我們考慮VC ++ 2013編譯器。 哪些編譯器開關使逆向工程師的生活更加艱苦/輕松? 編譯器是否添加任何元信息來幫助確定可執行文件的來源?

不特定於Visual-C ++:任何增加代碼轉換可能性的開關都會減少逆向工程性。 最特別的是,這些都是優化開關(但請注意,在g ++的情況下, -O系列開關實際上是許多其他開關的集合)。

例如,如果您有

int foo() {
    return 3;
}

int main () {
    std::cout << (foo()*foo()) << '\n';
}

然后編譯器將此轉換為(此處:內聯)

int main () {
    std::cout << (3*3) << '\n';
}

然后放入(此處:不斷折疊)

int main () {
    std::cout << 9 << '\n';
}

很明顯,將不可能提取原始的foo函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM