Tjdmin1

[reversing.kr] Easy Crack 본문

Reverse engineering

[reversing.kr] Easy Crack

Tjdmin1 2025. 3. 13. 01:06

http://reversing.kr/challenge.php

 

Reversing.Kr

Copyright © 2012-2025 KiwanKo All Right Reserved.

reversing.kr

Analyze


WinMain 함수

WinMain Function

DialogBoxParamA로 대화 상자를 하나 만듭니다.

이때 핸들러는 DialogFunc으로 이벤트들을 저 함수에서 처리하게 됩니다.

 

DialogFunc 함수

DialogFunc Function

이벤트 처리 로직이 보이고 a3의 값이 1001일 때 sub_401080을 호출하게 됩니다.

 

sub_401080 함수

sub_401080 Function

여기서 입력 값을 처리하는 것을 알 수 있게 됩니다.

if ( String[1] != 97 || strncmp(&String[2], Str2, 2u) || strcmp(&String[4], aR3versing) || String[0] != 69 )
    return MessageBoxA(hDlg, aIncorrectPassw, Caption, 0x10u);

이 조건문 내부로 들어가게 되면 aIncorrectPassw가 뜨게 되는 것으로 보아 내부로 들어가면 안되는 것을 알 수 있습니다.

그럼 if 내의 조건은 무조건 false가 되어야 하고 하나하나씩 분석해보면 아래와 같습니다.

String[1] = 97 ( a )

String[2:4] = Str2 ( 5y )

String[4:] = aR3versing ( R3versing )

string[0] = 69 ( E )

 

strncmp는 src값과 dest의 값을 n의 길이 만큼 비교해서 똑같으면 0을 다르면 1을 반환하게 되어 조건문이 false가 될 수 있는 것입니다.

따라서 패스워드의 값은 Ea5yR3versing이 되게 됩니다.

'Reverse engineering' 카테고리의 다른 글

[CodeEngn] RCE Basic L01  (0) 2025.03.11
[Dreamhack] simple-operation  (1) 2024.07.03
[Dreamhack] rev-basic-1  (1) 2024.07.03
[Dreamhack] rev-basic-0  (0) 2024.07.03
[Dreamhack] Easy Assembly  (0) 2024.07.03