我正在尝试statement在 IDA-Pro 恢复的汇编程序中迭代所有 C (可能非常粗粒度,这很好)。
假设我只考虑这些陈述:
State :: =
| if-else cond;
| loop;
| assignment;
| function call
| return
| {s1; s2; s3 ...}
经过一些快速搜索,我知道有一些(第三方)插件可以帮助识别一些C控制流结构,我在下面列出了其中的一些:
if-else 条件:不适用
所以我的问题是:
有没有可以恢复if/else语句的插件?它看起来比循环更容易,但我找不到一种完善的方法来恢复语句。
无论如何/api/scripts 是否可以在 IDA-Pro 中迭代 C 语句?还是我必须自己实现?
理想情况下它应该看起来像这样,因为这主要用于源代码分析......(对不起这个伪代码,我只是想澄清一下)
let aux s =
match s with
| If e1 b1 b2 -> analyze e1 b1 b2
| Loop e1 e2 e3 b1 -> analyze e1 e2 e3 b1
| Assign v1 v2 -> analyze v1 v2
| States sl -> List.iter analyze sl
| ... in
List.iter aux statement_list
...