1-1) Hex Viewer 만들기
Last updated
Last updated
thon 을 이용한 소스 코드 작성 및 실행 방법
환경 구성 : 0-2) Python 을 이용한 개발 환경 구성
Python 소스를실행파일로 만들기 : 0-3) Python 소스로 실행파일 만들기
파일을 읽고 hex 값, cp949 인코딩값 그리고 해시 값계산을 하는 프로그램을 만들어 봅시다.
요구사항
파일을 읽고 hex 값을 표시
hex 값을 cp949로 표시
해당 파일을 md5 해시값 획득
ChatGPT 에 해당 내용을 질문하고, 소스를 확인해 봅시다. (꼭 아래와 동일한 소스가 아니더라도 상관 없습니다. 요구사항이 확실하면 잘 만들어 줄 것입니다.)
아래와 같이 sublime txt 또는 메모장과 같은 텍스트 에디터로 위 소스를 복사하여 test.py로 저장해 봅시다.
추가로 테스트할 파일을 생성하고, 우선 메모장으로 테스트 하여봅시다. 다만 메모장에서 저장 시 인코딩 ANSI (cp949 변환용)로 저장 합시다.
아래와 같이 해당 소스를 실행하면 해당 파일의 hex 값, cp949 값 그리고 md5 해시값을 확인할 수 있습니다. > python test.py
*만약 No module ~ 에러가 발생한다면 명령어로 pip install hashlib
조금 더 발전을 시켜서 원하는 파일을 열고, 해당 파일의 hex값, 아스키코드값, 그리고 MD5 값을 GUI로 보여주는 프로그램을 만들어 봅시다. 최대한 구체적으로 출력 형태까지 자세히 질문 할수록 좋은 답변을 받을 수 있습니다. "GUI" 라는 단어를 넣어서 쓸만하게 바꿔보도록 합시다.
해당 소스를 test-gui.py로 저장하고 실행해보니 아래와 같이 실행후 파일열기 후 "테스트. txt" 를 선택하였더니 에러가 발생하였습니다. > python test-gui.py
에러가 발생한 부분을 복사한 뒤 chatGPT한테 물어봤습니다.
위에서 복사한 내역을 chatGPT에 물어보면 해당부분을 수정한 파이썬코드를 알려줍니다.
위 소스를 복사하여 다시 소스코드를 실행하면 아스키코드, cp949를 해석해주는 hex viewer를 만들 수 있습니다. > python test-gui.py
음 그런데 ChatGPT가 MD5 해시 계산하는 걸 까먹고 제외하여서 다시 그 부분을 추가한 소스를 만들어 달라고 해봅시다.
소스에 대한 상세한 설명은 ChatGPT에게 물어보면 라인별로 설명을 해줍니다. 물론 설명을 본다고 해서 바로 이해는 어려울 수 있습니다. 가능하면 파이썬 공부를 따로 하는 것을 추천하나, 친해지기에서는 파이썬 사용하는 방법 보다는
공부한 내용을 정리하고 원리를 이해한 상태에서 ChatGPT를 이용하면 파이썬 소스를 작성하고, 만들 수 있다는 것에 초점을 두고 있습니다. (chatGPT가 이상하게 만들면 어느 부분이 이상해! 내 생각엔 이렇게 나와야 해! 할 경우 보다 정확하게 수정해 줍니다.)
이러한 과정을 익히고 나면 추후에 개인적으로 분석을 할 때, 기본 원리를 파악하고 있으면 얼마든지 분석용 도구를 만들 수 있게 될 것입니다. 본인이 파이썬 소스 해석에 어려움을 느끼면 해당 부분을 이해하기 위해 하나하나 공부하다보면 어느새 충분히 잘 활용하고 있는 자신을 발견할 수 있을 것입니다.