코드엔진 basic 07번
2021. 9. 25. 21:17ㆍWargame 공부/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 |