분류 전체보기
-
API HOOKINGIT창고/API 2007. 1. 22. 22:48
4~4기가의 가상주소 공간에섯 실행파일의 주소는 400000번지 이하에 있고 User32.dll의 주소는 77D304EA에 있다. 프로세서는 MessageBoxA를 호출하기 위해 77D304EA를 호출할것이다. 하지만 다른 dll이 먼저 올라와 있다면 다른곳으로 운영체제는 올려준다. 그러면 프로세스는 호출하는데 다른것을 호출할 것이다. 이것을 막기 위해 운영체제가 호출 주소를 바꿔준다. 하지만 운영체제또한 이것을 갯수에 따라 다 바꿔줄 수는 없다. .idata에는 Dll의 주소를 가지고 있다. 420000번지의 주소에 다른 함수의 주소를 가지고 있기때문에 운영체제는 420000번지의 .idata의 값을 바꿔주기만 하면 되는것이다. 이것을 이용해 API 후킹을 하는것. Ex>1번파일 .idata는 구조체이..
-
메시지 훅IT창고/API 2007. 1. 22. 22:47
키보드 입력 -> 디바이스 드라이버 ->SHICH->RIT->스레드 메시지 큐 ->GetMessage()-> 이 과정에서 중간에 화살표 방향을 한번더 다른곳으로 거치게 할수 있다. 메시지 빼는 방법에 따라 15가지 방법이있다. 1.Global후킹-시스템 전체에 건다 2.Thread후킹-하나한테 건다. 훅 필터 함수 : 후킹하는 함수 훅 체인 : 후킹하는 함수들이 여러개가 있을경우 하나의 훅의 끝을 다음 후킹 하는 함수로 연결시켜줘야 한다. #include #include LRESULT CALLBACK WndProc(HWND hwnd,UINT iMessage,WPARAM wParam,LPARAM lParam); typedef (*F1)(DWORD); typedef (*F2)(); TCHAR lpszClas..
-
메시치 처리함수 바꾸기IT창고/API 2007. 1. 22. 22:47
DLL을 만든다. 네이트온에 넣는다. 이렇게 내가 만든 Dll을 다른 프로그램에 넣는 것을 Dll인젝션이라 한다. 아래 목록... 네이트온의 윈도우 핸들을 구할 수 있다. 핸들을 구하면 프로세스 ID를 구할 수 있다. 아이디를 알면 프로세스의 핸들을 구한다. 소스는 네이트온의 네이트온 정보메시지를 바꾸는것이다. DLL을 이용한다. spy.cpp를 DLL프로젝트로 컴파일후 C:\에 복사해놓고.. 네이트온을 실행해보자.. 네이트온 정보창을 클릭하면 #include #include //Kernel32의 핸들을 구하는것..GetModuleHandle void DllInject(DWORD pid, char * path) { //process ID를 가지고 Process핸들을 얻는다. HANDLE hProcess ..
-
지역변수나 전역변수 없이 다이얼로그박스의 값을 가져옮IT창고/API 2007. 1. 22. 22:46
#include #include #include"resource.h" LRESULT CALLBACK WndProc(HWND hwnd,UINT iMessage,WPARAM wParam,LPARAM lParam); //사용자가 만드는 다이얼로그 메시지 처리 함수 BOOL CALLBACK DlgProc(HWND hDlg , UINT msg, WPARAM wParam, LPARAM lParam); //dialogBoxParam()을 쓰기 위해서는 구조체가 필요하다. typedef struct _DLGDATA { int x; int y; }DLGDATA, *PDLGDATA; TCHAR lpszClass[] = TEXT("first"); int WINAPI WinMain(HINSTANCE hInstance, HIN..
-
자식윈도우 만들기/수정하기IT창고/API 2007. 1. 22. 22:45
/*/================================================================================= 1. 버튼 , 메뉴, 스크롤 등 결국 윈도우이다 2. 자식은 부모에게 통보를 한다. WM_COMMAND(통신코드)(버튼클릭같은) 3. 부모는 자식에게 메시지를 보낸다.(형태변환같은) 4. 자식은 자신이 그려지기 전에 부모에게 컨트롤 권한을 넘긴다. (WM_CTLxxxxxxx); 5. 부모는 자식이 보내준 권한을 가지고 자식이 그려질 형태를 수정한다. //=================================================================================*/ //자식(버튼)이 부모에게 WM_COMMAND를 보낼때..