Childhood Coding Fun

Here's a list of study programs I've worked on since 1991.
They might seem small or simple, but each one helped shape me into the developer I am today.

* Not all the demos include source code.

Small Utilities

File Unlocker — Finds processes holding files and forces them to close, so you can delete locked files. Use with caution.

Running Module Lister — Displays all system processes with paths and internal modules with reference counters. Console output, redirect-friendly.

ProEngineer Wildfire protk_unlock.exe — Cracked wait-time from 15 mins to 3 secs.

Keyboard Typer 1.0 — Types text automatically in any software; useful for DOS applications requiring step-by-step menu input.

Process Raker 1.0

프로세스들을 한번에 정리하고자 할 때 사용한다. 웜바이러스나 여러가지 이유로 알 수 없는 프로세스들이 생성되거나, 죽일 수 없는 프로세스들이 있는 경우 깔끔하게 정리할 수 있다. 단, 바이러스에 의한 프로세스를 제거하는 경우, 이것을 이용하는 것은 임시방편일 뿐이므로, 반드시 백신을 통해 레지스트리나 하드디스크에서 완전히 제거하여야 한다.

console용이며 실행하면 다음과 같은 메시지가 출력된다:

Process Raker 1.0, jhkim/GEOMania.com
usage: C:>rake.exe {authorized_process_list_file} {c|r}

C:>rake.exe list.txt c    ; 현재 프로세스 목록(list.txt)을 생성한다.
C:>rake.exe list.txt r    ; 인증된 프로세스목록에 포함되지 않는 모든 프로세스를 강제 종료 시킨다.
Download

MS Visual C++ Addin - IDE Helper

비주얼 스튜디오 통합환경의 Addin으로써 개발자의 편의를 위한 몇가지 기능을 지원한다:

IDE Helper toolbar IDE Helper screenshot

< 참고화면 >

ATL DLL로 제작됨

Installation: 1) C:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns 에 DLL을 복사 → 2) Tools → Customize → Add-ins and Macro Files에서 PSAddin.DSAddin.1을 check

Download
↑ Back to Contents

A Networked 3D-Tank Game 1999

1999년 컴퓨터 학술 동아리 '씨애랑' 정기 전시회 출품작

Recommended: P2 400Mhz with 64Mb Memory, 16Bit Soundcard, OpenGL accelerator on Win98 / WinNT 4.0

[Click the picture for detailed information]

3D Tank Game screenshot
Download
↑ Back to Contents

A Ladder Game 1998

1998년 컴퓨터 학술동아리 '씨애랑' 정기 전시회 출품 작

시스템 권장 사양: Pentium 100Mhz 이상, 32Mb Mem 이상, 16Bit SoundCard

Ladder Game screenshot 1 Ladder Game screenshot 2
Download
↑ Back to Contents

AURA(Audio Rapper) - Realtime Sound Mixer 1999

1999년 컴퓨터 학술동아리 '씨애랑' 정기전시회 출품 작

AURA screenshot
AURA에 대한 자세한 설명이 있는 PDF 자료 (White Paper) Download
↑ Back to Contents

Robot - 프로그래밍의 첫 개념을 위한 교육용 인터프리터

한림대학교에서 C를 배우는 '컴퓨터 프로그래밍 I' 과목의 첫 시간에 이것을 사용했었다.

Robot interpreter screenshot
Download
↑ Back to Contents

Xkin - Internet Explorer를 위한 Skin 소프트웨어

[여기]를 눌러 바로 XKin을 실험해 보실 수 있습니다. 주의하실 것은, 누르기 전에 Explorer의 보안레벨을 최하로 설정해 놓아야 한다는 겁니다.

* Netscape는 지원하지 않습니다.

Xkin screenshot 1
Xkin skin bar
↑ Back to Contents

LiquidNet - 멀티 프로세서 지원 비동기 네트웍 통신 모듈 2000

설명: LiquidNet은 TCP/IP를 지원하며 비동기로 동작하도록 설계되어 있다. 멀티 프로세서를 지원하여 효과적으로 네트웍 이벤트를 감지하도록 설계되어 있다. LiquidNet은 Win32 platform에서 동작하며, 현재 NT 5.0(Win2000) 이상의 platform 전용으로 서버용 모듈(LiquidNetHP)을 제작중이다. 이것은 NT 5.0 이상의 시스템에서 제공하는 I/O Completion Port 모델을 적용시켜 오직 시스템의 성능만이 동시접속수에 영향을 주게 된다.

* 아직 이미지를 준비하지 못함

↑ Back to Contents

LiquidNet - 응용한 파일 전송 모듈

LiquidNet을 이용하여 원거리에 비동기로 파일을 전송 가능한 모듈. 예측하지 못한 상황으로 비정상적인 연결종료가 있었을 때 끊어진 부분부터 다시 전송 하는 기능 지원.

* 아직 이미지를 준비하지 못함

↑ Back to Contents

SMLL - Simple Memory Leak Locator 2000

C/C++ 프로그래밍시 할당한 메모리의 부적절한 해지나 실수로 해지하지 못한 상황을 발견해 주는 간단한 도구임.

기존 C/C++의 문법을 그대로 사용하실 수 있습니다. 대상 함수: new, new[], delete, delete[], malloc(), calloc(), realloc(), free() 함수들을 평소대로 사용하시면 됩니다.

어디에서 선언한 변수가 제대로 해지하지 못해 얼마만큼의 크기가 낭비되었는지를 알려주고, 적절치 못한 해지를 시도했을 경우 어디서 선언한 것을 어디서 해지하려 했으며 적절한 해지방법은 무엇이었는지, 이미 해지되거나 할당되지 않은 포인터를 해지하려 했을 때 등의 정보를 알려줍니다.

Multi-thread 환경에서도 적절히 돌아갈 수 있도록 설계되어있습니다.

Runtime: Visual C++ 5.0 이상

Download
↑ Back to Contents

Grade Manager For Students 1998

학생들의 성적을 관리해 주는 실험용 프로그램. 인터페이스는 DOS 시절에 유명했던 Borland C++의 IDE와 동일하게 구성했다. 특히 Borland사의 풀-다운 메뉴는 멋있기로 유명했는데, 그것과 동일한 기능을 하는 pulldown 라이브러리를 제작하여 적용했다.

컴퓨터 학술 동아리 '씨애랑' 정기 전시회 출품 작

Runtime: MS-DOS 5.0 이상

Grade Manager screenshot 1 Grade Manager screenshot 2 Grade Manager screenshot 3

정말 BC와 닮았죠? 특히 메뉴처리기를 구성하는데 수개월 고생했답니다.

Download
↑ Back to Contents

Anti-Aliased Image Stretcher Using Bi-linear Interpolation 1997

이미지를 확대할 때 발생하는 모자이크 현상(Pixel-Aliasing Effect)을 제거하기 위해 이미지를 선형보간한다.

컴퓨터 학술 동아리 '씨애랑' 정기 전시회 출품작

Runtime: MS-DOS 5.0 이상 | Build: Borland C++ 3.1

C:\>lz orchid.pcx
Image stretcher - before Image stretcher - after
Download
↑ Back to Contents

Software-Exhibition Introducing Software 1996

대전 엑스포에서 엑스포를 소개해주는 소프트웨어를 본적이 있다. 그것을 본 딴 것으로, 동아리에서 개최한 소프트웨어 전시회를 소개하는 안내 소프트웨어를 제작한 것이다. 프로그램을 종료할 수 없도록 만들었다. Ctrl+Alt+Del키로 웜 부팅도 할 수 없도록 만들어 놓았다. (윈도우즈에서는 종료가능)

Runtime: MS-DOS 5.0 이상, Standard VGA | Build: Turbo Pascal 6.0

Exhibition intro software screenshot
Download
↑ Back to Contents

Technical Graphics Programming Demo 1996

고등학교때 'Future Crew'나 'Complex'등 특히 유럽인들의 활동이 두드러지는 Contest가 있었다. 그 Contest는 특수한 그래픽과 환상적인 사운드를 자랑하는 Demo 프로그램들의 대회였다. 특이한 것은 계속되어지는 특수한 그래픽화면이 모두 C나 Assembly로 작성되어진 실시간 Renderer로 만들어지고 있다는 것이었다. 사운드도 실시간인건 마찬가지다.

이 대회는 전 세계의 젊은 프로그래머들을 대상으로 자신(그룹)들의 실력을 신선하고 독창적인 아이디어와 그래픽, 사운드를 통해 마음껏 펼치는 공간이었다. 유명한 Contest에는 'Party' 시리즈와 'Assembly'가 있으며 매년 열리고 있다.

현재는 GUI가 기본인 Windows의 시대가 도래해, 많은 것이 부족했던 DOS시절에 온갖 기술들로 묘기를 부려야 했던 때와는 달라, 그런 무수한 테크닉들이 필요없게 되어 버렸지만 아직도 많은 사람들은 그때의 흥분되던 시간을 기억한다. 본인도 너무나 그것을 해보고 싶어서 부족한 실력으로 Demo를 만들어 보았다.

컴퓨터 학술동아리 '씨애랑' 정기 전시회 출품

Runtime: MS-DOS 5.0 이상, Standard VGA | Build: Turbo C++ 3.0, Turbo Pascal 7.0

C:\>rundemo
Demo screenshot 1 Demo screenshot 2 Demo screenshot 3 Demo screenshot 4 Demo screenshot 5 Demo screenshot 6
Download Demo

Intro (1997) — 1997년에 사운드가 포함된 간단한 Intro 프로그램을 같은 동아리 전시회에 출품했다.

Runtime: MS-DOS 5.0 이상, Standard VGA, SoundBlaster 2.0 이상 | Build: Turbo C++ 3.0

Intro program screenshot
Download Intro
↑ Back to Contents

External-QuickSort For A Large Data Using PVM 3.0 on ATM (155Mbps) Network 1996

1학년때 고성능 통신 연구실에서 분산처리를 실험한적이 있었다. 그 대상으로 엄청난 규모(목표 1GB)의 데이터를 정렬하는 것으로 하였다. 실제 실험은 40MB의 데이터를 가지고 했다.

FreeBSD에서 PVM을 이용해 그 당시 괜찮은 시스템이었던, Pentium 166Mhz(64Mb Mem) 두 대를 가지고 실험을 했는데, 로컬 네트웍이었지만 두 시스템간에 전송되는 자료가 너무 커 전송속도가 병목이 되었다. 병목을 없애기 위해 ATM 장비를 연결하였다. 그러나 결과는 약 120% 성능향상이 있었을 뿐이다. 실제적으로 150%를 넘기기를 기대했었다.

* 아직 이미지를 준비하지 못함

↑ Back to Contents

TinyShell 2.20 - A Shell Program For The Executables 1994

DOS 시절의 컴퓨터 초보 사용자를 위한 작은 유틸리티로써, 어디서든 'T'만 입력하면 현재 디렉토리나 지정 디렉토리의 실행 가능 파일들만 보여 주며, 그중 하나를 선택하면 프로그램을 대신 실행해 준다. 실행시 메모리를 전혀 차지 하지 않으며 실행전 자동으로 백신 프로그램을 이용해 바이러스 검색을 해주기도 한다. 인터페이스가 당시 유행하던 Norton Utility와 같아 매우 깔끔했다.

PC-WORLD 1994년 3월호에 소개됨

Build: Turbo Pascal 6.0

TinyShell screenshot 1 TinyShell screenshot 2
Download
↑ Back to Contents

D - File Lister (돋보기) 1992-1995

당시 본인이 알고 있는 거의 모든 기술들을 총 집합한 프로그램임. 시스템의 각종 정보 얻기, 빠른 화면 출력속도(주로 스크롤 속도)를 위한 최적화된 비디오 제어 코드, QuickSort등 각종 알고리즘 및 효과적인 자료구조 설계, 명령행과 초기화 파일 Parsing 등 알고 있는 기술들을 모두 적용했습니다.

'돋보기'는 꼭 필요한 알짜배기 기능과 몇 가지 색다른 기능을 내장한 편리하며 속도도 빠른, DIR 대체 유틸리티입니다. 특징은 이와 같습니다:

Build: Turbo Pascal 6.0

돋보기 screenshot 1 돋보기 screenshot 2 돋보기 screenshot 3 돋보기 screenshot 4 돋보기 screenshot 5 돋보기 screenshot 6

돋보기 초기버전:

돋보기 early version 1 돋보기 early version 2
Download
↑ Back to Contents

전시회 안내 프로그램 1993

고등학교 1학년 학교 축제 때 전산부에서 전시회를 열었다. 그 때 우리 동아리와 축제에 참가하고 있는 다른 동아리들을 소개하는 프로그램이다.

종료하려면 Scroll Lock을 On시키고 'Q' 키를 누름

Build: Turbo Pascal 6.0 | Runtime: Standard VGA

전시회 안내 1 전시회 안내 2 전시회 안내 3 전시회 안내 4 전시회 안내 5
Download
↑ Back to Contents

Check

File Allocation Unit 때문에 낭비되는 디스크 용량을 통계 내어 준다.

Download
↑ Back to Contents

DEX

디스크에서 모든 불필요한 파일들을 확장자로 구분하여 삭제 해준다. 파일의 타입은 사용자가 정의할 수도 있다.

Download
↑ Back to Contents

Fortune

FreeBSD에서 login 할 때마다 항상 보여지던 각종 격언들을 DOS로 그대로 porting 한 것이다. FreeBSD의 데이터를 DOS에서 그대로 사용할 수 있다. FreeBSD에서 사용되는 매우 방대한 격언이 담긴 문서를 당시의 작은 메모리 용량으로 읽어들일 수 없었기 때문에, 전체 내용에서 임의의 위치에 있는 내용을 빠르게 뽑아내어 보여주는 루틴이 중요했음.

Download
↑ Back to Contents

Reverse Engineering

CATIA CAA V5 R9 GA

JS0GROUP.DLL cracked.

IntelliSuite / IntelliFab 7.3

Cracked.

Fish Screen Saver (cracked)

위 사진은 아시는 분들은 다 아는 스크린 세이버다. 너무나 사실적이어서 바로 다운받았지만, 데모버전이었고 그래서 중간에서 조금 오른쪽에 있는 노란 물고기 한 마리만 화면에서 헤엄쳐 다니고 있었다. 너무 이뻐서 사고 싶었다. 그러나 약 20달러가 주머니에 없던 터라 한번 크랙을 시도해 보았다. SoftICE와 Win32 역 어셈블러 그리고 바이너리 에디터를 사용하였고, 20 달러짜리 디럭스버전으로 크랙하였다.

Fish Screen Saver

Lemmings 1 (unlock) 1992

Lemmings UnProtect. Key diskette protection을 우회하는 방법.

Download

Little Big Adventure (LBA) - Saved Data Editor

고등학교 시절에 했던 오래전 게임이라 기억하는 사람이 있을지 모르겠지만, 당시 PC용으로는 상당히 고품질의 3D 어드벤처 게임이었으며 그 시초격이었다. 상당히 아기자기하고 깔끔했던 게임이다. 이 게임에서 유리한 상황을 만들어 보고자, 저장된 바이너리 데이터 파일을 PCTOOLS를 이용해 분석하였고, 그 과정에서 찾아낸 설정값들을 쉽게 변조하고자 프로그램을 제작하였다.

Build: Turbo Pascal 6

LBA screenshot 1 LBA screenshot 2 LBA screenshot 3
Download

Something more trivials :)

Numerical BaseBall Game Java Applet

배경음악과 효과음이 있습니다.

Numerical BaseBall Game
Play

Hangman Java Applet

Hangman game
Play

아래 프로그램들은 Basic으로 처음 프로그래밍을 접할 때 만들었던 것들을 간추려 놓은 것입니다.

Diskette Magazine (디스켓 매거진)

많은 디스켓들을 관리해 주는 데이터베이스 프로그램.

DM - 데이터베이스 파일 생성 화면 DM - 처음 화면 DM - 메뉴 방식

Graphics Editing Program (그래픽 에디팅 프로그램)

Graphics editor

Piano Program (피아노 프로그램)

음악을 연주하고 기록할 수 있다.

Piano - 기본 옥타브 설정 화면 Piano - 기본 화면

Horse Racing Game (경마 게임)

말에 돈을 걸고 내기를 할 수 있다.

경마 - 말들이 달리는 장면 경마 - 결과 화면

Timer Program (타이머 프로그램) ~1991

1991년경 베이직을 배우는 초반에 그냥 만들어본 (거의) 첫 번째 나의 습작. 하지만 간단한 몇 가지 게임도 지원되고, 프로그램의 로직을 많이 익히게 했던 프로그램.

중학교때라 영어가...

Timer utility