Dockerfile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 FROM ubuntu:latest ARG DEBIAN_FRONTEND=noninteractive ENV USER user1 ENV TZ=US/Denver RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN sed -i'' 's/archive\.ubuntu\.com/us\.archive\.ubuntu\.com/' /etc/apt/sources.list RUN apt-get update RUN apt-get ins..
테스트 환경 Ubuntu 18.04 Python 2.7 사전 설정 sudo pip install selenium sudo pip install selenium-requests Chrome 및 Chrome Webdriver 설치 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 #!/usr/bin/python from seleniumrequests import Chrome from selenium import webdriver PAGE_LIST = { 'entry':'http://192.168.1..
Visual Studio WDK 설치 방법 : https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk ---------------------------------------------------------------------------------------------------------------------------- WDK가 잘 설치되었으면, Visual Studio 2019 - Create a New Project를 했을 때 아래처럼 Visual Studio Driver Kit 템플릿이 보여야 한다. 근데 Driver와 관련된 템플릿이 하나도 안 보여서 이것때문에 재설치하는 삽질을 겪었다. 그래서 찾아보니 WDK가 잘..
Exception이 발생한 경우 x64dbg에서 Exception이 발생하면 Exception이 발생한 부분에 브레이크가 설정된다. x64dbg의 가장 하단의 창에 위 사진과 같이 Exception이 발생했는지 나오고 어떤 Exception인지 설명해준다. 보통 ACCESS_VIOLATION 등 심각한 Exception과 별도의 예의 처리가 되지 않은 Unhandled Exception은 Debugger가 Exception 이벤트를 따로 등록하지 않기 때문에 이러한 예외 상황에서 브레이크가 걸린다. 하지만 일부 Exception에 대해서는 브레이크 때문에 디버깅이 귀찮아지는 상황이 발생한다. 이런 경우, Ignored Exception을 설정하면 된다. Ignored Exception 설정 방법 1. O..
Prefix Prefix Kernel component Cm Configuration manager Ex Executive Hal Hardware abstraction layer Io I/O manager Ke Kernel core Mm Memory manager Ob Object manager Po Power manager Tm Transaction manager Se SRM (Security Reference Monitor) Nt and Zw Native system services Nt와 Zw의 경우, 커널 모드에서 직접 API를 호출하거나 사용자 모드에서 System Call을 호출하여 해당 API에 접근할 수 있다. 이 때, Previous Mode로 이전에 어디에서 해당 함수를 호출하였는지 체..
현재 Windows OS가 32비트인지 64비트인지 확인하는데 왜 현재 프로세스 핸들로 IsWow64Process 함수를 호출하는 걸로 현재 프로세스의 아키텍쳐를 확인하는 코드만 나올까... 시스템 프로세스의 핸들이면 이해하겠는데 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 BOOL IsWin64() { SYSTEM_INFO sys_info; GetNativeSystemInfo(&sys_info); WORD wArch = sys_info.wProcessorArchitecture; if (wArch == PROCESSOR_ARCHITECTURE_AMD64) return TRUE; else if(wArch == PROCESSOR_ARCHITECTURE_INTEL) return FALSE; ..
보호되어 있는 글입니다.
개요 본래 프로세스끼리는 서로의 고유 영역에 접근이 불가능하다. 하지만 IPC(Inter-Process Communication) 통신을 이용해 프로세스간 통신을 할 수 있다. 이 때 IPC를 사용하면 프로세스간 Read/Write를 하는 것이다. 하지만 RPC(Remote Procedure Call)는 이름 그대로 원격에서 프로시저(Procedure)를 호출할 수 있다. 따라서 RPC를 사용하면 프로세스간 Execute를 하는 것이다. RPC 통신 구조 ... API 목록 공통 API UuidFromString : Uuid 형태의 문자열을 Hex 값 Uuid로 변환 반환값 : RPC_STATUS 타입의 결과 값 첫 번째 인자 : StringUuid, Uuid 형태의 문자열 주소 두 번째 인자 : Hex..
보호되어 있는 글입니다.