파일을 바이나리 모드로 열고(fopen) 버퍼에 읽어들인 뒤(fread)각 바이트를 두 자리 16진수로 출력하는 거죠(printf, "%02x")
그 외 출력을 어떻게 예쁘고 보기좋게 만드는가 하는 인터페이스적인 문제도 있는데 뭐 별 거 없습니다. 취향껏 할 수도 있고, 진짜 xxd랑 똑같이 맞출 수도 있고.
종합적으로 볼 때 C언어로 프로그래밍 처음 입문하는 사람 기준으로 (투입하는 시간과 노력 여하에 따라 다르겠지만) 대충 2~4주 정도 공부하고 나면 만들 수 있겠네요.
사실 따져보면
파일의 내용이 이진수로 안 보이는 게 더 신기한 겁니다.
어떤 파일이든, 그저 비트열에서 사람에게 의미가 있는 어떤 형태의 정보가 되도록 해석하는 과정은 그렇게 간단하지 않습니다.
텍스트 파일(txt 등)조차도 그렇습니다. 이미지(jpg, png 등), 사운드(wav, mp3, ogg) 등등은 더더욱 그렇습니다.
답변 감사합니다
그런데 exe 파일 아무거나
이진수로 보이게 하는
프로그램은 어떻게 만들어요 ?
원리가 뭔지 궁금하네요
간소화된 xxd라고 보시면 되겠습니다.
파일을 바이나리 모드로 열고(fopen) 버퍼에 읽어들인 뒤(fread)각 바이트를 두 자리 16진수로 출력하는 거죠(printf, "%02x")
그 외 출력을 어떻게 예쁘고 보기좋게 만드는가 하는 인터페이스적인 문제도 있는데 뭐 별 거 없습니다. 취향껏 할 수도 있고, 진짜 xxd랑 똑같이 맞출 수도 있고.
종합적으로 볼 때 C언어로 프로그래밍 처음 입문하는 사람 기준으로 (투입하는 시간과 노력 여하에 따라 다르겠지만) 대충 2~4주 정도 공부하고 나면 만들 수 있겠네요.
그렇군요 답변 감사합니다
실행영역 메모리에 있는 바이너리를
텍스트영역 메모리로 복사해서 읽어들이면 되겠군요
답변 감사합니다 도움이 되었습니다
댓글 달기