HANDLE OpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId); OpenProcess 함수는 실행되고있는 로컬 프로세스의 HANDLE 을 받아오는 역할을 한다. dwDesiredAccess 프로세스 객체의 접근 권한이다. 이 파라미터 MSDN : Process Access Right 에서 확인할 수 있으며 하나 또는 그 이상일 수 있다. bInheritHandle 이 파라미터의 값이 Ture 라면 이 프로세스에 의해 생성된 프로세스가 핸들을 상속받게된다. False 일 경우 프로세스는 핸들을 상속 받지 않는다. dwProcessId 핸들을 가져올 로컬프로세스의 식별자를 의미한다. 이 파라미터의 값을 GetCurrentPr..
Injection : 실행중인 다른 프로세스에 DLL 또는 Code 를 강제로 주입하는 기법 Dll Injection : Library 파일을 다른 프로세스에 주입하는 기법 Code Injection : 다른 프로세스의 Memory 영역에 Code 를 주입하는 기법 인젝션은 아래와 같은 이유로 사용된다. 기존 프로그램의 기능 개선 및 추가, 버그 패치를하기위한 용도 Message, API 후킹을 하기위한 용도 실시간으로 다른 프로그램을 감시하기위한 용도
라이브러리란 소프트웨어를 개발할때 사용되는 함수, 클래스, 상수, 자료형 등의 집합으로 이루어진 파일이다. 라이브러리는 코드의 재사용을 위해 사용되고있으며 다른 프로그램에 링크되어 사용되어진다. 프로그램에서 라이브러리의 함수등을 사용 및 호출할때는 피호출자의 주소를 알아야되는데 이 주소가 결정되는 때에 따라 정적, 동적으로 나뉘어지고 컴파일, 링킹 시점이 정적, 런타임 시점이 동적이 된다. 동적 링크 라이브러리(DLL) 은 라이브러리의 일종으로 마이크로소프트 윈도우에서 구현된 동적 라이브러리이다. DLL은 다른프로그램에서 불러와 사용할 수 있는 다양한 함수들과 클래스들로 이루어져있다. DLL 을 로드하는 방법은 두가지가 있다. 묵시적 링킹 (Implicit Linking) : PE 파일 자체에 어떤 DL..
나는 예제가 많이 제공되고있는 카카오의 지도 API 를 활용하였다. 지도의 생성및 활용법은 http://apis.map.kakao.com/web/ 에서 가이드를 따라하면된다. 여기서는 이전 게시글에서 활용및 수정하였던 대한민국행정구역 SHP 파일을 사용한다. FTP 경로에 이전게시글에서 만든 geoJSON 파일과 index.html, mapcontrol.js 를 업로드한다. 각 소스코드 파일들을 아래와 같이 작성한다. index.html mapcontrol.js var map; function Initialization(_map) { map = _map; } function DrawPolygon() { $.getJSON("geo.json", function(geojson) { var data = geoj..
네이버 부동산 지도를 알아보던중 행정구역을 폴리곤으로 그리면 된다는 방법을 알게되었다. 폴리곤을 그리기위해선 해당 지역의 좌표와 폴리곤이 필요했지만 고맙게도 아래 블로그에서 제공하고있었다. http://www.gisdeveloper.co.kr/?p=2332 대한민국 최신 행정구역(SHP) 다운로드 – GIS Developer www.gisdeveloper.co.kr 나는 이 블로그에서 시도 SHP를 다운로드받았다. 다운로드받은 SHP 파일은 매우 상세히 그려져있기때문에 폴리곤이 많아서 용량이 컷다. 이 문제를 해결하기위해 mapshaper 라는 사이트를 이용하여 폴리곤수를 줄일 수 있었다. mapshaper 사이트에서 다운로드 받은 SHP파일을 zip 형태로 업로드하거나 압축을 풀어 업로드할 수 있다. ..
봇을 이용한 게임해킹 [ 메모리 스캐닝에서 반응형 해킹까지 ] 라는 도서의 실습준비를 하는 글이다. 이책에서 제공하는 실습파일은 출판사인 에어콘 에서 다운로드 받을 수 있고, 책의 저자인 닉 카노 (Nick Cano) 의 깃허브에서도 다운로드 받을 수 있다. 압축을 풀고 /bin 폴더에서 실습프로그램을 실행하면 아래 사진과같은 에러가 발생하였다. 닉 카노의 깃허브페이지에서 폰트나 맵 로딩에 오류가 발생하면 arial.ttf 와 game.map 파일을 실행파일과 같은 디렉토리로 이동시킨 후 다시 시도하라고 한다. 그래서 옴긴뒤 실행하였더니 잘된다. 원글은 여기서 볼 수 있다.
typedef struct tagSTATSTG { LPOLESTR pwcsName; DWORD type; ULARGE_INTEGER cbSize; FILETIME mtime; FILETIME ctime; FILETIME atime; DWORD grfMode; DWORD grfLocksSupported; CLSID clsid; DWORD grfStateBits; DWORD reserved; } STATSTG; STATSTG 구조체에는 open storage, stream 또는 바이트 배열 객체에 대한 통계 데이터가 포함되어있다. 또한 이 구조체는 IEnumSTATSTG, ILockBytes, IStream 인터페이스에서 사용된다. pwcsName 이름을 포함하는 NULL 종단 유니코드 문자열에 대한 포인터..
프로그래밍을 하다보면 가끔씩 프로젝트에 관리자 권한을 부여해야되는 경우가 있다. 이 게시글에서는 포로젝트에 관리자 권한을 부여하는 방법에대해 설명한다. 1. 솔루션 탐색기에서 프로젝트를 우클릭하여 속성에 들어간다. 2. 보안에 들어가서 ClickOnce 보안 설정 사용을 체크한다. ClickOnce 보안 설정 사용을 체크하게되면 프로젝트의 프로퍼티에 app.manifest가 보이게된다. 3. app.manifest 를 열어, requestedExecutionLevel 을 아래와 같이 수정한다. ↓↓↓ 4. 2번에서 설정하였던 ClickOnce 보안 설정 사용을 체크 해제한다. ClickOnce 보안 설정은 기본 권한만 사용하기 때문에 체크 해제를 하지않을시 권한 설정이 제대로 되지않는다.
웹브라우저에서 컴퓨터에 설치되어있는 응용프로그램을 실행시키는 방법은 여러가지가 있지만 이 글에서는 Custom Url Schemes 를 사용하는 방법을 설명한다. Windows 에서 Custom Url Schemes 를 사용하려면 Windows 의 Registry 에 Url Scheme 를 등록해야한다. C# 에서 Registry 를 사용하기 위해선 Microsoft.Win32 네임스페이스를 사용해야하므로 아래와 같이 using 해준다. using Microsoft.Win32; RegistryKey 형식의 인스턴스에 CreateSubKey 메소드를 사용하여 인자값을 넘겨주고 반환값으로 초기화를한다. CreateSubKey 메소드의 인자값은 "http://" 나 "ftp://" 처럼 프로토콜로 사용된다. ..