검색결과 리스트
분류 전체보기에 해당되는 글 710건
- 2009.10.18 원고....
- 2009.08.15 온라인 게임 보안툴 분석 1
- 2009.05.21 병렬처리 개발의 모든것 Intel Parallel Studio 리뷰(Part1. Composer)
- 2009.04.20 스킨 변경중... 1
- 2009.02.13 Boost 1.38.0 Test만 빌드하는 방법
- 2009.02.12 위메이드, 쯔바이 온라인 퍼블리싱 계약 체결!! 4
- 2009.02.10 Visual Studio 2005 단축키 설정이 제대로 바인딩 안될때 해결방법 3
- 2009.01.28 테크니컬 라이터를 꿈꾸는 사람에게 어울리는 책-명쾌한 이공계 글쓰기 1
- 2009.01.28 마이크로마우스 Jina의 캐릭터 LCD(LC1621) 제어 소스 공개
- 2009.01.15 OpenSSL 0.9.8j Window에서 빌드 방법
글
Technical Article 2009. 8. 15. 10:21온라인 게임 보안툴 분석
게임 서버 프로그래머이지만 게임을 개발하는 사람으로써 우리가 원하는
컨텐츠를 사용자가 즐기는데 있어서 장애가 될만한 요소를 제거하는것이
의무가 아닐까?
서비스를 하게되면 일반적으로 게임전용 보안툴을 클라이언트와 같이 배포하게
되는데 정식 서비스를 하면서 게임 보안용 툴을 설치하지 않는 클라이언트는
별로 없을 것이다.
최근 몇가지 보안툴의 분석을 통해 알아본 몇가지 특정을 간략히 정리해
보고자 한다.
<기술적인 차단 기능>
1. App와 Driver의 통신에 사용되는 DeviceIO를 차단한다.
2. 전역후킹을 사용가능하지만 보안툴이 떠있는 중에 후킹을
Load, Unload하게 되면 Application 자체를 차단시킨다.
일반적으로 강제 프로세스 종료를 차단하고 기능을 동작하지 못하게 한다.
3. 기본적인 필터 드라이버를 차단한다.
4. 바이너리는 실행파일 압축을 하고 Anti-Debug가 붙어있다.
5. 바이너리의 해쉬를 서버에서 검증한다.
<문제점>
1. App와 Driver 통신시 DeviceIO이외의 방법을 사용하면 막지 못한다.
2. HID 드라이버로 구현했을때 막지 못한다.
3. 개발자가 디버깅하는데도 충돌한다.
트랙백
댓글
글
마이크로소프트웨어 2009. 5. 21. 00:37병렬처리 개발의 모든것 Intel Parallel Studio 리뷰(Part1. Composer)
[마이크로소프트웨어] 2009년 8월 초고
병렬처리 개발의 모든것
Intel Parallel Studio 리뷰(Part1. Composer)
-------------------------------------------------------------------
이근호 fiadot@gmail.com, http://www.fiadot.com | 현재 온라인 게임 개발 업체인 NeonSoft Inc.에서 근무중이며, 칼퇴근을 위한 게임서버 개발에 대한 블로그를 운영하고 있다.
-------------------------------------------------------------------
멀티코어가 점차 대중화됨에 따라 병렬처리에 대한 개발자의 관심도 급격히 높아지고 있다. 이에 인텔에서는 새로운 제품군을 내놓았는데 그것이 바로 Intel Parallel Studio(이하 IPS) 이다. IPS는 크게 3가지로 구성되어 있는데, 컴파일과 디버깅에 관한 Composer, 에러 검출을 위한 Inspector, 마지막으로 성능 튜닝을 위한 Amplifier로 구성된다.
제품 개발에 있어서 개발, 검증, 성능 등 개발자가 필요한 일련의 툴을 포함하고 있어, 개별 도구들을 조합해서 사용해야 하는 불편함을 덜 수 있는 통합 개발 환경이다.
베타 버전을 통해서 이에 대해서 알아보도록 하자.
트랙백
댓글
글
Technical Article 2009. 2. 13. 20:49Boost 1.38.0 Test만 빌드하는 방법
UnitTest++ 다운 후 간단히 빌드가 되지만 Boost::Test를 사용하기 위해서는 몇가지 빌드 과정이 필요하다.
<준비>
XP+sp3, VS2005, boost 1.38.0
1. http://www.boost.org/ 에서 download로 가서 boost_1_38_0 파일을 다운로드
2. 압축을 풀고 tools/jam/src에서 build.bat 실행
혹시 에러가 발생한다면
(1) Path가 너무 많을때
(2) 시작-프로그램-Microsoft Visual Studio 2005-Visual Studio Tools-Visual Studio 2005 명령프롬프트를 실행해서 해당 경로로 이동해서 실행
3. 해당 경로 밑에 bin.ntx86/bjam.exe가 생성됨.
D:\boost_1_38_0\tools\jam\src\bin.ntx86>set path=%path%;D:\boost_1_38_0\tools\jam\src\bin.ntx86
4. bjam으로 test release/debug 모두 빌드
D:\boost_1_38_0\libs\test\build>bjam -sBUILD=boost_unit_test_framework --toolset=msvc --build-type=complete
인자 : 빌드옵션(release + debug = complete)
시간 무지하게 걸린다 ㅡㅡ;;
트랙백
댓글
글
Diary 2009. 2. 12. 12:51위메이드, 쯔바이 온라인 퍼블리싱 계약 체결!!
[ONLINE] 위메이드, 쯔바이 온라인 퍼블리싱 계약 체결 | |
위메이드는 앞으로 `쯔바이 온라인`의 국내외 마케팅과 서비스 운영 전반을 맡게 되며, 네온소프트는 게임 개발을 담당하게 된다. 이번 계약으로 이미 아시아권에서 유명한 원작 `쯔바이`의 명성을 통해, 위메이드의 글로벌 시장 공략도 더욱 힘을 받게 될 전망이다. 원작 `쯔바이`는 이스(YS), 영웅전설 등을 개발한 팔콤 RPG시리즈로 동화 같은 그래픽과 탄탄한 스토리, 여기에 열렬한 지지를 받은 바 있는 아름다운 선율의 배경음악이 어우러진 패키지 게임 시절의 명작으로 꼽히고 있다. `쯔바이 온라인`은 원작의 탄탄한 완성도에 온라인에서만이 구현 가능한 다양한 시스템을 추가해 이용자들을 새로운 RPG의 세계로 인도 할 예정이다. 개발사인 네온소프트 서영갑 대표는 “쯔바이 온라인은 모든 연령대에 사랑 받는 건전한 온라인게임이 될 것이며, 매일 부담 없이 접속할 수 있도록 유쾌한 게임으로 선보이겠다.”고 말했다. 위메이드 서수길 대표이사 역시 “위메이드의 2009년 첫 퍼블리싱 작품이자, 글로벌 시장을 공략하기 위한 최상의 게임 포트폴리오를 갖추게 되었다” 며 “이용자들에게 높은 수준의 서비스를 제공하기 위해 모든 열정을 다 할 것” 이라고 전했다. 한편, `쯔바이 온라인`은 2009년 내 비공개테스트를 통해 첫 선을 보일 계획이다.
우리회사 이사님과 위메이드 상무님 한컷~ 호호~ *^^* |
트랙백
댓글
글
Technical Article 2009. 2. 10. 16:27Visual Studio 2005 단축키 설정이 제대로 바인딩 안될때 해결방법
Visual Studio 2005에서 도구-설정 가져오기 및 내보내기를 통해서 사용자가 지정한 단축키를 내보내기를 하고 재설치를 하거나 다른 컴퓨터에서 가져오기를 했을때 키보드 바인딩이 제대로 안되는 경험을 해보았을 것이다.
내보내기(export)한 파일(.vssettings)를 보게되면 지정된 단축키와 제거된 단축키와 관련된 전체 히스토리까지 저장되서 가져오기를 했을때 제대로 처리가 안된것이다.
1. 이를 방지하기 위해서 키보드 바인딩만 내보내기를 한다.
2. 저장된 파일을 텍스트 에디터를 이용해 Shortcut Command만 남기고 모두 삭제한다. 중복된 부분도 보이는데 이런 부분은 현재 사용중인것만 남기고 삭제한다.
3. 그리고 단축키를 제외한 파일을 만들어서 단축키와 환경설정에 대해서 별도로 관리를 하면 된다.
LEEGUNHO_VS2005_Keybinding.vssettings
LEEGUNHO_VS2005_WithoutKeyBinding.vssettings
■ 지정 단축키 ■
[code]
<UserShortcuts>
<Shortcut Command="VisualAssistX.SurroundSelectionWithComment" Scope="전역">Ctrl+/</Shortcut>
<Shortcut Command="VisualAssistX.ReparseCurrentFile" Scope="전역">Ctrl+Shift+W</Shortcut>
<Shortcut Command="Project.SetasStartUpProject" Scope="전역">Ctrl+Shift+'</Shortcut>
<Shortcut Command="Window.CloseAllDocuments" Scope="전역">Ctrl+Shift+C</Shortcut>
<Shortcut Command="Build.BuildSelection" Scope="전역">F7</Shortcut>
<Shortcut Command="Build.RebuildSelection" Scope="전역">Ctrl+Shift+A</Shortcut>
<Shortcut Command="Project.AddNewItem" Scope="전역">Ctrl+Shift+N</Shortcut>
<Shortcut Command="Project.AddClass" Scope="전역">Ctrl+Shift+M</Shortcut>
<Shortcut Command="ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance" Scope="전역">Ctrl+Alt+F6</Shortcut>
<Shortcut Command="View.ErrorList" Scope="전역">Ctrl+1</Shortcut>
<Shortcut Command="View.Output" Scope="전역">Ctrl+2</Shortcut>
<Shortcut Command="View.FindResults1" Scope="전역">Ctrl+3</Shortcut>
<Shortcut Command="View.CodeDefinitionWindow" Scope="전역">Ctrl+4</Shortcut>
<Shortcut Command="File.GetLatestVersion" Scope="전역">Alt+1</Shortcut>
<Shortcut Command="CheckIn" Scope="전역">Alt+2</Shortcut>
<Shortcut Command="View.PendingCheckins" Scope="전역">Alt+3</Shortcut>
</UserShortcuts>
[/code]
트랙백
댓글
글
Book 2009. 1. 28. 20:53테크니컬 라이터를 꿈꾸는 사람에게 어울리는 책-명쾌한 이공계 글쓰기
명쾌한 이공계 글쓰기 - 김성우 지음/제우미디어 |
월간 <마이크로소프트웨어>에 몇번의 기고를 통해서 느낀것이 있다면 '지식을 글로 전달하기 위해 글을 쓴다는것은 참 어렵구나' 하는 것이다. 평소 원고를 준비하면서 느낀 주제선정과 그 폭의 선택, 독자의 수준등 여러가지를 고민하게 된다. 이것이 또 잘 전달될 수 있는 문장의 연결과 설명 방법과 같은것도 간과할수 없는 부분이다. 이 책에서는 그동안 고민해왔던 이러한 여러 부분들에 대해 다양한 예를 들어 이해하기 쉬우면서 가볍지 않게 전해주고 있다. 또 사고의 폭을 넓힐 수 있는 다양한 추천도서를 담고 있는데 대부분 소장하고 있는 책이 거론되서 왠지모를 저자 김성우씨와의 정신적 교감이 이루어지는 듯한 기분도 들었다. 마지막 페이지에 기억나는 문구가 하나 있다. "만약 지금 공부하고 익히는 것이 다른 것으로 설명된다면 곧 없어질 것이라고 봐도 좋다." 기술적인 글을 쓰기 위해 준비하거나 쓰고있는 사람들에게 꼭 추천하고 싶은 서적이다. |
트랙백
댓글
글
Hardware 2009. 1. 28. 13:11마이크로마우스 Jina의 캐릭터 LCD(LC1621) 제어 소스 공개
2007년에 만들었던 프로젝트 소스들이 다 날아간걸로 생각하고 있었는데, 어느분의 OCR관련 메일을 계기로 백업해두었던 DVD, CD를 모두 뒤져 보고 마이크로마우스 관련 소스를 다시 찾게 되었다.
예전에 LC1621의 소스를 요청하셨던 분이 계셨는데 시간이 많이 지났으니 해결하셨으리라 생각하지만, 이제 시작하는 다른 분들에게 도움이 됐으면 하는 바람에서 소스를 올린다.
fiaavr_def.h : 포트별 연결된 정보와 기본 정의를 담고 있다.
[code]
/**
@file fiaavr_def.h
@date 2007/3/7
@author 이근호(fiadot@gmail.com)
@brief Atmega128 개발용 공통 헤더 헤더
*/
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.8d Professional
Automatic Program Generator
?Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project : jINa
Version : 1.2.0
Date : 2007-03-04
Author : LEE GUNHO
Company :
Comments: Started at 2007.1.7
Chip type : ATmega128
Program type : Application
Clock frequency : 16.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 1024
*****************************************************/
#ifndef __FIAAVR_DEF_H__
#define __FIAAVR_DEF_H__
///////////////////////////////////////////////////////////
// [Ports Information]
///////////////////////////////////////////////////////////
/*
Port A
0 - (LCD)RS
1 - (LCD)RW
2 - (LCD)E
3 - (부저)
4 - (LCD)DB4
5 - (LCD)DB4
6 - (LCD)DB4
7 - (LCD)DB4
Port B
0 -
1 - (ISP) SCK
2 - (ISP) MOSI - 확실치 않음 --;; 회로보고 검증해봐!
3 - (ISP) MISO
4 -
5 -
6 -
7 -
Port C
0 - (MotorL) A B A' B' 2 0 3 1
1 - (MotorL)
2 - (MotorL)
3 - (MotorL)
4 - (MotorR) A B A' B' 6 4 7 5
5 - (MotorR)
6 - (MotorR)
7 - (MotorR)
Port D
0 -
1 -
2 -
3 -
4 - (초음파1) Triger Pulse 앞
5 - (초음파2) Triger Pulse 우 (위에서 봤을때)
6 - (초음파3) Triger Pulse 좌
7 -
Port E
0 - 테스트용 LED
1 -
2 - (블루투스)RX1
3 - (블루투스)TX1
4 - (초음파1) Echo Pulse - 인터럽트 4 앞
5 - (초음파2) Echo Pulse - 인터럽트 5 우 (위에서 봤을때)
6 - (초음파3) Echo Pulse - 인터럽트 6 좌
7 -
Port F (ADC)
0 - (가스센서) ADC0
1 - (온도센서) ADC1
2 -
3 -
4 -
5 -
6 -
7 -
*/
///////////////////////////////////////////////////////////
// [Headers]
///////////////////////////////////////////////////////////
#include <mega128.h>
#include <delay.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
///////////////////////////////////////////////////////////
// [Definitions]
///////////////////////////////////////////////////////////
// Boolean
#define FALSE 0
#define TRUE 1
// 테스트 LED ON, OFF
#define DEBUG_LED_ON PORTF.1 = 1; // LED On
#define DEBUG_LED_OFF PORTF.1 = 0;
// 부저 ON,OFF
#define SPEAKER_ON //PORTD.5 = 1; PORTD.6 = 1;
#define SPEAKER_OFF //PORTD.5 = 0; PORTD.6 = 0;
// 이동 방향
#define DIR_FORWARD 0
#define DIR_RIGHT 1
#define DIR_LEFT 2
#define DIR_TOTAL 3
///////////////////////////////////////////////////////////
// [Variables]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Functions]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Etc]
///////////////////////////////////////////////////////////
// [Reference Sites]
// http://cafe.naver.com/carroty
// http://en.wikipedia.org/wiki/Atmel_AVR
#endif // __FIAAVR_DEF_H__
[/code]
fiasvr_lcd.h : 캐릭터LCD 관련 정의부
[code]
/**
@file fiaavr_lcd.h
@date 2007/3/4
@author 이근호(fiadot@gmail.com)
@brief jINa - LCD출력및 디버깅 4비트 제어
*/
#ifndef __FIAAVR_LCD_H__
#define __FIAAVR_LCD_H__
///////////////////////////////////////////////////////////
// [Ports Information]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Headers]
///////////////////////////////////////////////////////////
#include "fiaavr_def.h"
///////////////////////////////////////////////////////////
// [Definitions]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Variables]
///////////////////////////////////////////////////////////
extern flash unsigned char *Logo; // 로고 글귀
extern unsigned char pszData[16]; // LCD출력을 위한 스트링
///////////////////////////////////////////////////////////
// [Functions]
///////////////////////////////////////////////////////////
void fialcd_Init(); // LCD초기화 작업!
void fialcd_DrawLogo();
void fialcd_Debug(int nSeq, int nMsg); // 숫자값을 출력하기 위해서
// 글자하나 찍어볼때 lcd_putchar(getchar1())
///////////////////////////////////////////////////////////
// [Etc]
///////////////////////////////////////////////////////////
#endif // __FIAAVR_LCD_H__
[/code]
fiasvr_lcd.cpp : 캐릭터LCD 관련 구현부
[code]
/**
@file fiaavr_lcd.c
@date 2007/3/4
@author 이근호(fiadot@gmail.com)
@brief jINa - LCD출력및 디버깅
*/
///////////////////////////////////////////////////////////
// [Headers]
///////////////////////////////////////////////////////////
#include "fiaavr_lcd.h"
///////////////////////////////////////////////////////////
// [Definitions]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Variables]
///////////////////////////////////////////////////////////
flash unsigned char *Logo=" Hello! I'm jINa"; // 로고 글귀
unsigned char pszData[16]; // LCD출력을 위한 스트링
///////////////////////////////////////////////////////////
// [Functions]
///////////////////////////////////////////////////////////
// LCD초기화 작업!
void fialcd_Init()
{
lcd_init(16);
}
void fialcd_DrawLogo()
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf(Logo);
}
// 숫자값을 출력하기 위해서
// ex) 초음파 센서 거리출력!
void fialcd_Debug(int nSeq, int nMsg)
{
lcd_clear();
lcd_gotoxy(0,0);
sprintf(pszData, "%d : %d ", nSeq, nMsg);
lcd_puts(pszData);
}
///////////////////////////////////////////////////////////
// [Etc]
///////////////////////////////////////////////////////////
[/code]
jina_ver120.c : 메인 파일에 해당한다.
[code]
/**
@file ver120.c
@date 2007/3/4
@author 이근호(fiadot@gmail.com)
@brief jINa
*/
///////////////////////////////////////////////////////////
// [Headers]
///////////////////////////////////////////////////////////
#include "fiaavr_def.h"
#include "fiaavr_lcd.h"
#include "fiaavr_sensor_gas.h"
#include "fiaavr_sensor_supersonic.h"
#include "fiaavr_serial.h"
#include "fiaavr_stepmotor.h"
#include "fiaavr_util.h"
// LCD부분은 다른곳에 넣으면 안됨!
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
///////////////////////////////////////////////////////////
// [Definitions]
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// [Variables]
///////////////////////////////////////////////////////////
unsigned char pszGasData[16];
///////////////////////////////////////////////////////////
// [Functions]
///////////////////////////////////////////////////////////
// Port initialization
void InitPorts()
{
// Input/Output Ports 초기화
// DDRA=0xFF;
// PORTA=0x00;
DDRC = 0xFF;
PORTC = 0x00;
DDRD = 0xFF;
PORTD = 0x00;
DDRE = 0x00;
PORTE =0x00;
// PORTA = 0xFF;
}
// Entry Point!
void main(void)
{
// Declare your local variables here
InitPorts();
fialcd_Init();
fialcd_DrawLogo();
delay_ms(1500);
lcd_clear();
UARTInit(9600);
SS_InitSensor();
InitMotor();
SS_InitTimer();
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x41; // 0,2번 타이머 사용!
ETIMSK=0x00;
InitGas();
#asm("sei") // Global enable interrupts
Tx1_String2("jINa Start \r\n");
while(1)
{
};
}
[/code]
관련 링크
Atmega128 마이크로마우스 위험인식로봇(http://www.fiadot.com/TatterTools/1849)
16x2캐릭터 LCD(LC1621)에 글자찍기 성공!!!(http://www.fiadot.com/TatterTools/1835)
트랙백
댓글
글
Technical Article 2009. 1. 15. 14:39OpenSSL 0.9.8j Window에서 빌드 방법
What about OpenSSL
C기반 오픈소스 암호화 라이브러리
설치준비
openssl-0.9.8j.tar
http://www.openssl.org/source/openssl-0.9.8j.tar.gz
Active Perl (ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi)
http://www.activestate.com/store/download.aspx?prdGUID=81fbce82-6bd5-49bc-a915-08d58c2648ca
Nasm
http://www.nasm.us/pub/nasm/releasebuilds/2.06rc2/nasm-2.06rc2-win32.zip
빌드방법 (Windows + Visual studio 2005 )
1] Microsfot Visual Studio 2005 - Visual Studio 2005 Tools - Visual Studio 2005 명령 프롬프트 실행
2] C:\OpenSSL_Install\openssl-0.9.8j\crypto\x509v3\v3_pcia.c 를 Visual studio로 열어서 주석부분을 지운후 유니코드(949)로 다시 저장한다.
v3_pci.c, v3_pica.c 를 C:\OpenSSL_Install\openssl-0.9.8j\crypto\x509에 복사한다!
3] C:\OpenSSL_Install\openssl-0.9.8j에서
perl Configure VC-WIN32
ms\do_ms
static library 생성은 nmake -f ms\nt.mak
dll 생성은 nmake -f ms\ntdll.mak
4] 빌드가 성공하면 out32, inc32 에 프로젝트에서 사용할 library와 include할 헤더가 생성된다.
5] 제대로 빌드가 되었는지 확인하기 위해
C:\OpenSSL_Install\openssl-0.9.8j\out32 에서
..\ms\test
실행한다.
RECENT COMMENT