1. 비정상적인 상황에서 남기는 로그. 비정상 적인 상황을 만든 값들과, 주변 정보를 모두 기록하도록 한다. 이런 경우는 무조건 로그를 남겨야 한다. 그래야 기록된 정보를 토대로 발생한 원인을 추적해 수정하기 쉬워진다. 로그를 남기고 처리를 멈추었을 때, 해당 처리가 요청 되기 전으로 모든 상황을 되돌려야 한다. 복원을 수동으로 하려는 것은 좋지 않다. 만들기도 어렵고 모든 상황마다 만드는 것은 시스템을 복잡하게 만든다. 그래서 throw로 예외를 발생시키고, 스택 되감기 하는 것이 더 좋은 선택이 되기도 한다. 물론 그렇게 하기 위해서는 소멸자에서 예외가 발생하지 않도록 하고, 생성자에서 예외가 발생했을 때도 메모리가 새지 않도록 하는 것을 잊지 말아야 할 것이다. 2. 비정상적인 입력 서버라면 클라이..
1.요약 API hooking 하는 방법 중에 Dll을 바꿔버리는 방법을 알아보고 구현시 주의점을 알아봅니다. 2.본문 [API hooking은 무엇인가?] 특정 API를 주시하고 있다가 누군가 그 API를 호출하면 중간에 개입하고자 함입니다. 메시지가 나올때나 윈도우가 생성될 때, 통지받을 수 있는 Windows Hook 과는 달리 공식적으로 문서화된 방법은 없습니다. [ 왜 API hooking을 하는가? ] 다른 프로그램이 API를 어떻게 사용하고 있는가 지켜보려고.. 내 프로그램의 디버깅을 목적으로.. (Deadlock detection이 좋은 예가 되겠네요..) [ API 는 어떻게 hooking 하는가? ] 1. Import Address Table을 바꿔치는 방법. 이 방법은 이 글에서 다룰..
traceroute는 자신의 컴퓨터가 인터넷을 통해 특정 컴퓨터를 찾아가면서 거치는 루트 (각 홉마다 거치게 되는 게이트웨이 컴퓨터)를 기록하는 유틸리티이다. 이것은 각 홉에 걸리는 시간의 합을 계산하여 표시해주기도 한다. traceroute는 인터넷상에 문제점이 있는 네트웍을 파악하고, 또한 인터넷 그 자체에 대해 좀더 자세한 느낌을 갖게 하는 두 가지 목적을 위해 편리한 도구이다. 다른 유틸리티로서 핑이 있는데, 이는 특정 호스트가 현재 네트웍 상에 존재하는지를 알기 위해 traceroute를 쓰기에 앞서 자주 사용된다. traceroute 유틸리티는 윈도우95/98/NT, 유닉스 기반의 시스템을 포함한 여러 종류의 운영체계에 포함되거나, TCP/IP 패키지의 일부로서 딸려 나온다. 만약 자신의 시스..
(그림 2)는 유닉스와 라우터에서 traceroute를 수행하는 과정이다. 유닉스·라우터에서의 traceroute는 윈도우 계열 OS와 달리 traceroute로 ICMP echo-request 대신 udp를 이용한다. 이때 포트 번호는 상대방이 사용하지 않을 것으로 예상되는 3만 번 이상으로 보낸다(화면 4). (화면 4) udp 포트 번호 3만번 이상의 패킷 물론, TTL 값을 하나씩 증가시켜 보내는 것은 윈도우 계열과 같은 방법이다. 이렇게 udp 3만번 이상의 포트로 패킷을 보내면 최종 목적지에서는 해당 포트 번호를 사용하지 않으므로 ICMP Destination Unreachable(Type:3 Destination unreachable, Code:3 Port unreachable)로 응답한다(..
(그림 1)은 윈도우 계열에서의 traceroute가 수행되는 과정이다. 윈도우 계열을 OS로 사용하는 컴퓨터는 ICMP echo request(Type:8 Echo request, Code:0)를 보낸다(화면 1). (화면 1) echo request 이때 TTL 값을 하나씩 증가시켜서 보내면 중간에 경유하는 라우터로부터 TTL exceeded라는 메시지를 받는다. TTL(Time To Live) 값은 라우터 하나를 거칠수록 1씩 감소하고, TTL 값이 0인 패킷을 받는 호스트는 ICMP 메시지인 TTL exceeded(Type:11 Time-to-live exceeded, Code:0 Time to live exceeded in transit)라는 메시지를 보낸다. 이를 근거로 TTL exceeded..
사실 이 책의 목차를 봤을 때만해도 흥미진진했던게 사실이다. 과연 베테랑 프로그래머들이 꼽는 Beautiful Code는 무엇일까? 내가 꼽을 Beatiful Code의 기준이 무엇이 될지도 흥미진진했던게 사실이다. 그런데 책을 읽으면 읽을수록 내가 기대하는 Beautiful보다는 Resolving에 가깝다는 느낌이 들었다. 어떤 문제를 해결 하기 위한(혹은 목표에 도달하기 위한) 과정을 코드로써 설명하고 있다는 느낌이 강하게 들었다. 다양한 분야의 개발자들의 코드를 묶은 것이다보니 내가 잘 모르는 언어로 표현된 것들이 있었지만, 대부분 어떤 의미를 내포하고 왜 그런 변화를 주었는지에 대해서 어느정도 이해가 되었기에 계속 읽어 나갈 수 있었다. 나처럼 정말 아름다운 코드가 무엇일까 라는 해답을 얻고자 한..
내 또래 남자 아이들중 안그런 아이들이 몇이나 있었겠냐만은, 나 역시 게임을 무척이나 좋아했다. 초등학교도 들어가기전인 6살때 친척형 손잡고 오락실에 간 이후로, 내 인생에서 게임을 빼놓고 이야기할 수 없을 정도 큰 위치를 차지해 버렸다. 처음 오락실에서 했던 게임은 속칭 탱크라 불리는 배틀시티였다. 나의 첫 게임 배틀 시티. 당시 내가 살던 동내 오락실에는 이 게임만 3대가 있었다. 중앙 하단에 위치한 독수리를 지키며 다른 탱크들을 제압하는 것이 목적인 이 게임은, 생각보다 재밌다. 중간 중간 빨간색으로 번쩍이는 탱크를 없앴때는 아이템이 생성되는데, 방어막, 독수리 보호, 미사일 발사 속도 향상 등의 효과가 있었던걸로 기억한다. 단순히 공격만 하는 것이 아니라 수비도 신경을 써야하고, 독수리를 내가 파..
- Total
- Today
- Yesterday
- 디버깅
- SQLite Spy
- c언어
- MS-SQL
- ruby
- 디자인 패턴
- 임백준
- NDC2013
- 게임개발포에버
- 루비
- ftp
- Rails
- 엘키
- EasyExec
- RoR
- 좋은 프로그래머
- EzShortcut
- 조엘 온 소프트웨어
- 루비 온 레일즈
- Ruby on Rails
- CppSQLite
- 리버스 엔지니어링
- TraceRoute
- perfmon
- 멀티스레드
- svn
- SDL
- 바로가기 프로그램
- TDD
- 게임데브포에버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |