본문 바로가기 메뉴 바로가기

mint & kiki 이야기

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

mint & kiki 이야기

검색하기 폼
  • 분류 전체보기 (229)
    • 개발관련 (150)
      • C (41)
      • C++ (2)
      • C# (11)
      • API (19)
      • MFC (15)
      • JAVA (4)
      • Visual Basic (0)
      • Network (8)
      • System (2)
      • DirectShow (0)
      • COM (0)
      • SDL (0)
      • Oracle (1)
      • DataStructure (0)
      • 소프트웨어 공학 (0)
      • Debug (10)
      • Site (1)
      • Info. (2)
      • WorkFolder (5)
      • Linux Server (2)
      • HTML (2)
      • Javascript (1)
      • PHP (6)
      • 한글2007 (0)
    • 캠핑 (8)
    • 여행 (33)
      • 국내여행 (5)
      • 해외여행 (28)
    • 디자인작업 (1)
    • 사용기 (6)
    • 라이프 (11)
    • 맛집 (18)
    • 사진작업 (0)
  • 방명록

개발관련/API (19)
반투명 윈도우 만들기....플랫폼 SDK

#define _WIN32_WINNT 0x0501 #define WINVER 0x0501 #pragma comment(linker, "/subsystem:windows") #include LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch( msg ) { case WM_CREATE: // 윈도우의 특정색을 투명하게 처리하고, 윈도우 전체에 반투명 효과를 준다. SetLayeredWindowAttributes(hwnd, 0, //투명처리할 색, 200, //불투명 정도(0, 255) LWA_ALPHA); return 0; case WM_LBUTTONDOWN: return 0; case WM_DESTROY:..

개발관련/API 2007. 1. 22. 22:50
마우스가 하는 행동을 다른 컴퓨터에서하는것을 자신컴에서 하는것처럼

#include "CalServer.h" #define WIN32_LEAN_AND_MEAN // windows.h 에서 자주 사용하지 않은 것은 컴파일에서 제외 한다. // winsock2.h외의 충돌을 막아 준다. #include #include #include #include// STL의 vector using namespace std; #pragma comment(lib, "ws2_32.lib") DWORD WINAPI MessageFun(void * mes) { SOCKET s = (SOCKET)mes; //클라이언트가 보내는 구조체를 수신한다. CALCPACKET packet; int total = sizeof(packet); // 수신해야 하는 크기 int current = 0;// 현재 수신..

개발관련/API 2007. 1. 22. 22:50
클립보드(Ctr+C)

#include #include void main() { char buf[256] = {0}; while(1) { printf("클립보드로 전송할 메세지를 입력하세요 : "); gets(buf); //*************************************************** //클립보드로 전송할 이동가능한 메모리를 할당. HANDLE hData = GlobalAlloc(GMEM_MOVEABLE,256); //핸들기반의 이동가능 메모리를 포인터로 변경한다. char * pData = (char *)GlobalLock(hData); strcpy(pData,buf); GlobalUnlock(hData); //***********************************************..

개발관련/API 2007. 1. 22. 22:49
WM_COPYDATA

#include #include LRESULT CALLBACK WndProc(HWND hwnd,UINT iMessage,WPARAM wParam,LPARAM lParam); TCHAR lpszClass[] = TEXT("first"); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmdLine, int nShowCmd) { AllocConsole();//콘솔창 생성 freopen("CONOUT$",//콘솔을 "wt",//text write모드로 stdout);//stdoutrhk 연결 //EnumFiles("C:\\"); MSG Message; //1. 위도우 클래스 만들기 (10가지를 다 정확히 입력하지 않으면 화면이 뜨지 않는다...

개발관련/API 2007. 1. 22. 22:49
테이티브 API/NativeAPI

윈도우 2000 아키텍쳐 kernel32.dll에 CreateFile()이 있다. Ntdll.dll이라는 파일이 있다. 위의 dll은 사용자 공간에 있다. kernel32.dll의 CreateFile()을 부르면 Ntdll.dll이라는 파일의 NtCreateFile()함수를 부른다. 여기까지가 Win32 API공간이다. Ntdll.dll에는 천여개의 함수들이 있는데 API가 사용한다고 해서.. NativeAPI라고 한다. 윈도우 2000의 운영체제 파일은 NTOSKRN.exe 이다. 이 안에 들어있는 ZwCreateFile()함수를 불러서 하드에 파일을 불러들이는 것이다. Win32에서 커널공간을 부를수 있는 문을 cllgate라고 한다. 윈도우에선 Int2E 리눅스에선 Int80 Win32에서는 네이티..

개발관련/API 2007. 1. 22. 22:49
예외처리/GetExceptionCode()

#include #include int n = 0; void main() { int s; __try {/* s = 10 /n; printf("결과 : %d\n",s); */ char *p = 0; *p = 'a';//access violation(잘못된 메모리 참조) 결국 0xc00000005번 예외 } __except(1) { printf("예외발생 : 0x%0x\n",GetExceptionCode()); //에러 코드를 알고자 할때 GetExceptinCode(); } printf("프로그램 계속 실행\n"); } /*위 코드는 죽는다. 왜 죽을까?? 10을 0으로 나누는 명령은 DIV 10,0이다. CPU는 0으로 나눌수 없다는 것을 알고 트랩을 발생한다. ※트랩 : 인터럽트와 비슷하나 CPU가 발..

개발관련/API 2007. 1. 22. 22:48
API후킹 함수로 하기

#include #include // PE화일의 내용을 검색하려면 DbgHelp.dll 이 필요하다. #include "Dbghelp.h" #pragma comment(lib, "Dbghelp.lib") void Replace( HMODULE hModule, // .idata를 가진 모듈의 주소 PCSTR dllname, // Hooking 할 함수를 가진 DLL이름 PROC oldfunc, // 훅킹할 API 함수. PROC newfunc) // 바꿀 함수 { // 1. module 에서 .idata section 의주소를 찾는다. ULONG sz = 0; PIMAGE_IMPORT_DESCRIPTOR pImage = (PIMAGE_IMPORT_DESCRIPTOR) ImageDirectoryEntryTo..

개발관련/API 2007. 1. 22. 22:48
API HOOKING

4~4기가의 가상주소 공간에섯 실행파일의 주소는 400000번지 이하에 있고 User32.dll의 주소는 77D304EA에 있다. 프로세서는 MessageBoxA를 호출하기 위해 77D304EA를 호출할것이다. 하지만 다른 dll이 먼저 올라와 있다면 다른곳으로 운영체제는 올려준다. 그러면 프로세스는 호출하는데 다른것을 호출할 것이다. 이것을 막기 위해 운영체제가 호출 주소를 바꿔준다. 하지만 운영체제또한 이것을 갯수에 따라 다 바꿔줄 수는 없다. .idata에는 Dll의 주소를 가지고 있다. 420000번지의 주소에 다른 함수의 주소를 가지고 있기때문에 운영체제는 420000번지의 .idata의 값을 바꿔주기만 하면 되는것이다. 이것을 이용해 API 후킹을 하는것. Ex>1번파일 .idata는 구조체이..

개발관련/API 2007. 1. 22. 22:48
메시지 훅

키보드 입력 -> 디바이스 드라이버 ->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..

개발관련/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 ..

개발관련/API 2007. 1. 22. 22:47
이전 1 2 다음
이전 다음
공지사항
최근에 올라온 글
  • 다낭에서 그랩 쓰기
  • 베트남 다낭 여행 준비
  • 아파트 전자투표 시스템
  • 로또 번호 추천 사이트
최근에 달린 댓글
  • 저희 아파트에서 사용하려고⋯
  • 네~ 제작에 대한 별도 규정은⋯
  • 다시 확인 부탁드려요~
  • 댓글이 안보이는데 어쩌죠
Total
236,977
Today
0
Yesterday
17
링크
TAG
  • 아이로드
  • 그랩푸드
  • 번호추천
  • GrabFood
  • 강천섬
  • 잭핫
  • 괌 여행 준비물
  • 캠핑
  • 아파트전자투표
  • 태양광렌턴
  • 김포 한강신도시 카페 타이 맛집 브런치카페 다음엔 로제우동
  • 김포코딩과외
  • 오르토그릴
  • 몰디브 준비 사항
  • 아이로드i3
  • 여행계획
  • 김포돈가스
  • 하와이
  • 괌 4박5일 여행계획
  • 코딩과외
  • 동대표투표
  • 김포코딩교육
  • 어라운드빌리지
  • iroad
  • 팔현캠프
  • 쇼핑몰
  • 맛집
  • 대만 여행 계획 2박 3일
  • I3
  • iroadi3
more
«   2021/02   »
일 월 화 수 목 금 토
  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            
글 보관함
  • 2019/05 (3)

Blog is powered by Tistory / Designed by Tistory