목록연구 자료 (42)
단디연구소
인텔의 IA-32구조에서 사용 되는 레지스터레지스터는 범용레지스터 8개, 명령 포인터(EIP), 세그먼트 레지스터, 플래그 레지스터 등으로 나뉜다.
시스템이 재시작 되거나 시스템이 다를경우 DLL이 메모리에 로드되는 위치가 변한다. 이러한 상황과 상관없이 API를 사용하기 위해서 커널 구조체를 이용해서 dll의 base 주소를 찾을수 있다 mov eax, fs:[eax+0x30] // PEBmov eax, [eax+0xc] // PEB_LDR_DATAmov eax, [eax+0x14] // .exe InMemoryOrderModuleListmov ebx, [eax] // ntdll.dll InMemoryOrderLinksmov ebx, [ebx] // kernel32.dll InMemoryOrderLinks mov ebx, [ebx+0x10] // ebx = kernel32.dll base address
import pefile pe = pefile.PE(file_path)machine_bit = pe.FILE_HEADER.Machine if machine_bit == 0x14c : print "x86" elif machine_bit == 0x200 : print "x64" winnt.h 머신 정보#define IMAGE_FILE_MACHINE_UNKNOWN 0#define IMAGE_FILE_MACHINE_I386 0x014c // Intel 386.#define IMAGE_FILE_MACHINE_R3000 0x0162 // MIPS little-endian, 0x160 big-endian#define IMAGE_FILE_MACHINE_R4000 0x0166 // MIPS little-endian#de..
PAC(프록시 자동 구성) 파일은 인터넷 또는 인트라넷에 대한 사용자 액세스를 제어하는 방법입니다. PAC 파일은 웹 브라우저가 요청된 콘텐츠를 검색하기 위해 ProxySG 어플라이언스를 사용해야 하는 시기와 사용 여부에 대한 지침을 포함하며, .pac 확장자가 있는 JavaScript 스크립트 파일입니다. 네트워크 관리자는 PAC 파일이 중앙에서 관리되며 업데이트가 쉽기 때문에 PAC 파일 사용을 즐겨합니다.네트워크 상의 웹 서버에 이미 PAC 파일이 있는 경우 네트워크 상의 모든 클라이언트에 대한 이 파일의 URL을 웹 브라우저 구성에 추가합니다. PAC 파일 위치를 정의하면 웹 브라우저가 웹 요청 처리에 대한 프록시 구성 지침을 검색 및 다운로드할 수 있습니다. - 출처 : https://bto.b..
리눅스에서 가상머신들 컨트롤 하는 libvirt 모듈에서 esx를 쓰려면 esx옵션을 추가해야 한다. * libvirt 설치apt-get install libpciaccess-dev libnl-dev libxml2-dev libgnutls-dev libdevmapper-dev libcurl4-gnutls-dev -y cd /opt wget http://libvirt.org/sources/libvirt-1.2.18.tar.gz tar xvzf libvirt-1.2.18.tar.gz libvirt-1.2.18 cd libvirt-1.2.18/ ./configure --with-esx=yes make make install ldconfig cd /opt
import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMEText me = "id@gmail.com"my_password = "pw"you = "id@mail.com" msg = MIMEMultipart('alternative')msg['Subject'] = "title"msg['From'] = memsg['To'] = you msg_text = 'this is mail'content = MIMEText(msg_text) msg.attach(content) s = smtplib.SMTP_SSL('smtp.gmail.com') s.login(me, my_password) s.sendmail(me, y..
윈도우 API를 이용할 일이 많은데 파이썬에서 ctypes라는 모듈이 있다는것을 알앗다. 이 모듈은 dll의 함수를 호출 가능 하게 하고 c 데이터 타입을 사용할수 있다. https://docs.python.org/2/library/ctypes.html # ctypes 형태의 타입을 마이크로소프트 타입으로 매핑from ctypes import * BYTE = c_ubyteWORD = c_ushortDWORD = c_ulongLONG = c_ulongLPBYTE = POINTER(c_ubyte)LPTSTR = POINTER(c_char) HANDLE = c_void_pPVOID = c_void_pLPVOID = c_void_pUINT_PTR = c_ulongSIZE_T = c_ulongHMODULE = c..
_KTHREAD 구조체 정보 0: kd> dt _KTHREADnt!_KTHREAD +0x000 Header : _DISPATCHER_HEADER (디스패처 해더) +0x010 CycleTime : Uint8B +0x018 HighCycleTime : Uint4B +0x020 QuantumTarget : Uint8B +0x028 InitialStack : Ptr32 Void (스택 시작 주소) +0x02c StackLimit : Ptr32 Void (스택 사용제한 주소) +0x030 KernelStack : Ptr32 Void (현 스택 사용 위치 포인터) +0x034 ThreadLock : Uint4B +0x038 WaitRegister : _KWAIT_STATUS_REGISTER +0x039 Runni..
_ETHREAD 구조체 정보 0: kd> dt _ETHREADnt!_ETHREAD +0x000 Tcb : _KTHREAD (스레드 동기화 개체) +0x200 CreateTime : _LARGE_INTEGER (스레드 생성 시간) +0x208 ExitTime : _LARGE_INTEGER (스레드 종료 시간) +0x208 KeyedWaitChain : _LIST_ENTRY +0x210 ExitStatus : Int4B +0x214 PostBlockList : _LIST_ENTRY (현 스레드가 참조하는 모든 오브젝트 목록) +0x214 ForwardLinkShadow : Ptr32 Void +0x218 StartAddress : Ptr32 Void (실제 스레드 시작 주소) +0x21c Terminatio..
_KPROCESS 구조체 정보 0: kd> dt _KPROCESSnt!_KPROCESS +0x000 Header : _DISPATCHER_HEADER (디스패처 개체마다 가지고 있는 해더) +0x010 ProfileListHead : _LIST_ENTRY +0x018 DirectoryTableBase : Uint4B (프로세스별로 관리 되는 가상 메모리의 CR3 레지스터의 값을 저장) +0x01c LdtDescriptor : _KGDTENTRY +0x024 Int21Descriptor : _KIDTENTRY +0x02c ThreadListHead : _LIST_ENTRY (프로세스가 가지고 있는 스레드 리스트를 가리킴) +0x034 ProcessLock : Uint4B (EPROCESS 접근 시 사용 될..