일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴퓨터 구조
- 보안
- 리액트
- 자바스크립트
- 인공지능
- CodeEngn
- html
- 웹해킹
- php
- 리버싱 워게임
- 리버싱
- 웹
- writeup
- 백준
- 백준 알고리즘
- MySQL
- 리눅스
- 워게임
- 알고리즘
- C언어
- abex crackme
- sql injection
- 해킹
- 어셈블리어
- 회귀 수식
- 리버싱 문제
- 머신러닝
- 넘파이
- webhacking
- webhacking.kr
- Today
- Total
목록crackme (2)
인공지능 개발일지
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번이 가장 어려웠다. 뇌피셜으로는 정말 문제 난이도가 그러하거나 툴에 익숙해져서 그렇게 느껴지는 건지는 모르겠지만 그냥 그..