부산IT학원/스마트컨트롤러
-
20140925부산IT학원/스마트컨트롤러 2014. 9. 25. 17:38
146일차 #include #define BITMAP_MAXSIZE(1024*768*3+10)#define XOFFSET280#define X_WIDTH_SIZE150 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);HINSTANCE g_hInst;LPCTSTR lpszClass=TEXT("First"); int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow){HWND hWnd;MSG Message;WNDCLASS WndClass;g_hInst=hInstance;WndClass.cbClsExtra=0;WndClass.cbWndExtra=0;Wn..
-
20140924 (비트맵 파일 구조)부산IT학원/스마트컨트롤러 2014. 9. 25. 09:12
145일차 -------------------비트맵 파일 구조------------------- 1. 파일 헤더typedef struct tagBITMAPFILEHEADER{ WORD bfType; // "BM"이라고 bitmap을 나타내는 값 저장됨 DWORD bfSize; // 바이트 단위로 전체 파일 크기 WORD bfReserved1; // 예약된 변수 WORD bfReserved2; // 예약된 변수 DWORD bfOffBits; // 실제 데이터 위치까지의 거리}BITMAPFILEHEADER; WORD (unsigned short) 2byte, DWORD (unsigned long) 4byte. 2. 이미지 헤더typedef struct tagBITMAPINFOHEADER{ DWORD biSi..
-
20140827 (메시지 맵, strrev, strupr, toupper, strlwr, tolower, strchr, strstr, strtol, strtoul, strod)부산IT학원/스마트컨트롤러 2014. 8. 27. 12:21
128일차 ------------------------------작성 중인 프로그램 작성 완료------------------------------ --- 메세지 맵 메시지 맵 매크로, 메시지 맵 알고르즘이라고 불리는데,ms사에 windows의 메시지를 받고 처리하는 방식을이 방식으로 하였다. 간략하게 설명하자면 새로운 함수를 추가할 때마다main함수의 소스를 수정해야 하는데,메시지 맵. 이 방식을 사용하면 추가 함수와 배열만 건드리면 된다. ex) #include void Func1(); void Func2(); void Func3(); void Func4(); void Func5(); int main() { int a; printf("1 ~ 5 중 입력 : "); scanf("%d", &a); if(..
-
20140826 (작성 중인 프로그램)부산IT학원/스마트컨트롤러 2014. 8. 26. 17:24
127일차 ---------------------작성 중인 프로그램--------------------- ------- 현재 작성 중인 프로그램은 windows loader 같은 프로그램이다. 새로운 프로그램을 불러 올 때마다 heap을 할당 받고,할당 받은 stack에 ESP를 위치하게 한다. data 영역은 0x2000 만큼 떨어져 있다고 한다. 그래서 우리가 받은 자료 t1.exe를 link 한 프로그램으로 돌리면 뻑이 났다.link /subsystem:console /entry:init /nodefaultlib /out:t1.exe /base:0x520000 init.obj monitor.obj t1.obj 이래 고치면 뻑이 안난다.->link /subsystem:console /entry:ini..
-
20140825 (다른 프로그램 실행 분석 프로그램 작성)부산IT학원/스마트컨트롤러 2014. 8. 25. 10:54
126일차 ---------------------------현재 작성 중인 프로그램--------------------------- ------- 진행 상황 "현재" 처럼 프로그램을 구현하였는데"수정" 으로 프로그램을 구현할 것이다. ------- 추가된 소스 --- 설명을 위해 임시로 추가한 소스 실행 전 상태이다. --- LDST(&temp) 호출 EIP가 code 주소를 가리키게 되면서 main 에서 불러온 t1.exe 를 실행하게 된다. --- t1.exe 에 inti.asm 코드 LDST(&status)가 호출되면서 STST()가 실행된 지점으로 돌아간다. ------- bzero 리눅스에서 사용가능 함수#include void bzero(void * s , size_t n); 바이트 스트링 s..
-
20140822 (다른 프로그램 실행 분석 프로그램 작성)부산IT학원/스마트컨트롤러 2014. 8. 22. 17:31
125일차 ------------------------------실행 파일 분석 프로그램 작성------------------------------ 소스 #include #include #include #include #define MAX_PROGRAM_SIZE 0x10000 typedef struct _context { unsigned int EFL; unsigned int EIP; unsigned int EDI; unsigned int ESI; unsigned int EBP; unsigned int ESP; unsigned int EBX; unsigned int EDX; unsigned int ECX; unsigned int EAX; }Context; static unsigned char * Mem;..
-
20140820 (PE 구조)부산IT학원/스마트컨트롤러 2014. 8. 20. 10:20
123일차 --------------PE 구조-------------- --- Dos HeaderDos와 호환용으로 있는 부분으로항상 64 byte 크기이며 안에 여러 구조체 멤버가 있는데, e_magic, e_lfanew 이 두 멤버가 가장 중요하고 나머지는 0으로 채워도 돌아간다.magic은 항상 아스키값으로 MZ를 나타내야 하고, e_lfanew 는 PE 헤더의 시작 점을 나타내고 있다. --- Dos stub가변적인 크기로 dos 모드에서 실행되는 것을 방지하기 위한 곳이라고 한다.가끔 바이러스 코드를 이 곳에 넣기도 한다고 한다. --- 각 구조체 C++typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader..