두 바이너리 파일을 어떻게 비교합니까?두 바이너리 파일 비교
두 버전의 프로그램 버전 1과 버전 2가 있습니다. 두 버전간에 약간의 변경이 있었지만, 불행히도 정기적으로 백업하지는 않았습니다. 버전 2에 대한 소스, 나는 버전 1의 바이너리 밖에 가지고 있지 않습니다. 정확히 두 버전 사이에서 무엇이 바뀌 었는지 알아야합니다. 두 버전의 objdump를 만든 다음 diff를 사용하여 변경 사항을 찾으려고 시도했지만 오프셋이 다르기 때문에 diff가 작동하지 않습니다. diff에서는 거의 모든 행이 변경된 것으로 간주합니다.
예를 들어 버전 1에서는 bgez v0,4074d0<daemonize+0xd4>
이고 버전 2에서는 bgez v0,4073d4<daemonize+0xd4>
일 수 있습니다. 이러한 파일은 덤프 파일에서 직접 복사됩니다. 두 줄이 똑같은 일을 할 수 있지만 diff에서는 구분할 수 없습니다. 파일이 너무 커서 수동으로 모든 행을 검사 할 수 없습니다. 오프셋의 차이를 무시하면서 기능 변경을 어떻게 감지합니까?
실제 NP 완성 문제와 비슷합니다. ;-) –
DFA로 해결할 수 있으므로 NP 완료이 아닙니다. – Benubird
NP와 DFA는 무엇을 의미합니까? –