일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹
- 리액트
- 넘파이
- 인공지능
- 리버싱 문제
- 보안
- C언어
- 웹해킹
- webhacking.kr
- 워게임
- 백준 알고리즘
- 해킹
- 컴퓨터 구조
- 리버싱 워게임
- writeup
- 알고리즘
- abex crackme
- html
- 백준
- 머신러닝
- php
- sql injection
- 리눅스
- CodeEngn
- webhacking
- MySQL
- 회귀 수식
- 어셈블리어
- 자바스크립트
- 리버싱
- Today
- Total
목록보안 (25)
인공지능 개발일지
파일을 실행시키니 아래와 같이 파일을 찾을 수 없다는 창이 뜬다. 그럼 파일을 찾으면 풀리는 문제인가 보다. Ollybdg에 들어가서 확인해봤다. 그러자 아래 4 부분이 눈에 띈다. 1. 차례로 실행시키다 보면 제일 위의 빨간 박스에서 2,3,4 부분은 건너 띄고 바로 아래 Hmmm~으로 이동한다. 2. 그리고 Filename이 abex.l2c라는 게 눈에 띈다. 3. 이 부분이 우리가 띄어야 하는 부분이다. 4. 여기가 오류 메시지를 출력하는 부분이다. 전체적으로 봤을 때 아래 파란 박스를 눈여겨봐야 한다. 파란 박스에 GetFileSize로 eax에 파일의 길이를 리턴하고 GetFileSize 왼쪽 아래 라인에서 CMP EAX, 12를 볼 수 있다. 이때 12는 16진수여서 10진수로 길이가 18자리..
2번을 실행하면 아래와 같이 뜬다. 그리고 아무거나 입력해봤다. 그러자 아래와 같이 Wrong Serial이라고 뜬다. 정해진 Seriala 값이 있나 보다 생각하고 ollybdg에 들어가서 열어준다. 그러면 아까 봤던 창을 띄우는 코드가 눈에 띈다. 그리고 아래 코드를 실행시켜 보면 1,2,3번 차례로 실행되는 게 아니라 1번에서 3번으로 2번을 건너 띈다. 자세히 보면 1번에서 TEST AX AX로 위에서 push한 것을 받는 걸 보니 CALL ~라인이 함수를 호출하는 건가 하고 추측할 수 있다. 그래서EDX와 EAX가(Name과 Serial) 스택으로 가고 파란색 박스에서 보이듯이 JE 명령어로 이 두 개를 비교해서 3번으로 점프하고 있다. 그러면 crackme 1번처럼 JE를 JMP로 바꿔줘도 풀..
들어가기 앞서서 4문제를 풀면서 어셈블리어가 이런거구나 느꼈고 문제 구조가 아래와 같이 일반화할 수 있었다. ※ abex crackme 한정 Step 1. ollybdg에 들어가서 한 줄씩 혹은 문자열을 검색해서 실행시킨다. Step2. 위 과정을 통해 특이점이 있는 라인을 찾는다. Step 3. 그 라인들끼리의 관계성을 찾는다. Step 4. 거기서 Fix 할 부분 찾고 고치기 (보통 Step1에서 프로그램을 실행시킬 때 나왔던 문자열과 뜨게 해야 할 문자열을 찾는다) 그리고 이건 개인적인 생각인데 1~4번까지 갈 때 1,2,3,4번 순으로 어려운 게 아니라 4,3,2,1 순으로 1번이 가장 어려웠다. 뇌피셜으로는 정말 문제 난이도가 그러하거나 툴에 익숙해져서 그렇게 느껴지는 건지는 모르겠지만 그냥 그..
1. 어셈블리어란? 한마디로 어셈블리어는 특정 프로세스에만 있는 Thread나 registers 혹은 I/O를 직접적으로 접근하고 컨트롤할 수 있다. 이는 기계어보다 조금 위의 low level 언어이다. 아래 그림에서는 이진수와 코드 가운데 위치한다. +레지스터란? CPU의 요청을 처리하는 데이터의 임시공간입니다! (tmp 같은같은 아이라고 볼 수 있죠) 그래서 CPU는 연산 레지스터란 저장공간이라고 생각하면 됩니다. 2. 왜 쓰는가 이는 유지, 보수가 어렵지만 적은 용량, 빠른 속도와 더불어 원하는 대로 직접적인 컨트롤을 할 수 있다는 장점이 있다. 3. 문법 종류 어셈블리어에는 Intel 문법(Window)과 AT&T 문법(Linux)이 있는데 Intel 문법이 주로 사용됩니다. 차이점은 Intel..