코드엔진 basic 07번

2021. 9. 25. 21:17Wargame 공부/CodeEngn basic

파일을 실행해 보면 시리얼 값을 입력하는 구간이 나오는데 아무 값이나 입력한 뒤 Check버튼을 누르면 아래와 같이 에러 창이 나타나면서 종료된다.

이제 올리디버거를 사용해 파일을 연 뒤에 파일을 계속 실행해보면 EP인 401000 주소에 도착하게 되고 아래로 내리면서 분석을 해보면 DialogBoxParamA 함수를 사용해 시리얼 입력 창을 띄우고

아래와 같이 주소 401099에서 GetVolumeInformationA 함수를 사용해 드라이브의 이름을 가져온 뒤 lstrcat 함수를 사용해 드라이브 이름 뒤에 4562-ABEX값을 붙인다. 드라이브 이름이 CodeEngn 이므로 CodeEngn4562-ABEX값이 된다.

그런 후 반복문을 사용해 드라이브 앞 4자를 2씩 증가시키면 값은 EqfgEngn4562-ABEX값이 된다.

이후 아래의 첫 번째 lstrcat함수를 통해 402000 주소에 L2C-5781 값을 붙이고 두 번째 lstrcat함수를 통해 위의 값을 붙여서 L2C-5781EqfgEngn4562-ABEX값이 되고 이 값과 입력 값을 비교하여 같아야 성공 메시지를 띄우기 때문에 이 값이 시리얼 값이 된다.

(위 사진은 드라이브 이름이 없을 경우 나타나는 값)

(드라이브 이름을 CodeEngn으로 변경 시 위의 값처럼 L2C-5781EqfgEngn4562-ABEX가 됨)

'Wargame 공부 > CodeEngn basic' 카테고리의 다른 글

코드엔진 basic 09번  (0) 2021.09.25
코드엔진 basic 08번  (0) 2021.09.25
코드엔진 basic 06번  (0) 2021.09.25
코드엔진 basic 05번  (0) 2021.09.25
코드엔진 basic 04번  (0) 2021.09.25