일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 하이퍼 터미널
- SQL
- android studio
- mathemetica
- C++
- 0x
- Post
- mysql
- PORTG
- function
- 단축키
- php
- 월별 카운트
- halliday
- 파일존재
- Get
- 강좌
- application.mk
- 현재언어
- is_array
- cocos2d-x
- Call
- selectc
- unalias
- 점점변하는값
- array
- Join
- solution
- Java
- Avr
- Today
- Total
목록컴퓨터 이야기/Reverse Engineering (3)
코딩도사의 코드정리
이전 글과 이어서 이번엔 그냥 단순히 다른 프로세스에 DLL 파일을 집어넣는 작업을 해보겠습니다. DLL 파일은 아무 DLL 파일이든지 상관없으니까 #include #define MB_OUT MB_OK BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { HANDLE hThread = NULL; switch( fdwReason ) { case DLL_PROCESS_ATTACH : MessageBoxA(0, "dll 진입", "dll 진입", MB_OUT); break; } return TRUE; } DLL 프로젝트로 다음과 같은 코드를 넣고 컴파일을 합니다. 여기서 나온 파일을 dllproject.dll 라고 치고 c..
후킹은 원래 진행되어야하는 프로세스를 중간에 낚아채서 내가 원하는 코드를 집어넣는 작업을 말합니다. 다른 프로그램에서 MessageBox 를 호출 하는 순간을 잡을 수 있다. .!! 흥분되지 않습니까? Win32 API 하에서 다른 프로세스나 전역적으로 호출되는 API 함수를 후킹하는것을 API Hooking 이라고 함. 어디에 어떻게 쓰이느냐. 사람마다 응용하기 나름인데 디버깅 관점에서 보면 API 함수로 호출되는 파라메터의 값을 뿌려줄 수도 있고, 리버싱에서 보면 중간에 추가적인 기능을 다른 프로그램에 삽입할 수 있다는 것. 전체적인 구조를 보면 MessageBox 가 호출이 되면 my.dll 에 있는 MyMessageBox 가 호출 되고 MyMessageBox 의 형태는 MyMessageBox { ..
Reverse Engineering 이 뭐냐면... 소프트웨어 공학중에 하난데 이미 만들어진 프로그램을 역으로 풀어서 어떤 원리로 작동되는지 탐구하고 분석하는것을 말함. 순수한 학술 목적으로 발전할 수도 있지만 음지의 기술쪽으로 발달하면 흔히 말하는 크랙이나 키젠을 만들어내는쪽으로도 나올 수 있음. 주로 C/C++ 등으로 만든 Native Code 를 어셈블리어로 번역한 후 디버깅을 하면서 프로그램을 들여다 보는 쪽으로 나가지 않을까 생각중. 여러분 관심 있나요? ㅋㅋ 저도 잘 모르지만 잘해볼게요. 한 때 관심을 가지고 깔짝였는데 아마 깊이 있는 내용은 쓰지 못할거에요.