Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Stack
- 백준 1920
- BOJ
- Constraint
- Swing
- Animation
- 2020.05.17
- 백준 10828
- 2020.06.14
- stl
- Reversing
- UIPanGestureRecognizer
- 알고리즘
- class
- UIView
- 순차 컨테이너
- list
- SWiFT
- 2020.04.19
- 스택
- 표준 템플릿 라이브러리
- ios
- Reverse Engineering
- NavigationBar
- vector
- 컴퓨터구조
- scroll
- struct
- 모달인듯 모달 아닌 뷰
- 컴퓨터 구조
Archives
- Today
- Total
야금야금
Reversing #2_Crackme1 본문
[Crackme #1]
프로그램 설명 : 드라이브 타입을 확인하여 해당 타입의 메시지 박스를 출력한다.
목표 : 단순 패치를 이용하여 해당 상황의 메시지 박스가 아닌, 원하는 메시지 박스를 출력한다.
프로그램 시작 시 "Make me think your HD is a CD-Rom" (=HD가 해당 프로그램을 CD-Rom이라고 인식하게 만들어라) 메시지 박스가 출력된다.
확인을 누를 경우 "Nah… This is not a CD-ROM Drive!"라는 메시지 박스가 출력되면서 프로그램이 종료된다.
본 패치(크랙)의 목표는 코드를 분석 후 수정하여 "Ok, I really think that your HD is a CD-ROM! :p"라는 메시지 박스가 출력되는 것이다.
아래는 본 프로그램의 EP코드이다.
401026주소 명령어를 보면 본 프로그램은 EAX와 ESI값을 비교하여 두 값이 같을 경우 원하는 메시지 박스를 출력하고 다를 경우 실패 메세지 박스를 출력하는 것을 알 수 있다.
따라서 원하는 메시지 박스를 출력하기 위해서는 JE(Jump if Equal, 조건분기명령어)명령어를 JMP 명령어로 변경하여 원하는 메시지 박스의 주소로 넘어가 출력하면 된다.
'SWING > Reversing' 카테고리의 다른 글
Reversing #4_Lena's Reversing for Newbies (0) | 2021.03.28 |
---|---|
Reversing #3_Crackme2 (0) | 2021.03.28 |
Reversing #1_Hello World (0) | 2021.03.28 |