Yozzang의 해킹일기 💻
article thumbnail
Lena Tutorial (Level 17)
Wargame/Lena Tutorial 2022. 9. 23. 00:30

이번 포스트에서는 레나 튜토리얼의 Level 17 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : 키를 점검하는 프로그램이다. 우리가 입력한 값의 대응키를 구하면 되는 것으로 보인다. ## 문제 풀이 : Ollydbg를 통해 해당 프로그램을 실행해보겠다. 우선 해당 프로그램에 아무 값이나 입력한 다음에 정지를 해보겠다. 그럼 위와 같이 오류창 하나가 뜬다. 이어서 Call stack 부분을 확인해보겠다. Call stack을 보면 위와 같이 오류 메시지 박스가 출력된 부분을 확인할 수 있다. 해당 부분에 들어가서 모든 References에 대해 BP를 걸어보겠다. 그런 다음에 재실행하면 아래와 같이 모든 MessageBoxA에 bp가 걸린 모습을 확인할 수 있다. 해당 코드의 윗..

article thumbnail
Lena Tutorial (Level 16)
Wargame/Lena Tutorial 2022. 9. 14. 00:09

이번 포스트에서는 레나 튜토리얼의 Level 16 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : GIF 관련 프로그램이다. 프로그램 종료 시 나타났던 Nag 창을 없애면 되는 것으로 보인다. ## 문제 풀이 : Resource Hacker로 해당 파일을 열어보겠다. Resource Hacker를 통해 확인해본 결과, 우리가 지우고자 하는 Nag의 아이디가 100번인 것을 알 수 있다. 이를 16진수로 변환하면 64이다. 이어서 Ollydbg를 통해 해당 프로그램을 실행해보겠다. 방금 찾은 Nag의 16진수 값이 64이므로 해당 값을 사용하는 명령어를 찾아보겠다. Ollydbg의 Search for All commands 기능을 통해 push 64를 검색해본 결과, 위와 같이 총..

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

이번 포스트에서는 레나 튜토리얼의 Level 15 문제에 대해 다루겠다. 문제를 실행하면 다음과 같다. ## 문제 해석 : 해당 프로그램을 실행하면 다음과 같이 2개의 Nag가 출력된다. 2개의 Nag를 제거하면 되는 것으로 보인다. ## 문제 풀이 : 먼저 Ollydbg를 통해 해당 파일을 열어보겠다. 해당 프로그램을 실행하여 Nag가 뜬 상태에서 정지하고 Call stack을 확인해보면 다음과 같다. JMP으로 시작하는 스택이 있다. 해당 스택을 자세히 확인해보겠다. 해당 위치에 BP를 걸고 실행한 다음에, ESP를 확인해보면 다음과 같다. ESP의 바로 윗부분에 CALL 명령어가 있다는 것을 알 수 있다. 해당 명령어는 윈도우를 출력하는 함수로 예상된다. 또한 더 위로 올라가면 JE 분기문이 존재한..

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)를 확인해보겠..