일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- php
- 인공지능
- 백준
- 컴퓨터 구조
- 넘파이
- 알고리즘
- 백준 알고리즘
- 워게임
- CodeEngn
- 리버싱
- sql injection
- 회귀 수식
- C언어
- webhacking
- 리버싱 문제
- 웹해킹
- html
- webhacking.kr
- 해킹
- MySQL
- 어셈블리어
- 리버싱 워게임
- 자바스크립트
- abex crackme
- 머신러닝
- 웹
- writeup
- 보안
- 리눅스
- 리액트
- Today
- Total
목록Reversing (2)
인공지능 개발일지
요즘 들어 미뤄왔던 것들을 하나씩 하고 있다. 11월에는 좀 열심히 했는데 요즘은 좀 풀린 것 같아서 조금 더 분발해야 할 것 같다. 그리고 이번 방학에는 프로젝트보다는 인공지능이랑 알고리즘 공부로 기본기를 좀 쌓아야겠다. 조만간 11월에 한 프로젝트(를 가장한 셀프피드백) 정리 포스트를 올리겠습니다:) 1. 문제 분석 4번 문제를 들어가면 3번 문제와 비슷하게 디버거 탐지 "함수명을 물어보는" 문제이다. 이 04.exe 프로그램에는 디버깅을 탐지하는 기능이 있어서 실제로 그냥 실행시켜 보면 아래와 같이 정상이라고 출력되고 Ollydbg 같은 디버깅 툴로 열어 보면 디버깅당함이라고 뜬다. 여기서 문제는 어셈블리 코드 중에서 디버거 프로그램을 탐지하는 함수를 찾고 추가적으로 디버깅 툴로 열어도 정상이라고 ..
4번 프로그램을 실행시키면 아래와 같이 뜬다. 위 입력 프롬프트에 아무거나 입력하고 Registered를 누를려니까 버튼이 활성화되지 않는다. 그래서 ollydbg로 열어봤다. 눈에 띄는 문자열들은 아래와 같이 시리얼 값이 맞을 때 출력할 문자들이 있다. 다음으로 눈에 띄는 것은 vbaStrCmp함수이다. Cmp니까 미리 정해진 시리얼 값이랑 비교하나 보다. 그리고 해당 라인에 중단점을 잡고 실행시키면 창이 다시 뜬다. 여기서 흥미로운 건 아래 창이 떴을 때 아무것도 입력하지 않았을 땐 활성화되지 않던 창이 한 글자만 입력해도 레지스터에서 아래와 같이 유니코드 값이 나타난다. 힌트로 보이는 위 숫자를 Serial칸에 입력하자 아래와 같이 Registered가 활성화되며 풀린다.