아래는 VC++ 6 에 STLport 4.6.2과 boost 1.31를 설치한 과정입니다.

STLport iostreams 을 사용하는 경우와 사용하지 않는 경우로 나눠서 설명하고 설치된 STLport를

이용해서 boost를 설치하는 방법을 적었습니다.



STLport 4.6.2 설치하기


1. STLport 다운받기

STLport는 http://www.stlport.org/download.html에서 받을 수 있습니다.



2. STLport 압축풀기

STLport-4.6.2.tar.gz 파일을 압축을 푼 다음 src 디렉토리로 이동한다.



3. Prepare

nmake -f vc6.mak prepare 를 실행하라고 INSTALL 문서에 써있습니다.

UNIX 계열 OS에서는 꼭 필요하지만(디렉토리를 링크시킨다거나) 윈도우즈에서는 꼭 필요하지 않는 과정 같습니다.

그래도 실행해주는 것이 좋겠습니다.



4. STLport 컴파일과 설치

STLport iostreams를 사용하는 경우와 사용하지 않는 경우로 나누어서 설명하겠습니다.


4-1. STLport iostreams를 이용할 경우

아래의 명령을 주면 STLport iostreams를 빌드하고 해당 디렉토리로 설치합니다.

copy 안 하시고 nmake -f 파일명 clean all 이런 식으로 하셔도 됩니다.


copy vc6.mak makefile

nmake clean all

nmake install


nmake install 후에 VC++이 C:\Program Files\Microsoft Visual Studio에 설치되어 있다면

lib, dll 파일은 C:\Program Files\Microsoft Visual Studio\VC98\Lib에

헤더 파일들은 C:\Program Files\Microsoft Visual Studio\VC98\Include\stlport

설치됩니다.


4-2. STLport iostreams를 이용하지 않을 경우

바이너리 파일이 필요없기 때문에 컴파일 과정이 없습니다)

stlport/stl_user_config.h 파일의 다음 부분의 주석을 지우고 stlport 디렉토리를 자신이 사용할 디렉토리에 옮겨서 사용합니다.

# define   _STLP_NO_OWN_IOSTREAMS   1



5. include 디렉토리 지정

VC++ 메뉴에서 Tools -> Options -> Directories 탭에서 Include Files 목록에 4-1이나 4-2의 stlport

경로를 지정해 줍니다. 여기서는 "C:\Program Files\Microsoft Visual Studio\VC98\Include\stlport"

이 됩니다.

라이브러리는 기본적으로 지정된 "C:\Program Files\Microsoft Visual Studio\VC98\Lib" 에 설치되기

때문에 설정해 줄 필요가 없습니다.


* 참고

  • nmake 실행에서 문제가 발생하는 경우
    VCVARS32.BAT를 실행하고 nmake를 실행하시기 바랍니다.
    install 에서 VC++ 설치 경로를 알 수 없다는 에러가 뜨는 경우 일 겁니다.
  • 4-1 과정이나 STLport를 사용해서 컴파일할때 "InterlockedXXX"관련 에러가 발생하는 경우
    플랫폼 SDK를 사용하시는 분들은 컴파일다가 에러가 발생합니다.
    stl_user_config.h 의 다음 부분에 있는 주석을 지우면 됩니다.
    # define _STLP_NEW_PLATFORM_SDK 1



boost 1.31 설치하기

아래 설치 방법은 STLport를 이용한 boost 라이브러리를 컴파일해고 설치하는 방법입니다.



1. boost 1.31 다운받기

http://www.boost.org 의 Download에서 다운로드 받는다. SourceForge로 연결되네요.

여기에서 boost_1_31_0.tar.bz2 와 bjam-3.1.9-1-ntx86.zip 를 받습니다.



2. 압축풀기

다운로드 받은 boost_1_31_0.tar.bz2 을 압축을 풉니다. bjam-3.1.9-1-ntx86.zip 안에 들어있는

bjam.exe를 압축을 푼 boost 디렉토리에 넣습니다.



3. bjam 실행하기

bjam에 install 옵션을 주고 실행시키면 C: 드라이브에 Boost라는 디렉토리를 만들고 include, lib 디렉토리에

헤더 파일과 컴파일한 lib, dll 파일을 복사합니다. stage라는 옵션을 주면 설치는 하지 않고 stage라는 디렉토리에

컴파일한 lib, dll 파일 생깁니다.

 

3-1. STLport iostreams를 사용하지 않는 경우

도스창에서 다음과 같이 입력하면 됩니다.

 bjam "-sTOOLS=msvc-stlport" "-sSTLPORT_PATH=STLport 헤더 파일 경로" install



3-2 STLport iostreams를 사용하는 경우

기본설정이 사용하지 않음으로 되어 있기때문에 따로 설정을 해주어야합니다. BUILD옵션에 stlport-iostream를

on으로 설정합니다. 이 경우에는 아래와 같습니다. (한줄로 적어야 합니다.)


bjam "-sTOOLS=msvc-stlport" "-sSTLPORT_PATH=STLport 헤더 파일 경로"

     "-sBUILD=release debug <stlport-iostream>on" install


4. VC++ 셋팅

STLport 설치의 5번 처럼 include, library 디렉토리를 지정해줍니다.

include 디렉토리는 "C:\Boost\include\boost-1_31"로 boost-1_31까지 지정합니다.

소스에서는 #include <boost/regex.hpp>이런 식으로 boost를 적어주어야 합니다.


* 참고

다들 알고 계실꺼라 생각합니다만 혹시 모르시는 분들이 있을까봐 아래 추가합니다.

include 디렉토리와 library 디렉토리를 설정하는 부분이 Tools -> Options -> Directories에만 있는 것은 아닙니다.

STLport나 boost 라이브러리는 설치가 안 되어있는 환경도 있으니 Project Settings에 지정해 놓는 것도 좋습니다.

그 프로젝트에 필요한 헤더파일 경로와 라이브러리 경로를 dsp 파일에 저장시킬 수 있니까 소스를 관리할 때

약간은 편하리라 생각됩니다.

저의 경우에는 VC++을 설치했을때 기본적으로 추가되어있지 않은 헤더파일 경로나 라이브러리 경로는 Project Settings에

지정합니다.


- 헤더 파일 경로 추가

C/C++ 탭에서 Preprocessor를 선택하시고 Additional include directories 에 헤더 파일 경로를 적어줍니다.

여러 경로를 적어 줄때는 comma(',')로 구분하고 적어주시면 됩니다.


- 라이브러리 파일 경로 추가 (라이브러리가 별도의 경로에 있을때)

Link 탭에서 Input을 선택하시고 Additionnal library path 에 라이브러리 경로를 적어줍니다.

마찬가지로 여러 경로를 적어 줄때는 comma(',') 구분하고 적어주시면 됩니다.

Posted by 노을삼킨별
,

네트워크 프로그래밍 관련 서적


1)열혈강의 TCP/IP 소켓 프로그래밍  -- 초보자를 위해 정말 잘쓰여진 책같다..

윈도우플랫폼 / 유닉스 플랫폼을 가리지 않고 잘 설명한책 

--초보자에게 강추한다


2)IT COOKBOOK 윈도우 네트워크 프로그래밍 : TCP/IP 소켓 프로그래밍

음 이책은 열혈강의보다 못하지만 윈도우 플랫폼에 대해 좀더 구체적으로 쓴책이다..

나는 이책을 사보지않았지만 소장할 만한 가치는 있는거 같다..


3)소리바다에서 한게임까지 TCP/IP 소켓 프로그래밍

지금 보고 있다 .. STL + API + 메세지 크래커를 알려는 사람은 볼만하다


4)Effective TCP/IP Programming : 네트워크 프로그램을 향상시키는 44가지 Tips

지금 보고있음


5)TCP/IP 프로토콜 2/E

TCP/IP프로토콜에 대해서 이해하기 쉽게 잘쓰여진 책이다.. 그림이 많아 이해하기가 쉽다

(이론서)


6)배틀넷 개발을 위한 Network Game Server Programming

지금보고있다.. 평이 좋음


7)UNIX Network Programming: Networking APIs: Sockets and XTI(Vol 1)-한국어판

한국어 판은 정말 개판이다..

커널을 알갱이라 하지않나 5장까지보다가 진도 안나감 .. 원서보는게 나음


8)Network Programming for Windows 2/E (한국어판)

이책도 볼만한 책이다 ...


9)WIN32 네트워크 프로그래밍

이책은 실력이 되면 봐야겠다 어렵네


10)C++ Network Programming Volume 2 : ACE와 프레임워크를 이용한 체계적인 재사용 기법

프로젝트 끝나면 봐야겠다 

Posted by 노을삼킨별
,

출처 : http://blog.naver.com/newcbs/40003099792


1 관련 서적 #

2 helper 툴 #

  • [http]tcpview - 현재 시스템이 떠있는 모든 TCP/UDP 포트와 그 포트를 연 프로그램 목록을 실시간으로 보여줍니다. win32 전용. 공짜. :D
  • [http]tdimon - 현재 시스템의 모든 TCP/UDP 입출력 상황을 실시간으로 보여줍니다. win32전용. 공짜. :D

2.1 웹부하 특정용 #

3 라이브러리 #

  • libnet 이야기 - 멀티플렛폼 패킷 조립용 라이브러리. 오픈소스.
  • libpcap 이야기 - 패킷 캡쳐 라이브러리. 오픈소스. libnet과 같이 쓰면 꽤 저급수준의 툴제작가능.

4 링크 #

5 개인 아티클 #

6 POSIX 쓰레드에 대한 것들 #

7 state thread #

8 데드레커닝 #

9 multiplexer #

9.1 epoll #

9.2 kpoll #

9.3 라이브러리 #

  • libevent 이야기 - 이식가능한 멀티플렉서 C 라이브러리. 알게모르게 많이 사용되는 듯 보이며, kqueue를 지원하므로 freebsd에서도 괜찮은 성능을 보일거라 생각됨. /dev/epoll 지원.
  • [http]http://liboop.org/ - liboop. POSIX기반의 운영체계를 위한 하위 수준의 이벤트 루프 관리용 C 라이브러리.

10 기타등등 #

11 broadcast #

  • spread 이야기 - 패킷 브로드캐스팅 환경을 제공하는 공개 데몬 프로그램. 아주 사용하기 쉬운 C API 제공. 같은 LAN상의 게임서버간 데이타 동기화에 어울릴만한 솔루션.

12 multicast #

12.1 프로토콜 #

13 VPN #

14 Grid computing #

15 QoS #

  • Quality of service의 약어로 사용자 또는 어플리케이션에 대해 중요도에 따라 서비스 수준을 차등화하여 한정된 WAN 대역폭에서 트래픽과 대역폭을 정책적으로 관리하는 제반 기술 및 개념을 말합니다. ACE에 관련 클래스를 제공하고 있는데 이에 대한 내용을 찾아보다가 관련링크를 올립니다.
  • 보통 고가의 라우터, 게이트웨이 솔루션도 많지만 ACE에서는 소프트웨어적으로 서버에 qos 기능을 첨가할 수 있는 AQOSA라는 API를 제공하더군요. ACE를 사용한 서버제작시 대역폭 제어에 활용할 수 있을 듯...
  • [http]http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/qos.htm - 시스코에 있는 QoS에 대한 설명글.
  • [http]http://www.taskqos.com/kor/technology/qos.html - 한글로된 qos에 대한 설명.
  • [http]http://msdn.microsoft.com/msdnmag/issues/01/04/qos/default.aspx - GQOS(Generic Quality Of Service)에 대한 설명.

16 codewhore 번역물 #

17 P2P와 NAT #

17.1 NAT 관련 #

18 ipv6 #

19 SCTP(Stream Control Transmission Protocol) #

20 프로토콜 문서 #

20.1 MSN 메신저 #

20.2 ICQ #

20.3 gnutella #

20.4 퀘이크(비공식) #

20.5 unreal #

21 recording #

  • 네트워크와는 조금 거리가 멀지만.. 일반적으로 패킷설계와 관련있어 넣어둡니다.
  • [http]http://www.planetquake.com/demospecs/ - 퀘이크를 비롯한 몇몇 게임의 recording 스팩들.

22 라이브러리 #


Posted by 노을삼킨별
,
- PE File Loader v1.0.1 로 업그레이드 되었다.

PE File Loader v1.0.1 SourceCode Download (174kB)
PE File Loader v1.0.1 Documents

'게임 개발' 카테고리의 다른 글

네트워크 프로그래밍 관련 서적  (0) 2004.07.07
네트워크 관련 링크(redwiki님 펌)  (0) 2004.07.02
Win32 Portable Excutable File Format - PE File Loader v1.0.0  (0) 2004.05.11
PE File Format  (0) 2004.04.22
PE File의 구조  (0) 2004.04.19
Posted by 노을삼킨별
,
- 드디어 PE File Loader v1.0.0이 완성되었다. ^^
아래에 소스와 실행파일 및 문서를 공개한다.

PE File Loader v1.0.0 SourceCode Download (163kB)
PE File Loader v1.0.0 Documents

'게임 개발' 카테고리의 다른 글

네트워크 관련 링크(redwiki님 펌)  (0) 2004.07.02
Win32 Portable Excutable File Format - PE File Loader v1.0.1  (0) 2004.05.13
PE File Format  (0) 2004.04.22
PE File의 구조  (0) 2004.04.19
Hacking and Hacking Tools  (0) 2004.04.02
Posted by 노을삼킨별
,

PE File Format

게임 개발 2004. 4. 22. 14:53
- PE File Format 때문에 잠이 오질 않는다. ㅡㅡㅋ 이유는.... 바이러스를 스캔하는데 필요한 스캔 기준과는 다른 해킹툴만의 다른 스캔기준이 필요한대, 바이러스는 특정 부분의 데이터 섹터를 조작해서 바꾸지만 해킹툴은 일반적인 App 프로그램이기 때문에 다른 스캔 기준이 필요한 것이다. 19일에 PE File 의 구조 부분을 정리했지만, 이젠 실제 데이터의 RVA(Relative Virtual Address) 의 정확한 위치의 주소값과 데이터 사이즈 부분에 대한 자세한 정보도 체크했다.

Section Header 의 정보를 통해서 실제 데이터가 들어있는 Section Body의 데이터 중에서 특정 데이터 부분을 스캔 기준으로 정해야 할 꺼 같은데... 음... 같은 파일을 재컴파일해도 항상 변하지 않는 데이터 부분을 스캔 기준으로 삼으려다보니 전부 일정한 패턴이 나오질 않아서 문제가 된다.

그래도, 그 중에서 제일 가깝게 접근할 수 있는 스캔 기준점은 .data 부분의 특정 Section Data 부분을 스캔 기준으로 삼는거라는 것은 변함이 없다. but.....
Posted by 노을삼킨별
,

PE File의 구조

게임 개발 2004. 4. 19. 14:50
 PE File Format 의 구조에 대한 부분과 Structure 에 대한 분석이 마무리 되었다. 문제는 실제 해킹 툴을 발견할 수 있게 하는 무엇(?)인가를 찾아야 한다. PE 파일을 누가 설계하고 만들었는지 모르지만... 구조가 조금 애매한 부분도 있다.  *^^*.   MZ HeaderPE Header 사이에 쓸데없는 빈 공간이 있다니... 정말 처음 접하는 사람은 해메일 수 밖에 없게끔 장난쳐둔(?) 느낌이랄까...


 
<PE File 의 구조>
는 크게 아래의 4개로 이루어진다.(WINNT.H 에 정의되어 있다.)

1. MZ Header(_IMAGE_DOS_HEADER) : 64 byte
    Old MS-DOS Header

  바로 이 부분에 MS-DOS stub
  < This program cannot be run in DOS mode >
  < This program must be run under Win32 > - 이걸 사용한 프로그램도 있다.

2. PE Header : 248 byte
  1) Signature "PE" : 4 byte
  2) _IMAGE_FILE_HEADER : 20 byte
  3) _IMAGE_OPTIONAL_HEADER : total 224 byte
    --> _IMAGE_DATA_DIRECTORY : 128 byte

3. Section Header(_IMAGE_SECTION_HEADER) : 40 byte * Section 갯수
  .text   .rdata   .data   .idata   .rsrc   .reloc .....
  각각에 SizeOfRawData 인자의 크기만큼 SECTION Table Data가 존재한다.

4. Section Body : _IMAGE_SECTION_HEADER의 SizeOfRawData 크기에 따라 달라짐


일반 Exe 파일들의 구조를 살펴보고, 해킹툴의 파일구조를 살펴본후 해킹툴만의 다른점을 찾아야 할 듯하다. 만약 다른점이 없다면.... ㅡㅡㅋ.

드디어 어제 금강기공사 홈페이지 대문을 만들었다. 아직 수정해야 할 께 산더미지만... 차근차근 해 나가는 맛이 있다.

오늘역시 3D 공부하고 일본어 공부를 소홀히 하고 있다. 분발하자.

Posted by 노을삼킨별
,
봄버맨에서 해킹과 관련해서 일본 허드슨과 대만의 플러톤에서 문제 제기가 있었나부다. 여기 관련해서 Packet 및 Execution File에 대한 CRC 체크와, 기존 봄버맨 패킷 암호화 부분과 JvCrypto를 비교해서 더 좋다고 생각되어지는 부분을 선정해서 적용하는 테스트를 해 봐야 할 듯하다. Process 체크해서 해킹툴을 잡아내는 것으로는 문제가 심각하다. 역시 상당히 난해한 부분이 아닐 수 없었다. 그래서 방법을 모색중이고 테스트중이다.

해커의 대부라고 불리우는 리차드 스톨먼(Richard Stallman)에 대해서 많은 부분을 자세히 알게 되었다. 그의 홈페이지에서 더 많은 자료를 얻을 수 있다.

http://www.stallman.org/
Posted by 노을삼킨별
,