일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자바스크립트
- dreamhack reversing
- 제주ICT
- 드림핵 플래그
- adb 옵션
- 안드로이드 adb
- 드림핵 리버싱
- 웃긴 파이썬
- 위니브
- 안드로이드 리버싱
- 강의 체험단 1기
- 오블완
- 인프런 강의 추천
- 안드로이드 adb start-server
- adb
- 깃허브 블로그 만들기
- 제주코딩베이스캠프
- 티스토리챌린지
- 리버싱 플래그
- 자바스크립트 강의
- 깃허브 블로그
- 잔디 심기
- 리버싱
- 인프런 파이썬 강의
- 깃허브 포트폴리오
- 더오름
- 안드로이드 모바일 앱 모의해킹
- 간단한 깃허브 블로그
- 인프런 깃허브 강의
- 파이썬
- Today
- Total
목록리버싱/리버싱 핵심 원리 (6)
해보자고

1. Visual Basic 파일Microsoft의 설명을 참조해보면, Visual Basic은 Microsoft에서 개발한 프로그래밍 언어로, 간편하게 .NET 앱을 만들 수 있습니다. 기사를 보면 .NET으로 만들어진 악성코드와 관련된 이야기를 뺴 놓을 수 없습니다. 그렇다면 .NET은 무엇일까요? .NET은 Microsoft 에서 출시한 윈도우 프로그램 개발 및 실행 환경입니다. 크로스 플랫폼을 지원하여 다양한 OS에서 실행이 가능하고, 패키징, 난독화 도구가 많아 공격자가 많이 사용한다고 합니다. 간단하게 이런 배경 지식을 깔고 가면 쉽게 Visual Basic 파일이 무엇인지 유추할 수 있습니다. 말 그대로 Visual Basic 언어로 만들어진 파일이겠죠. 2. VB 전용 엔진리버싱을 ..

# 학습 목표- 7장 : 스택 프레임7. 스택 프레임7.1 스택 프레임함수의 시작과 같은 어떤 기준 시점의 ESP 값을 EBP에 저장하고 이를 함수 내에서 유지해주면, 자주 변하는 ESP 값에도 EBP를 기준으로 안전하게 함수의 변수, 파라미터, 복귀 주소에 접근할 수 있다.스택 프레임을 활용하여 함수 호출을 관리하면 함수 호출 depth가 깊고 복잡해도 스택을 완벽하게 관리할 수 있다. 7.2 StackFrame.exe 예제 7.2.0 간단한 설정+) 간단한 함수의 경우 스택 프레임을 생성하지 않는 최적화 옵션이 있으니 이를 빌드 전에 꺼준다. (디버그 - 속성 - 구성 속성 - C/C++ - 최적화 ) +) ollydbg 에 올렸을 때 401000 주소가 없는 경우에는 주소를 계속해서 바꿔주는 ..

# 학습 목표 - 6장 : abex' crackme #1 분석 6. abex' crackme #1 - EP 코드가 매우 짧음 => 어셈블리 언어로 만들어진 실행 파일. (개발툴을 사용하면 내가 작성한 소스코드 외의 Stub Code가 추가되기에 디스어셈블시 복잡해보임) 6.1 코드 및 사용 API/함수 이해 1) MessageBoxA() : - 형식 int MessageBoxA( [in, optional] HWND hWnd, [in, optional] LPCSTR lpText, [in, optional] LPCSTR lpCaption, [in] UINT uType ); - 4개의 인자로 메시지 박스 생성. - Style, Title, Text, h0wner 의 순서대로 uType, lpCaption, l..

# 학습 목표 - 4장: IA-32 Register 기본 설명 - 5장: 스택 4. IA-32 Register 기본 설명 4.1 CPU 레지스터 레지스터: CPU 내부에 존재하는 다목적 저장 공간. 따라서 고속으로 데이터 처리가 가능. 4.2 IA-32 레지스터 4.2.1 Basic program execution registers 1. 범용 레지스터 (General Purpose Registers) - 범용적으로 사용되는 레지스터 - 32비트(4바이트) // 교재 참고 - AX: 주로 계산할 때 사용. EAX는 주로 함수 리턴 값에 사용. 모든 Win32 API 함수들은 리턴 값을 EAX에 저장 후 리턴. - BX: 메모리 주소 계산에 사용 - CX: 반복문에서 몇 번째로 반복하고 있는지 기억할 때 사..

# 학습 목표 - 2장: Hello Wordl! 리버싱 - 3장: 리틀 엔디언 표기법 2.5 문자열 패치 2.5.1 문자열 패치의 두 가지 방법 1. 문자열 버퍼를 직접 수정 목표: 메시지 박스의 Hello World! 문자열을 다른 문자열로 변경하기. - 저번에 bp를 건 후 메시지박스의 위치를 찾는다. 책에서는 PUSH (주소값)의 형태였지만 ollydbg에서는 Hello World의 주소값을 알 수 없어 그냥 올리디버거의 기능을 활용하였다. - Follow dump -> selection - 덮어씌우고자 하는 영역에 ctrl + E - 유니코드는 알파벳 한 글자당 2바이트가 필요함. - 원본 문자열보다 큰 문자열을 덮어쓸 때는 뒤의 데이터 훼손에 주의해야 한다. 중요한 데이터가 있다면 프로그램에서 ..

+)책과는 다른 디버깅툴을 사용하고 있으니 참고바란다. 다만 리버싱 초보라 언제든 툴이 바뀔 수 있다...... # 학습 목표 - 1장 : 리버싱을 시작하기에 앞서 어떠한 태도로 리버싱에 접근할 것인가? - 2장: Hello Wordl! 리버싱 (문자열 패치 이전까지) --------- # 리버싱 스토리 1.1. 리버스 엔지니어링 (RE:역공학) - 기계장치, 시스템 등의 구조, 기능, 동작 등을 분석하여 원리를 이해하며, 단점은 보완하는 등의 일련의 작업 1.2 리버스 코드 엔지니어링 (RCE) - 소프트웨어를 리버싱 관점에서 상세하게 분석한다는 의미. +) 딱히 정확한 용어가 통일되지 않아, RCE, RE, 역공학 등 혼용되고 있음. 1.2.1 리버싱 방법 1) 정적 분석 파일을 실행시키지 않고, 파..