문제는 회원가입 후 로그인 하면 받을 수 있다
http://reversing.kr/challenge.php
1번 문제 Easy_CrackMe.exe
1. 정보 확인
일단 파일 정보 확인은 툴(Detect It Easy)을 사용해서 패킹 여부, 어떤 언어인지 확인 툴은 DIE 말고 exeinfope로 확인해도 됨
확인되는 패킹은 없고, 언어는 C/C++로 제작되었고 32비트라는 정보를 알 수 있습니다.
2. 문제 확인
- 파일 실행시 사용자가 입력할 수 있는 창이 출력된다
- 임의의 값을 입력하고 확인 버튼을 누르니, 부정확한 패스워드라는 문구가 출력된다.
출제자가 정해놓은 패스워드를 우회해보자!!
문자열 확인 하기 우클릭 - Search for - All referenced text string
확인된 문자열을 보면 "Congratulation!! " 과 "Incorrect Password"를 확인할 수 있다 해당 부분은 성공과 실패했을 때 메시지 박스에 나오는 문자열로 추정된다
이번에는 Ctrl + n을 눌러서 해당 프로그램에서 사용한 라이브러리 확인
MessagBoxA 우클릭 - Find references to import를 눌러 MessageBoxA 라이브러리를 사용하는 부분을 확인
해당 파일은 두 번에 메시지 박스를 호출하는 것을 확인할 수 있다.
실제로 확인해 보면 00401121 주소에서 호 풀한 메시지 바스는 성공했을 경우고 00401142 주소는 실패했을 때 출력되는 걸 확인할 수 있다
이제 패스워드가 틀렸을 때를 메시지 박스로 들어 오는 부분을 찾아야 하는데...
메세지 박스 부분을 눌러보면 041135 주소 값을 눌러 보면 4개의 분기에서 점프로 넘어온 것을 확인할 수 있다
[ Jumps from 004010B5, 004010CD, 0040110B, 00401112 ]
[방법 1] 분기점 그냥 넘어가기
Jumps from 004010B5, 004010CD, 0040110B, 00401112 각각의 분기 점을 확인해보면 JNZ로 넘어가게 되는데 디버그 하면서는 JNZ부분에서 z flag가 1이 되게 바꿔주면 해당 부분을 넘어가게 된다~
zflag를 1로 바꾸는 방법 아니면 JNZ를 JE로 바꿔주면 성공 ~~!!
[방법 2] 암호 풀기?
첫번째는 패스워드 입력을 일단 qwer로 하고 진행함
004010B5 분기문을 확인해 보면 ESP+5 와 61(ascii : a)를 비교 하는 것을 확인할 수 있다. [ESP+5]는 w가 나왔는데 두번쨰 자리가 ascii : a와 같아야 다음으로 넘어 간다.
이번에는 두번째에 a를 넣고(qawerty) 실행 해 보겠습니다.
비교할 값이랑 입력한 값에서 "werty"를 저장 한 다음 0041150주소에 함수를 호출해 넘겨준다.
코드를 보면 2번 반복 하면서 5y 값이랑 we 값을 비교한다
이번에는 "R3versing" 문자와 반복적으로 비교한다.
마지막으로 ESP+4 와 45를 비교하는데 첫번째 문자와 45(ascii : E) 를 비교 한다
답은 E + a + 5y + R3versing
'play > 분석' 카테고리의 다른 글
[악성 앱] 모바일 부고장 사칭 악성앱 분석 (23.08.20) (91) | 2023.08.20 |
---|---|
[악성 앱] 쿠팡 사칭 악성앱 분석 (23.07.24) (0) | 2023.07.24 |
[악성 앱] Chrome 사칭 악성앱 분석 (23.05.06) (2) | 2023.05.06 |
[악성 앱] 경찰청 안티 스파이 사칭 앱 분석 (23.02.24) (2) | 2023.02.24 |
[악성 앱] 월드컵 중계(kora442) 사칭 앱 분석 (23.01.28) (0) | 2023.01.28 |