반응형
문제는 Name이 CodeEngn일 때 Serial을 원하고 있다.
Die로 열어본다.
.NET 프레임워크로 구현되어 있다. 이런 실행 파일은 Dnspy나 dotPeek으로 코드를 전부 볼 수 있다.
프로그램을 실행시켜본다.
문제에서는 이 아래의 시리얼을 원하는 것 같다.
dotPeek으로 열어본다.
성공을 출력하는 구문을 찾았다.
if문의 조건 3가지(this.vxzzz(this.yreee, this.ewrrr, 2415736773U, fsfsdf) / (int) this.yreee[2] == (int) hashCode / (int) this.yreee[3] == (int) num1)를 만족하는 값을 찾아야 한다.
코드를 더 보게되면 시리얼에는 16진수만 와야 하고, 다른 값을 입력하면 예외 처리가 된다.
이제 코드 전체를 보지 않아도 브루트포스를 통해 쉽게 답을 찾을 수 있을 것 같다.
먼저, 코드를 수정하면서 검증해보기 위해 Dnspy로 열어본다.
선택된 부분을
이런식으로 바꿔주어 0x0 ~ 0xffffffff까지 브루트 포스를 통해 메시지 박스를 띄워 보면,
정답을 알 수 있게 된다.
하지만 GetHashcode의 영향으로 32비트와 64비트의 값은 달랐고, 32비트 운영 체제를 설치하여 컴파일 하니 정답이 도출 되었다.
성공!
반응형
'Reversing 문제 풀이 > CodeEngn.com_Advance' 카테고리의 다른 글
codeengn-advance-L09 풀이 (0) | 2022.05.16 |
---|---|
codeengn-advance-L08 풀이 (0) | 2022.05.12 |
codeengn-advance-L06 풀이 (2) | 2022.05.09 |
codeengn-advance-L05 풀이 (0) | 2022.05.06 |
codeengn-advance-L04 풀이 (0) | 2022.05.04 |
최근댓글