我有一堆看似C代码的反编译脚本。
这些脚本被反编译(我无法确切地说明如何),所以它们不是由人类按原样编写的。
然而,它们显示了一些非常有趣的模式,这些模式使我认为反编译器在大多数脚本中复制了某些函数,因为它遵循执行路径。
例如,大多数脚本都具有以下功能:
void *fct_9887(int param_123, char param_864) {
fct_4698(param_75, param_83);
return CORE_FUNCTION(param_864, param_123);
}
但是对于每个脚本,函数名称和参数名称都不同。所以完全相同的功能将出现在另一个脚本中,如
void *fct_57(int param_93, char param_75) {
fct_1000(param_75, param_83);
return CORE_FUNCTION(param_75, param_83);
}
正如您在这里猜测的那样,fct_4698
和fct_1000
也是相同的,这使得这些功能重复代码。
有些函数实际上在所有脚本中保持相同的名称(此处为CORE_FUNCTION),因为它们是外部函数,因此在脚本之间共享
我正试图找到一种方法来重新考虑"这并尝试提取这些脚本中使用的常用函数。我知道它有时是不可能的,但对于某些功能它应该是可能的。
你会怎么做这样的事情?