计算已编译C程序的代码度量

时间:2022-03-25 22:53:55

To evaluate different C Obfuscators I'm searching for a way to calculate established Code Metrics (for example the McCabes Cyclomatic Complexity) on a compiled C Program. Thus there is no source code available.

为了评估不同的C混淆器,我正在寻找一种在已编译的C程序上计算已建立的代码度量(例如McCabes Cyclomatic Complexity)的方法。因此,没有可用的源代码。

  • Is ist possible to calculate such metrics on a compiled C Program or will the compiler delete the informations you need?

    是否可以在已编译的C程序上计算此类指标,或者编译器是否会删除您需要的信息?

  • Is there in the best case a tool one can use to calculate such metrics on a compiled C Program?

    在最好的情况下,是否可以使用工具在已编译的C程序上计算此类指标?

  • Will Decompiling the machine code change the values of code metrics? Thus does it make sense to calculate the code metrics on a compiled C Code to evaluate the Program?

    将反编译机器代码会更改代码度量标准的值吗?因此,计算编译的C代码上的代码度量以评估程序是否有意义?

By the way: For those who are searching for tools to calculate metrics for C Source Code I can recommend the eclipse plugins "Eclipse Metrics" and "Metriculator" ;-)

顺便说一句:对于那些正在寻找工具来计算C源代码的度量的人我可以推荐eclipse插件“Eclipse Metrics”和“Metriculator”;-)

1 个解决方案

#1


2  

  1. no not possible. Most HLL information is lost, and reconstructed C (decompiled) might have different metrics.

    不可能。大多数HLL信息丢失,重建的C(反编译)可能具有不同的度量。

  2. no, except by decompiling, see next.

    不,除非通过反编译,请参阅下一步。

  3. yes. Usually the C uses simpler constructs (e.g. wrt loops) then the original and count of codelines are inflated. The metrics thus will be different. Best read some C decompiling faqs.

    是。通常C使用更简单的构造(例如wrt循环),然后代码行的原始和计数被夸大。因此,指标将是不同的。最好读一些C反编译常见问题。

I can't really make a sane business case for this, so I doubt that there are specialized vendors that even try.

我真的无法为此做出明智的商业案例,所以我怀疑是否有专门的供应商甚至尝试过。

#1


2  

  1. no not possible. Most HLL information is lost, and reconstructed C (decompiled) might have different metrics.

    不可能。大多数HLL信息丢失,重建的C(反编译)可能具有不同的度量。

  2. no, except by decompiling, see next.

    不,除非通过反编译,请参阅下一步。

  3. yes. Usually the C uses simpler constructs (e.g. wrt loops) then the original and count of codelines are inflated. The metrics thus will be different. Best read some C decompiling faqs.

    是。通常C使用更简单的构造(例如wrt循环),然后代码行的原始和计数被夸大。因此,指标将是不同的。最好读一些C反编译常见问题。

I can't really make a sane business case for this, so I doubt that there are specialized vendors that even try.

我真的无法为此做出明智的商业案例,所以我怀疑是否有专门的供应商甚至尝试过。