반응형

문제는 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