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 | 29 | 30 | 31 |
Tags
- 스택
- UIPanGestureRecognizer
- 표준 템플릿 라이브러리
- ios
- scroll
- Constraint
- Swing
- Reverse Engineering
- list
- 컴퓨터 구조
- 2020.06.14
- 모달인듯 모달 아닌 뷰
- NavigationBar
- Animation
- 컴퓨터구조
- SWiFT
- 2020.04.19
- class
- Reversing
- UIView
- Stack
- struct
- 순차 컨테이너
- 백준 10828
- stl
- vector
- BOJ
- 백준 1920
- 2020.05.17
- 알고리즘
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 |