103 – A suspicious developer

Description
The auditing department of a software development company received an internal whistleblower report stating that a developer from the development team had outsourced a project to another company for execution. The auditing department initiated an investigation to determine whether there had been a violation of internal labor and security regulations. In response, that developer claimed to have personally developed the project and submitted the program source files and the resulting executable files to the audit team as evidence. The auditing department obtained the previous deliverables (executable files) that the developer had submitted by retrieving them from the company’s project management server. Verify the accuracy of the internal whistleblower’s claims.

#PE #build

1) Write the items indicating the build tool version information stored in the given two PE format executable files in the format of “[ProductID].[BuildID].[Count]”. (80 points)

  • Write 9 items per file and do so for both two files. (40 points each)

PE 파일을 이용한건데 어떻게 찾아야 할까 서치를 여러번 해보았다.

Image

여긴 Rich header라는 곳이다. Rich header는 DOS 프로그램 뒤에 위치하며 PE 빌드 환경 등을 담은 메타데이터 header이다. 공식 언급이 없어서인지 CFF explorer에 분석이 안되어 있어서 수기로 해줘야 한다.

Image

이 Rich identifier 뒤 checksum 4바이트로 xor 연산을 해서 복호화(?) 해야 한다.

Image

PE-bear라고 Rich hdr까지 분석해주는 툴이 있었다 (포렌식은 템빨이구나!)

Image

DOS header -> Rich Hdr을 가면 위와 같이 productId, buildId, count가 적혀 있다.

2) Write the build folder paths for the given two executable files. (20 points)

  • Write the build folder paths for both files. (10 points each)

원래 exe 파일이라 ida로 열었었는데 pdb 없다는 메세지박스가 떴었다. pdb는 심볼 파일인데 링크를 위해 디버깅 및 프로젝트 상태 정보가 저장되어 있다.

Learn more about PDB files

Image
Image

Debug를 가면 AddressOfRawData를 클릭하면 데이터들이 나오는데 PDB 위치가 build된 exe 파일 위치와 동일하다.