일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Windows
- Visual Studio
- Desktop
- c++
- c
- doit코틀린프로그래밍
- Win32
- 함수
- 포인터
- 알고리즘
- 연산자
- 프로그래밍
- Tips강좌
- Javascript
- 배열
- 문법
- Programming
- 김성엽
- Tips프로그래밍강좌
- VS ERROR
- Direct2D
- 지식나눔강좌
- 티스토리
- 리뷰
- tipssoft
- c#
- Kotlin
- 백준
- CS
- 이지스퍼블리싱
Archives
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
OpenSecureLab#1_Release.exe 본문
반응형
콘솔 프로그램의 패스워드를 찾는 리버싱인듯 하다.
쭉 돌아보면 [9139B]에서 main을 콜한다.
이후에 값을 입력하게 되면
이 위치에서 문자열의 길이를 판단한다. 14개의 문자를 입력하면 기본적으로
[Sure ! Nice]가 나오고 프로그램이 종료된다. 단, 종료 코드는 -8이 나오므로 정상적인 패스워드는 아니라는 소리다. fake를 넣어서 이것으로 리버싱이 끝났다고 착각하도록 만들고 있다.
F8을 눌러 [910DB]까지 내려오게 되면 여기서부터 데이터를 체크한다.
cmp byte ptr ss: [ebp-N], N 1 2
에서 뒤에 숫자를 ASCII 변환을 해보면 다음과 같다.
즉, 이 프로그램의 패스워드는
R3versE_is_FuN
이다.
이렇게 찾은 패스워드를 입력하면 프로그램은 다음과 같이 작동한다.
리버싱을 하며 생긴 의문점 하나는 다음이다.
[91000]으로 진입하게 되면 분명히 [91000]에서 [91055]부분으로 이어지게 되는데 그 과정에서 데이터 영역이 있다. 그래서 [91055]를 호출하는 부분을 찾아보고자 BP를 걸어서 한단계씩 코드를 시행하게 되면 코드상 문제가 발생한다. 그렇다고 F9로 코드를 실행하면 바로 [91055]로 넘어가게 되는 원인을 모르겠다.
728x90
반응형
'리버싱 > Olly' 카테고리의 다른 글
crackme2.exe (0) | 2018.09.15 |
---|---|
리버싱 - crackme1.exe (0) | 2018.09.13 |
리버싱 - abexcm1(실습).exe (0) | 2018.09.13 |
Ollydbg 기본 단축키 (0) | 2018.09.13 |
Comments