ASCII2 Basic L15 문제는 다음과 같다.DIE로 열어봤을때 패킹은 되어있지 않았다.Serial에 아무 값이나 입력하니 숫자를 넣으라고 나온다.숫자를 입력하면 위와 같이 나온다. 이제 디버거에 올려서 디버깅을 시작해보자.Try Again이라는 문자열로 탐색을 해보았다.아마 44496C라는 함수가 메시지 박스를 만드는 함수 인것 같다.그리고 위에 성공 메시지도 보이는데 이 둘의 분기점은 cmp eax. [45B844]문 이후 jne .. 이다.해당 부분이 BP를 걸고 레지스터 및 덤프창을 확인해보았다.eax값을 보면 4d2, 즉 사용자가 입력한 1234를 숫자로 변환해서 가져왔다.45b844위치에는 0x6160이 있다.6160은 10진수로 24928이므로 시리얼은 24928이다. 하지만 여기서 바로 끝내기 보다는 저 6160이.. 2026. 9. 18. Basic L14 문제는 다음과 같다.DIE로 열어보니 UPX패킹이 된걸 확인 할 수 있다.우선 패킹을 해제 한 후 덤프를 떠서 저장시켰다.이제 언패킹된 덤프를 디버거에 올리고 실행해봤다.우선 프로그램은 아래와 같이 입력창이 두 개 존재하고 체크 버튼으로 키를 확인한다.어셈블리 코드를 봤을때 위 프로그램은 윈도우API를 사용하므로 텍스트를 가져오기 위해서 GetDlgItemText라는 함수를 호출 할 것이다.모듈간 호출을 검색해보니 정확히 GetDlgItemTextA함수가 2개 보인다.위와 같이 나란히 GetDlgItemTextA함수가 보인다. BP를 걸고 사용자의 입력을 어떻게 가져오는지 확인해봤다.위와 같이 403038주소에는 첫번째 입력창, 403138주소에는 두번째 입력창 내용을 가지고 와서 각각 길이가 0보다 큰.. 2026. 9. 18. 이전 1 다음