2015. 4. 27. 08:40ㆍSecurity ★ Development/Reversing
http://codeengn.com/challenges/advance/07
Problem : When the Name is CodeEngn, the Serial is 28BF522F-A5BE61D1-XXXXXXXX.
Find XXXXXXXX이 문제는 x64와 x86에서의 답이 다릅니다. 문제에 있는 앞의 두 Serial값은 32에서의 값으로 64에서는 2B90746C-85690F59-XXXXXXXX로 놓고 풀어야합니다.
Ollydbg로 열어보려했지만 열리지 않아 팩 상태를 봤는데 별다른 팩도 되어있지 않습니다. C#으로 되어있다고 하니 dotPeek을 써줍니다.
코드가 깔끔하게 복원됩니다. 성공 메시지를 띄워주는 부분을 찾고 로직을 분석합니다. 눈으로 따라가기 어려우니 솔루션으로 export해서 디버깅해줍니다. 에러가 나는 부분은 로직을 해치지 않는 범위에서 고쳐줍니다.
(64와 32환경에서 답이 다른 이유는 GetHashCode함수가 각각 다른 값을 리턴해주기때문입니다.)
button1_Click함수에서 받아들인 값에 대해 연산을 하고 if문을 통해 통과시킬지 안 시킬지를 검사합니다. 이를 Brute force방식으로 뚫기위해 적절히 고쳐줍니다.
num5와 num4부분은 상관없고 vxzzz를 호출하는 부분을 보면 str3이 입력해준 Serial이고 이 값과 num5와의 fsfsdf값 등으로 연산이 된다는 것을 확인할 수 있습니다. vxzzz함수도 또한 일일이 계산하며 루틴을 확인하기가 쉽지 않습니다.
str3을 brute force로 생성해주면 if문을 넘어가게 되고 답을 구할 수 있습니다.
0A23ED41
'Security ★ Development > Reversing' 카테고리의 다른 글
리버스엔지니어링 문제 Advance 9 (0) | 2015.05.02 |
---|---|
리버스엔지니어링 문제 Advance 8 (0) | 2015.05.01 |
리버스엔지니어링 문제 Advance 6 (0) | 2015.04.19 |
리버스엔지니어링 문제 Advance 5 (0) | 2015.04.17 |
리버스엔지니어링 문제 Advance 4 (0) | 2015.04.17 |