在反编译脚本中查找常用函数

时间:2017-03-12 21:24:04

标签: refactoring reverse-engineering

我有一堆看似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_4698fct_1000也是相同的,这使得这些功能重复代码。

有些函数实际上在所有脚本中保持相同的名称(此处为CORE_FUNCTION),因为它们是外部函数,因此在脚本之间共享

我正试图找到一种方法来重新考虑"这并尝试提取这些脚本中使用的常用函数。我知道它有时是不可能的,但对于某些功能它应该是可能的。

你会怎么做这样的事情?

0 个答案:

没有答案