문제

우리의 QA 팀은 Exes와 DLL이 실제로 빌드 사이에서 변경된 내용에 따라 테스트에 집중하려고합니다. 우리는 멋진 SVN Change 보고서를 가지고 있지만 소스와 변화된 바이너리 사이의 관계가 항상 분명하지는 않습니다. 우리가 비교하는 빌드는 항상 완전 정리 빌드이므로 파일 시스템 타임 스탬프를 사용할 수 없습니다. 나는 내장 된 타임 스탬프 및 기타 cruft를 무시할 Windows (및 Windows CE) PE Binaries를 비교할 수있는 도구를 찾고 있습니다. 도구에 대한 권장 사항 또는 신뢰할 수있는 '바이너리가 실제로 변경된 바이너리'를 생성하는 다른 방법이 있습니까? 감사.

설명 : 지금까지 답변 주셔서 감사합니다. 그러나 우리는 소스가 변경되지 않더라도 빌드 할 때마다 모든 파일이 다르게 나타나기 때문에 체크섬을 비교하거나 비교하여 간단한 바이트를 비교하거나 비교하여 보고서를 생성 할 수는 없습니다. 컴파일러가 삽입하는 타임 스탬프로 인해. 문제는 잘못된 긍정을 무시하는 방법입니다. 분해 및 비교 아이디어는 우리가 필요로하는 것과 가장 가깝습니다.

대답했다! Bindiff는 내가 찾고 있던 것입니다. 많은 감사합니다.

도움이 되었습니까?

해결책

당신은 보았습니까? Bindiff?

다른 팁

나는 전에이 문제를 해결했다. 내 해결책은 모든 타임 스탬프를 .exe/.dll로 설정하는 도구를 알려진 값으로 작성하는 것이 었습니다. 건축 후 단계로 실행할 것입니다. 그러면 이진 차이가 잘 작동합니다.

이진을 분해 한 다음 어셈블리에서 차이를 수행 할 수 있습니다 ...

QA 팀이 잘못된 접근 방식을 취하는 것처럼 들립니다 ... 코드의 모습은 중요하지 않습니다. 그것이해야 할 일을하는 것입니다.

편집 : 오! 다시 읽은 후, 나는 당신의 질문을 잘못 해석한다는 것을 깨달았습니다. 나는 그들이 변경된 방법을 테스트하고 싶다고 생각했습니다 ...

이 경우 MD5 해시를 얻고 비교해보십시오. 가장 작은 변화로 인해 완전히 다른 해시가 생성됩니다.

어떤 종류의 바이너리 (DLLS? PE/WINCE 실행 파일 만? 기타?)이 바이너리에 버전 정보를 포함시킬 수 있습니까? 그런 다음 새 빌드가 만들어지면 바이너리에는 버전 문자열이 업데이트되었습니다. 바이너리 파일을 도로로 변환하는 대신 버전 문자열을 사용하여 변경 사항을 확인할 수 있습니다.

보다 ndepend.

회사에서 설치 검증을위한 "홈 성장"도구를 작업 할 때 우리는 비할 바 없는 비교를위한 백엔드로.

파일/폴더 비교 (바이너리)와 스크립팅 기능이 뛰어나며 XML 보고서를 출력 할 수 있습니다.

프로젝트 종속성 그래프 생성기 그리고 C ++-프로젝트의 종속성 그래퍼 둘 다 사용합니다 GraphViz 종속성을 시각화합니다. 소스 파일이나 다른 잎이 변경된 종속성 그래프에서 지점을 특별히 강조 표시하여 귀하의 요구의 기초로 그 중 하나를 사용할 수 있다고 생각합니다.

MD5 해시 또는 체크섬 (위에서 제안한대로), 흰색 스페이스를 무시하고 주석 변경을 필터링하는 간단한 차이 또는 버전 제어 시스템의 변경 목록 정보는 어떤 파일이 변경되었는지 신호를 보낼 수 있습니다.

gnu binutils 구체적으로 문자열

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top