Yozzang의 해킹일기 💻
article thumbnail
Lena Tutorial (Level 14)
Wargame/Lena Tutorial 2022. 9. 5. 00:16

이번 포스트에서는 레나 튜토리얼의 Level 14 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : DVD 메뉴 스튜디어 프로그램이다. 등록(Register)하면 되는 것으로 보인다. ## 문제 풀이 : 먼저 Ollydbg를 통해 해당 파일을 열어보겠다. 해당 프로그램을 실행하여 Register 코드를 아무거나 입력해보면 다음과 같은 에러창이 뜬다. Ollydbg의 스레드 기능을 통해 다음과 같은 현재 실행 중인 스레드 리스트를 확인할 수 있다. 메인 스레드에 들어가서 커널을 확인해보면 다음과 같이 에러 메시지 박스를 호출하는 부분을 볼 수 있다. 해당 함수를 호출하는 곳으로 가서 확인해보면 다음과 같다. 여기서 BP를 걸고 재실행해보면 스택 영역에 다음과 같은 내용이 담겨있다. ..

article thumbnail
Lena Tutorial (Level 13)
Wargame/Lena Tutorial 2022. 9. 4. 00:36

이번 포스트에서는 레나 튜토리얼의 Level 13 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : 보안 관련 프로그램이다. 등록(Register)하면 되는 것으로 보인다. ## 문제 풀이 : 먼저 Ollydbg를 통해 해당 파일을 열어보겠다. 해당 프로그램에 안티 디버깅 기법이 적용되어 있으므로 먼저 다음과 같이 예외처리를 설정해준다. 해당 프로그램을 실행하여 Register 코드를 아무거나 입력해보면 다음과 같은 에러창이 뜬다. Ollydbg의 스레드 기능을 통해 다음과 같은 현재 실행 중인 스레드 리스트를 확인할 수 있다. 메인 스레드에 들어가서 커널을 확인해보면 다음과 같이 에러 메시지 박스를 호출하는 부분을 볼 수 있다. 해당 함수를 호출하는 곳으로 가서 확인해보면 다음과..

article thumbnail
Lena Tutorial (Level 12)
Wargame/Lena Tutorial 2022. 9. 3. 00:32

이번 포스트에서는 레나 튜토리얼의 Level 12 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : 스케쥴링 관련 프로그램이다. 등록(Register)하면 되는 것으로 보인다. ## 문제 풀이 : 먼저 Ollydbg를 통해 해당 파일을 열어보겠다. 해당 프로그램의 Help - About에서 키 등록을 할 수 있는데, 아무 값을 넣어서 시도해보면 다음과 같은 창이 뜬다. Ollydbg의 검색 기능을 활용하여 해당 문구를 검색하다 보면 다음과 같은 내용이 나온다. 해당 명령어의 위치에 가서 확인해보면 다음과 같이 윗부분에 JE 명령어가 존재한다는 것을 알 수 있다. 해당 명령어를 변조하여 방금 나온 에러를 우회할 수 있다. 변경한 후 계속 실행하다 보면 다음과 같이 JNZ 명령어를 만..

article thumbnail
Lena Tutorial (Level 11)
Wargame/Lena Tutorial 2022. 9. 2. 00:26

이번 포스트에서는 레나 튜토리얼의 Level 11 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : 퍼즐 맞추기 프로그램이다. 등록(Register)하면 되는 것으로 보인다. ## 문제 풀이 : 먼저 Ollydbg를 통해 해당 파일을 열어보겠다. 해당 프로그램에서 로컬에 있는 사진을 선택하려고 하면 다음과 같은 등록 관련 경고창이 뜬다. 해당 창에 있는 문구를 검색하다보면 다음과 같이 제목 관련 문구를 찾아낼 수 있다. (위는 등록 버전, 아래는 미등록 버전) 해당 코드에 가서 확인해보면 다음과 같이 JE 명령어를 발견할 수 있다. 해당 명령어는 "Jump if equal"으로 값이 동일할 때 점프한다는 의미를 가진다. 좀 더 위를 확인해보면 AL의 값을 통해 점프 여부를 결정하고..

article thumbnail
Lena Tutorial (Level 10)
Wargame/Lena Tutorial 2022. 9. 1. 00:10

이번 포스트에서는 레나 튜토리얼의 Level 10 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : Regcode를 입력하라고 되어 있다. 등록하고 Nag(잔소리)를 제거하면 되는 것으로 보인다. ## 문제 풀이 : 먼저 VB Decompiler를 통해 해당 파일을 열어보겠다. "Register me!" 버튼의 이름은 Command1로 되어있으며, 이와 상응하는 메모리 주소는 402814이다. 또한 "Nag?" 버튼의 메모리 주소는 402C17인 것을 알 수 있다. 이어서 Ollydbg를 통해 해당 파일을 열어보겠다. 방금 찾은 두 주소에 BP를 걸고 실행해보겠다. 시작하자마자 Nag(402C17)이 호출되었다. 해당 명령을 동작하지 못하게 RETN으로 바꿔주겠다. 이어서 Regi..

article thumbnail
Lena Tutorial (Level 9)
Wargame/Lena Tutorial 2022. 8. 31. 00:51

이번 포스트에서는 레나 튜토리얼의 Level 9 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : 자동 응답기 프로그램이다. 시리얼 넘버를 찾으면 되는 것으로 보인다. ## 문제 풀이 : 먼저 Ollydbg를 통해 해당 파일을 열어보겠다. 우선 해당 프로그램은 VBA 언어로 구현했디. 또한 시리얼 넘버를 확인하는 절차가 존재하므로 "vbaVarTstEq"라는 함수가 쓰이는 곳을 확인해보겠다. 해당 함수는 변수가 맞는지를 비교하는 함수이다. 이 함수에 참조 BP를 걸고 실행해보겠다. 실행하다 보면 위와 같이 함수가 호출되는 것을 확인할 수 있다. 계속 실행해보겠다. 시리얼 넘버처럼 생긴 문자열이 보인다. ### 시리얼 넘버 : oeiu-564-oqei-97 ### 실행 결과 : 이로..

article thumbnail
Lena Tutorial (Level 8)
Wargame/Lena Tutorial 2022. 8. 30. 00:41

이번 포스트에서는 레나 튜토리얼의 Level 8 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : 그림판 기능 프로그램이다. 체험판을 우회하면 되는 것으로 보인다. ## 문제 풀이 : 먼저 Ollydbg를 통해 해당 파일을 열어보겠다. 프로그램을 실행하여 등록해보면 다음과 같이 "Invalid Key!"라는 오류가 뜬다. 우선 해당 에러창을 우회해보겠다. Ollydbg의 검색 기능을 활용하면 쉽게 코드의 위치를 찾을 수 있다. 해당 코드의 윗부분을 확인해보면 다음과 같이 JE 명령어가 존재한다. 위 명령어는 EAX를 비교해서 만약 0인 경우 점프한다는 의미이다. 우리는 해당 명령어를 우회해야 하기 때문에 더 위로 올라가서 EAX를 설정하는 CALL 명령어(43856E)를 확인해보겠..

article thumbnail
Lena Tutorial (Level 7)
Wargame/Lena Tutorial 2022. 8. 29. 00:14

이번 포스트에서는 레나 튜토리얼의 Level 7 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : 영수증을 스캔하고 기록하는 프로그램이다. 체험판을 우회하면 되는 것으로 보인다. ## 문제 풀이 : 먼저 Ollydbg를 통해 해당 파일을 열어보겠다. 프로그램을 실행하고 About를 클릭하면 등록관련 창이 뜬다. 여기서 아무런 이메일과 라이선스 키를 입력해서 시도해보면 다음과 같은 오류가 출력된다. 우선, 해당 오류를 지워보겠다. Ollydgb의 검색 기능을 활용하면 코드의 위치를 쉽게 찾을 수 있다. 해당 코드의 윗부분을 확인하면 아래와 같이 JNZ 명령어가 존재한다는 것을 확인할 수 있다. 해당 JNZ 명령어는 AL(EAX의 하위 8바이트)값을 비교하여 0이 아닐 때만 등록 성공..

article thumbnail
Python Challenge (Level 10)
Wargame/Python Challenge 2022. 8. 28. 00:35

이번 포스트에서는 Python Challenge의 Level 10 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 소 그림과 "len(a[30])=?"라는 식이 있다. 해당 식을 풀어내면 되는 것으로 보인다. ## 문제 풀이 : 개발자 도구를 확인해보면 다음과 같은 경로를 볼 수 있다. 해당 경로에 접속해보겠다. ### 공격문 : http://www.pythonchallenge.com/pc/return/sequence.txt ### 실행 결과 : 문제 화면에 나와 있는 리스트 a이다. 해당 리스트의 규칙을 찾아내면 30번째값을 알아낼 수 있을 것 같다. 실제 풀이한 결과, 해당 리스트는 다음과 같은 규칙을 가진다. 이 규칙을 활용하여 파이썬 자동화 코드를 작성하..

article thumbnail
Python Challenge (Level 9)
Wargame/Python Challenge 2022. 8. 27. 00:09

이번 포스트에서는 Python Challenge의 Level 9 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 나무 그림 하나가 출력된다. 개발자도구를 확인해보면 다음과 같은 주석 부분이 있다. 점을 연결하라는 제목이 있다. 즉 first+second를 연결하면 될 것 같다. ## 문제 풀이 : 파이썬의 PIL 라이브러리를 이용하여 first와 second 배열의 값들을 연결해보겠다. ### 공격 코드 : from PIL import Image, ImageDraw first = [146, 399, 163, 403, 170, 393, 169, 391, 166, 386, 170, 381, 170, 371, 170, 355, 169, 346, 167, 335, 17..