2
我具有的值的同時執行特定代碼的程序計數器取序列。使用這個,我想對產生這個可執行文件的原始代碼做一些靜態分析(要清楚:原始代碼不可用) - 特別是,有多少個循環,以及它們是如何嵌套的。舉個例子,利用在程序計數器(指令指針)圖案檢測環路值
A: for()
B: if()
C: ...
D: else
E: ...
F: for() {
G: ...
H: ...
I: }
在這種情況下,程序計數器順序可能是:ABCDF {GHIGHIGHI} ABDEF {GHIGHI} ABDEF {GHIGHIGHIGHI}
從上面的順序,我怎麼能得到一個想法有兩個循環,一個嵌套在另一個內?只是指出使用適當的解析技術也會有所幫助。
如在原始代碼中沒有goto和沒有編譯器優化的循環展開某些簡化假設可。
你爲什麼不只是分析的原代碼,並檢測出含有(使用標準的控制流分析算法)的循環? PC值提供了什麼(除了驗證特定點實際上是代碼)? [這可能是有用的混淆代碼,故意不執行跳轉到廢話的位置] –
...我的反應來自於你聲稱擁有源代碼,這是一個非常高質量的信息源,然而你似乎正在尋找其他相同的信息。 –
@IraBaxter我編輯了這個問題,以澄清原始源代碼不可用。對困惑感到抱歉。 – sundar