[2024.09.04 / 2024.09.05]
RegisterMe 파일의 경우 실행 시 이런 화면들이 나타난다
40100F에서 JE에서 JNE로 변경시키고 crack 파일을 따로 만든다
또 화면의 드래그 부분에서 오른쪽 마우스 > Edit > Fill with NOPs를 선택하고 crack 파일에 덮어씌운다
현재 확인해야 될 점은 JE를 JNE로 변경, 아래의 빨간 박스 부분 놉스로 변경시키는 것이다
그런 다음 crack 파일을 열게 되면 변경한 것들이 잘 변경되어 crack 된 상태다
carck 파일을 실행했을 때 이 화면이 나오게 된다면 성공한 것이다
따로 성공 메시지가 없고 해당 메시지가 뜨면 되기 때문에 두 번의 변경으로 인해 조작하여 성공할 수 있었다
=======================================
01. 문자열 패치
1) PixtopianBook (UNREGISTREAD VERSION)
2) This is an unregistered version if PixtopianBook. Please register today!
3) Unregistered version v1.07
다운로드받은 파일을 선택하고 설치를 진행한다
처음에는 설치가 되지 않기 때문에 해당 창이 뜨면,
호환성 설정을 사용하여 설치를 누르고 진행한다
설치를 마치게 되면 PixtopianBook 파일이 생성되는데,
해당 파일을 선택하고 user1을 생성시킨다
user1이 만들어졌다면 user1으로 로그인한다
로그인 시 바로 보이는 화면은 화면과 같다
이제 이 화면에서 빨간 박스 세 군데의 UN을 빼고 REGISTERED로 변경시키는 미션을 수행하면 된다
먼저 일반 Strings에서 볼 수 없는 것은 메인 화면의 M이라고 적혀 있는
메모리 스트링을 이용하여 확인할 수 있다
메모리 맵을 들어가게 되면 오른쪽 마우스 클릭으로 Search를 볼 수 있는데
너무 많은 코드와 값들 사이에서 내가 원하는 값을 입력하여 찾을 수 있다
현재 (UNREGISTRED VERSION)을 찾으려고 한다
이 화면에서는 아스키 값이나 유니코드 둘 중에 하나로 찾아질 수 있기 때문에
안 된다면 두 개 모두 시도해 보는 걸 추천한다
값을 입력 후 찾게 되면 해당 값이 나타나 있는 메모리 영역을 확인할 수 있는 창이 나타난다
위치를 기억해 뒀다가 Go to를 이용하여 해당하는 부분으로 이동한다
그렇게 되면 내가 찾던 곳으로 이동하게 되는데,
여기에서 수정할 부분을 드래그 후 Ctrl + E를 누르게 되면 선택한 부분 모두 수정할 수 있다
그 상태에서 값을 전부 0으로 변경시키고 해당 부분을 crack1 파일로 만든다
crack1 파일을 실행한 후 다시 user1을 만들어 로그인한다
그렇게 되면 현재 PixtopianBook 옆에 (Unregistred version)을 확인할 수 없게 되었다
두 번째 문자를 수정하기 위해 이번에도 같은 방법으로 해당 메모리 값의 위치를 찾았다
이동하게 되면 unregistered 부분이 나타나게 된다
여기에서 un을 제거시켜 주고 이번에는 crack2로 파일을 저장한다
crack2 파일을 열어 다시 실행시켜 확인하게 되면
이번에는 This is an 뒤에 아무것도 나타나지 않는 걸 확인할 수 있다
마지막 부분도 un만 삭제시킨 후 crack3 파일을 또 따로 생성한다
crack3로 확인했을 때 버전을 나타내는 부분에서 문구가 확인되지 않는 걸 볼 수 있었다
02. 기능 제한
1) 사용자 등록 제한(4개)
2) 그룹 등록 제한(3개)
이렇게 ADD를 이용하여 사용자를 추가할 수도 있다
하지만 사용자 추가의 경우 4개의 횟수 제한이 있어 4개를 만든 후
다시 만들고자 하면 해당 경고 메시지가 나타나고 생성이 불가하다
그룹의 경우도 마찬가지로 Add Group을 이용하여 그룹을 생성할 수 있고, 횟수 제한으로 3개까지 가능하다
현재 이러한 제한을 두고 제한을 해제시키는 미션을 주셨다
이번에는 메모리 값이 아닌 일반 Strings를 이용하여 해당 문자가 나타나는 곳을 찾았다
해당 문구가 나타나는 부분으로 이동 후에 JL이었던 명령문을
무조건 점프하는 명령문으로 만들기 위해 JMP로 변경시킨다
crack4의 파일로 만들어 PixtopianBook을 직접 실행하여 확인하였을 때
4개의 갯수 제한이었던 사용자 제한이 무제한으로 변경되어 제한 없이 생성되는 걸 확인할 수 있다
이번에도 기존의 Strings로 해당 문구를 입력 후 찾아냈다
이번에도 해당 문구열 위에서 이전 비교 명령어 cmp나 테스트 명령어의 결과에 따라
코드를 제어하는 JL에서 무조건 점프시키는 JMP로 변경시키고 crack5 파일을 만든다
그렇게 되면 이번에도 사용자 생성과 마찬가지로 그룹도 갯수 제한 없이 생성된다
강의 소감
오늘로 리버싱 마지막 시간 강의였다
처음 시작할 때는 모르던 것들이 익숙해진 것 같으면서도
아직 미숙한 부분도 공존하기 때문에 많은 연습이 필요한 걸 알았다
그래도 처음과 비교하자면 현재는 강의를 이해하고 따라 갈 수 있는 정도는 되었다
어셈블리어에 대한 코드 이해를 조금 더 복습해야 되겠고,
또 필수가 아니더라도 남는 여가 시간에 지금까지 했던 리버싱 실습을 연습할 계획이다