본문 바로가기

소스

C로짠 Client Windows Socket 소스 C로짠 Client Windows Socket 소스입니다. #include #include #include #pragma comment(lib, "ws2_32.lib") #define IP "127.0.0.1" #define PORT 80 int main() { WSADATA wsaData; SOCKET client; SOCKADDR_IN serveraddr; char buf[1024]; WSAStartup(0x0202, &wsaData); printf("WSAStartup : %d\n", WSAGetLastError()); client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); printf("socket : %d\n", WSAGetLastError()); serve.. 더보기
Java 로 짠 Raw Socket 소스 웹서버에게 요청을 웹브라우저가 아닌 프로그램으로 해야될 경우가 있습니다. 그럴때 사용하는 프로그램에 대한 소스입니다. (Raw Socket) import java.net.*; import java.io.*; class raw_socket { public static void main(String[] args) { try { // Construct data String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8"); data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8"); // Creat.. 더보기
메일슬롯(MailSlot) IPC 통신 소스 /* MailRecevier */ #include #include #include #define SLOT_NAME _T("\\\\.\\mailslot\\mailbox") INT_PTR _tmain(INT_PTR argc, TCHAR *argv[]) { HANDLE hMailSlot; TCHAR messageBox[50]; ULONG_PTR bytesRead; //DWORD hMailSlot = CreateMailslot(SLOT_NAME, 0, MAILSLOT_WAIT_FOREVER, NULL); // mailslot 생성 if(hMailSlot==INVALID_HANDLE_VALUE) { _tprintf(_T("Unable to Create MailSlot!\n")); return 1; } _tprin.. 더보기
시스템 프로그래밍(System Programming)의 시작 시스템 프로그램(System Program) : 컴퓨터 시스템을 동작시키거나 하드웨어를 사용할 수 있도록 도와주는 프로그램 1. 컴퓨터 시스템의 주요 구성요소(Main Components) 컴퓨터 구조(Computer Architecture) : CPU 캐쉬(Cache) ↕ 운영체제(Operating System) : 메인 메모리(Main Memory) 하드디스크(Hard Disk) 2. 컴퓨터 구조 : 1) CPU : 중앙처리장치(Central Processing Unit) ALU(Arithmetic Logic Unit) : CPU 내부에 실제 연산을 담당하는 부분. 산술연산(+, -)과 논리연산(AND, OR)을 수행 컨트롤 유닛(Control Unit) : CPU 내부로 들어온 명령어를 해석해서 A.. 더보기
안티 디버깅(Anti-Debugging) 안티 디버깅(Anti-Debugging) : 디버깅을 방지하고 분석을 하지 못하도록 하는 기술. 디버깅을 당한다면 해당 디버거 프로그램을 종료시키거나 에러를 발생시키는 방법등 다양한 방법을 사용하여 분석을 방해한다. (참고 : 디버깅(Debugging) : 프로그램의 특정 부분에 Break Point를 설정한 후 실행을 하면 그 위치에 프로그램이 멈추게 되며 메모리에 값이 제대로 들어가 있는지, 코딩한 흐름대로 프로그램이 진행되는지 단계적으로 실행할 수 있다) 안티 디버깅 기술에는 수많은 방법들이 존재하며 계속 발전하고 있으며 이에 따라 이를 우회하는 기술도 계속적으로 발전하고 있다. CheckRemoteDebuggerPresent() Windows API Detecting Breakpoints by C.. 더보기
아이다(IDA)의 크로스레퍼런스 기능 - 지뢰찾기 맵핵 크로스레퍼런스 : 함수가 사용된 곳을 교차하여 참고할 수 있게 표시를 해주는 것 (참고 : 어떤 함수가 어디에서 또 쓰였는지를 찾기 쉽도록 표시를 해주며 Win32 API에 대해서는 심볼 함수 이름까지도 표현해준다. IDA의 가장 강력한 기능이라고도 할 수 있다) 지뢰찾기(winmine.exe)를 크로스레퍼런스 기능을 이용해 해킹해보도록 하겠다. 'C:\WINDOWS\system32\winmine.exe'를 IDA로 open한다. (참고 : 윈도우 기본 프로그램을 open할 경우 사용할 수 있는 디버거 정보가 담겨있는 심볼 파일을 IDA가 자동으로 연결하여 자세한 정보를 표현해준다. 설정법 : http://dakuo.tistory.com/entry/아이다IDA에-심볼-파일-연결하기) 함수 목록을 살펴본다.. 더보기