일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2020.06.14
- class
- 모달인듯 모달 아닌 뷰
- 백준 10828
- UIPanGestureRecognizer
- Animation
- Reverse Engineering
- 표준 템플릿 라이브러리
- 알고리즘
- SWiFT
- 순차 컨테이너
- 2020.05.17
- ios
- scroll
- UIView
- vector
- stl
- 컴퓨터구조
- Constraint
- 스택
- struct
- NavigationBar
- Reversing
- 컴퓨터 구조
- list
- Swing
- 2020.04.19
- Stack
- BOJ
- 백준 1920
- Today
- Total
목록SWING/Reversing (4)
야금야금
[ Lena's Reversing for Newbies ] 프로그램 설명 : 본 프로그램의 정답 Regcode값 외의 값을 입력하면 오류창이 출력되고 해당 값을 입력하면 성공 창이 출력되는 프로그램. 프로그램을 시작했을 때와 해당 버튼을 눌렀을 때 Nag창이 추가로 출력된다. 목표 : ① 모든 Nag창을 제거한다 ② 정답 Regcode값을 찾는다 우선 파일을 실행시켜보자 위와 같은 문구(모든 Nags를 없애고 registration code를 찾아라)와 함께 메시지 박스가 출력된다. 확인 버튼을 누르면 아래와 같은 메인 창이 나타난다. (취소를 누를 경우 프로그램 종료) 해당 창에서 틀린 Regcode값을 입력하면 오류 메시지 박스가 출력되고 Nag? 버튼을 누를 경우 처음 파일을 실행했을 때와 같은 창..
[Crackme #2] crackme #1에서는 프로그램의 작동 원리를 파악하여 우리가 원하는 방향으로 동작하도록 파일의 명령어 자체를 수정하여 패치(크랙)하였다. crackme #2에서는 한 단계 나아가서 전형적인 크랙의 형태인 시리얼 키(serial key)를 알아내는 과정을 파악한다. 프로그램 설명 : Name과 Serial 값을 입력한다. 입력받은 Name값마다 일치하는 Serial값이 존재하고 해당 값이 아닌 다른 값이 입력되면 잘못된 값이라는 창이 뜬다. 목표 : 입력받은 Name문자열에 맞는 Serial값을 알아내고 Name문자열을 기반으로 Serial을 생성하는 알고리즘을 파악한다. 우선, 해당 프로그램의 EP코드를 확인해 보자 본 프로그램은 Visual Basic(이하 VB)으로 제작되었..
[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코드이다...
목표 : 출력값인 Hello World!를 Hello Reversing!으로 바꾸기 사용 프로그램 : OllyDbg(올리디버거) 일반적으로 프로그램의 실행파일은 2진수(Binary)로 되어있다. 해당 2진수를 16진수(Hex)로 변환시키고 Disassemble과정을Disassemble 거쳐 어셈블리 코드 형태로 변환시켜주는 프로그램. 방법 : 컴퓨터는 메모리 주소를 호출하고 값을 반환하는 행위를 반복한다. 따라서 "Hello World!"라는 문장을 출력하는 함수(printf )를 호출하는 명령어를 찾아야 한다. 함수(printf )는 "Hello World!"라는 문자열이 담긴 메모리를 사용할 것이다. 따라서 해당 주소의 문자열 자체를 "Hello Reversing!"으로 바꾸거나 문자열을 참조하는 명..