그럴듯한 답과 확인된 답 사이
분석 결과에 함수 이름이 붙어 있어도 그게 개발자가 지은 원래 이름은 아니다. 디컴파일러가 만든 의사 코드는 기계어를 읽기 쉽게 옮긴 표현일 뿐이다. 원본의 주석, 설계 의도, 변수 이름까지 돌려준다는 보장은 없다.
REA 의 Evidence 기록은 대상의 정체, 출처 위치, 관찰, 추론, 미해결 사항을 한데 묶는다. 읽을 때는 「어느 파일의 어느 버전인가?」부터 보고, 그다음 결론을 받치는 위치를 확인하면 된다. 파일 해시는 조사한 바이트를 가려내는 표식이지, 해석이 맞다고 찍어 주는 도장이 아니다.
관찰: 특정 위치에 파일 쓰기 호출이 있다.
해석: 저장 기능의 일부일 가능성이 있다.
검증: 같은 입력으로 실행했을 때 예상한 파일이 바뀐다.
해석: 저장 기능의 일부일 가능성이 있다.
검증: 같은 입력으로 실행했을 때 예상한 파일이 바뀐다.
이 세 층은 설명하려고 나눈 구분이다. 조사 보고서도 이렇게 갈라 쓰면 된다. 호출이 안 보였다고 「그 기능은 없다」고 단정하면 안 된다. 분석하지 못한 파일이나 실행 중에 만들어지는 연결이 남아 있을 수 있다.
큰 앱은 결과 자체가 크다. CLI 문서는 전체 결과를 파일로 저장해 두고 요약이나 필요한 모듈만 읽는 방식을 권한다. 무엇을 뺐는지 적어 두면 속도를 얻으면서 조사 범위도 잃지 않는다.
자료: CLI / Evidence · 분석 범위와 미확인 사실