Programming
-
80x86 asm 명령어Programming/Assembly 2008. 11. 17. 09:19
80x86 명령어 AAA - ASCII Adjust after Addition기능 : ASCII 코드로 된 두 디지트를 ADD 명령어가 더한후에 이용한다AAD - ASCII Adjust before Division기능 : AL과 AH에 있는 2개의 언팩 BCD 디지트를 이진수로 변환하기 위해 DIV 명령어 앞에서 사용한다AAM - ASCII Adjust after Multiplication기능 : MUL명령어가 2개의 언팩 BCD를 곱하고 난 후 사용한다.AAS - ASCII Adjust after Subtraction기능 : 두 디지트를 빼고 난후, AL에 있는 결과를 팩 BCD로 변환하기 위해 사용한다.ADC - Add with Carry기능 : 이 명령어 앞에서 CF=1인..
-
[C언어] 함수퍼인터를 사용해서 자기스스로 환경을 비교Programming/C 언어 2008. 10. 30. 10:19
#include using namespace std; // ForWindows9x() 나 ForWindowsNT()를 가르킬수있는 포인터타입 정의 typedef void (*SYSTEM_FUNC)(); void ForWindows9x(); void ForWindowsNT(); bool IsWindows9x(); void ImportantFunc(SYSTEM_FUNC pfnSyst); int main() { // 함수포인터 변수 SYSTEM_FUNC pfn; // 시스템 버전에 따라서 알맞은 함수를 가리키게 만든다 if(IsWindows9x()) { pfn = &ForWindows9x; } else { pfn = &ForWindowsNT; } // 중요한 함수호출 함수주소를 넘겨준다 ImportantFun..
-
[C언어] 2차원 배열포인터의 타입Programming/C 언어 2008. 10. 28. 12:49
1차원 배열의 포인터 타입을 결정할때 우리는 포인터의 자료형과 포인터 연산시 증가하는 바이트 크기가 같다 는것을 알고 있다.그럼 2차원 배열은 어떨까? 1차원 배열과 같을까? 이렇게 같으면 얼마나 좋으련만.. 그렇지가 않다.포인터의 자료형은 1차원배열과 마찬가지로 포인터가 가르키는 자료형과 일치하지만 포인터 연산시 증가하는 바이트의 크기가 틀리다. 같은 int형 배열이더라도 증가하는 값은 4byte로 동일한것이아니라 그때 그때 틀리다는 것이다.예를 들어 보자.int arr[3][2] = {1,2,3,4,5,6};위와같이 3*2배열이 있다.자료형은 당연히 int형일테지만 포인터 연산시 증가하는 값은 몇byte일까?확인하는 간단한 방법은 주소값을 출력하면 되겠죠printf("arr[0] : %d\n",arr..
-
16비트 65,000컬러 마스크 매크로 함수Programming 2008. 10. 24. 11:18
#define MASK_RED0xF800 #define MASK_GREEN0x07E0 #define MASK_BLUE0x001F #define MEC_RED (x)(( (x) &MASK_RED) >> 11) #define MEC_GREEN(x)(( (x) &MASK_GREEN) >> 5) #define MEC_BLUE (x)( (x) &MASK_BLUE) Short형 컬러 Red Green Blue 5 bit 6bit 5bit ex) char Red; char Green; char Blue; short Color; // 어떤컬러 값이 들어가있다 친다. Red = MEC_RED ( Color ); Green = MEC_GREEN ( Color ); Blue = MEC_BLUE ( Color );
-
VFW를 이용한 PC캠 설정하는 방법Programming/VFW 2008. 10. 23. 11:20
VFW, Video for Window는 Microsoft사에서 기본적으로 제공하는 영상녹화 라이브러리입니다. 영상녹화에는 DirectX의 Direct Show나 MPEG를 사용하는 방법도 있지만 일단 VFW쪽으로 설명하도록 하겠습니다. 제공되는 라이브러리인 만큼 MSDN에 VIDCAP이라는 예제가 제공되고 있으니 더욱 자세히 알고싶은 부분이 있다면 참고하세요. 우선 vfw32.dll에서 기본으로 제공하고 있는 함수 중 중요한 함수 2가지는 캡쳐 윈도우를 생성해주는 capCreateCaptureWindow() 와 capture Driver의 버전 정보를 가져다주는 capGetDriveDescription() 입니다. 다음은 캠을 화면에 표시해주는 순서입니다. ① 캡처된 화면을 보여줄 윈도우 영역 지정 m..
-
Window 에서 패킷 스니핑 프로그램. (TCP/IP 헤더부 출력)Programming/TCP/IP 2008. 10. 20. 15:57
pcap용 헤더파일과 라이브러리 경로를 추가후 win32 콘솔에서 작성 ///////////////////////// IP_Data.h ///////////////////////// #define ETH_ALEN 6 // 출발및 도착지 주소의 크기 정의 struct MEC_Ether_header { u_int8_t ether_dhost[ETH_ALEN]; // 도착지 이더넷 주소 u_int8_t ether_shost[ETH_ALEN]; // 출발지 이더넷 주소 u_int16_t ether_type; // 패킷 타입 ID 필드 }; #pragma pack(push,1) struct MEC_Ip_header{ unsigned char ip_hl:4; // 헤더 길이 unsigned char ip_v:4; /..
-
리눅스에서 특정 프로세스를 지정할 수 있는 패킷 스니핑 프로그램 제작하기Programming/TCP/IP 2008. 10. 20. 09:16
by Beist Security Research Group (http://beist.org) Members of Beist Research Group : beist and anonymous people Members of Beist Study Group : beist, dars21, obhacker, passion, p-jackpot, jacaranda, cina 요약: 본 문서는 유저 레벨에서 패킷 헤더를 분석하는 방법과 특정 프로세스를 지정하여 볼 수 있는 패킷 스니핑 프로그램을 구현하는 방법을 소개합니다. 1. 개요 이 문서는 리눅스 환경을 대상으로 작성되었습니다. 본 문서에서 다룰, 특정 프로세스를 지정하여 패킷을 스니핑할 수 있는 프로그램은 현재 실행 중인 프로세스와 실행 시킬 프로그램에서 발생..