간단히 말하면 API 함수의 "특징"을 검색해서 무슨 함수인지 검색하는 알고리즘을 만들고 있습니다.
예를 들면 이런 식입니다.
함수 A가 이런 특징을 가지고 있고,
#BR 0x76460a0c
#MD 0x1c
#MD 0x18
#MD 0x14
함수 B가 이런 특징을 가지고 있습니다.
#BR 0x76460b0d
#MD 0x1c
#MD 0x18
#MD 0x14
무슨 함수인지 모르는 함수가 이런 특징을 가지고 있는데
#MD 0x14
#MD 0x18
#MD 0x1c
#BR 0x76460b0d
실제로 함수는 수백 개가 있고, 그 중에서 검색을 해서 이 특징들을 가지고 있는 함수를 찾으면 A가 됩니다.
지금은 모르는 함수에서 특징을 순서대로 검색한 후 검색 결과들에서 다음 특징을 재검색하고 그 검색 결과에서 다음 특징을 재검색하고 ... 해서 후보 함수가 1개 또는 0개 남을 때까지 반복하는 방법으로 검색을 하고 있습니다.
그런데 문제가 발생한 게,
함수 A가 이런 특징을 가지고 있고,
#BR 0x76460a0c
#MD 0x20
#MD 0x1c
#MD 0x18
#MD 0x14
함수 B가 이런 특징을 가지고 있고,
#BR 0x76460a0c
#MD 0x1c
#MD 0x18
#MD 0x14
검색 대상 함수가 이런 특징을 가지고 있을 때,
#BR 0x76460a0c
#MD 0x1c
#MD 0x18
#MD 0x14
검색 결과가 A, B 둘 다가 되어버립니다.
이 문제를 어떻게 해결하면 좋을까요?