문제를 보니 앞의 L14 문제와 동일하네요 :D
Ollydbg로 열어보니 특별히 다른 건 없어 보입니다!
그래서 문자열 검색 기능을 이용해 의심가는 부분을 찾아보았습니다 :D
"Cracked"과 "Try Again!"이 보입니다!
주소 458831의 비교문으로 주소 458837의 점프문으로 인해 분기가 나뉘어집니다 :D
그럼 458831에 BP를 걸어두고 실행을 시켜보았습니다!
프로그램이 하나 실행이 됩니다!
Name과 Serial이 존재하는데 문제에서 Name이 "CodeEngn"일 때
Serial이 무엇인지를 알아내라고 했으니
Name에는 "CodeEngn"을 넣고
Serial에는 임의의 숫자를 넣어주도록 하겠습니다 :D
예상대로 BP에서 걸립니다 :D
조건문을 보면 EAX와 DS:[0045B844]와 비교를 하고 있습니다!
밑에서 보니 친절하게 DS:[0045B844]는 6160이라는 것을 보여주고 있네요 :D
그래도 한번 확인해보도록 합시다!
역시 메모리주소 45B844에 6160의 값이 들어있습니다 :D
메모리 상에는 리틀엔디언 방식으로 들어가기 때문에 거꾸로 읽으셔야합니다 ㅎㅎㅎ
그럼 EAX의 정체는 무엇일까요 ?
제가 12를 입력했는데 EAX에는 C로 담겼습니다 ㅎㅎㅎ
즉, 제가 입력한 Serial값이 16진수로 변환된다는 것을 알 수 있겠죠!
그럼 답을 알 수 있겠죠 :D
6160을 10진수로 바꾸면 24928이 됩니다!
이제 Serial에 넣어주도록 합시다!
역시나 예상대로 16진수로 변환되어 6160으로 들어갑니다 :D
계속해서 실행하니 크랙이 되었다고 하네용 :D
앞의 문제와 동일한 방식으로 풀면되는 문제네요!
그럼 이만 문제풀이를 마치겠습니다 :D
'CTF > CodeEngn.kr' 카테고리의 다른 글
Basic RCE L17 (0) | 2020.04.01 |
---|---|
Basic RCE L16 (0) | 2020.03.31 |
Basic RCE L14 (0) | 2020.03.28 |
Basic RCE L13 (0) | 2020.03.22 |
Basic RCE L12 (0) | 2020.02.28 |