Categories
Development

리버스 엔지니어링 입문

Gentoo Linux와의 생활이 시작된지 어언 3일째..
생활에 전혀 지장이 없을만큼 편해졌습니다.

단 한가지!, 제가 좋아하는 P2P 파일공유 프로그램인 V-Share를 사용할 수 없다는 것입니다.
제가 평소 리버스 엔지니어링에 사용하는 것은 오직 하나 packet sniff 입니다.
V-Share를 띄우고 룰루 즐겁게 Ethereal을 띄웁니다.

자자 검색 패킷부터 까볼까..
헉 모든 검색어가 4바이트로 나갑니다 ㅡ_ㅡ 이게 왠 조화란 말이냐
검색어를 2글자로 해도 4바이트가 나가고, 12글자로 해도 4바이트가 나갑니다.
말세다…

설마 검색어를 압축 -_-?;; 할 리는 없겠지.. 하고 일단 4바이트니까 MD5 한 결과를 4바이트씩 묶어서 mod 연산해서 대입해봐도 아니고.. SHA1 써봐도 아니고.. Visual studio의 툴인 dumpbin.exe 를 통해 dll export 된 펑션을 뒤져봤습니다. 어엇 아니나 다를까.. 텍스트들을 encode/decode 할것만 같은 함수들이 노출되어있었습니다.

sgm.dll에 GetKey, SetKey, SG_Init, SG_Send, SG_Close, Encoding, Decoding 등의 함수가 있었습니다. sgsec.dll 에는 KwicDecText, KwicEncText도 있더군요. IDA Pro로 디스어셈블 해보니 함수의 크기는 그다지 큰것 같지 않긴한데,
문제는 전 어셈코드는 한줄도 읽을수 없다는 겁니다 –;

그래도 포기할소냐, 지인들과 Google님의 도움으로 리버스엔지니어링 포럼들을 열심히 찾고 있습니다. 흑흑. 저도 V-Share 리눅스에서 쓰고 싶어요. 인터넷빛고을 관계자님. 리눅스용 만들어주세요 -ㅅ-;;

비록 이 글을 (주)인터넷빛고을 관계자님들이 보신다 하더라도 걱정하진 마세요. 크랙을 하려는게 아닙니다 -_-; 건전한 목적의 V-Share 클론을 만들려는 것 뿐입니다

그럼 제가 성공의 블로그를 작성할 수 있는 그날까지 -_-…

Categories
Development

간만에 Jikes와 춤을!

매우 빠른 IBM의 Java compiler가 어느덧 1.22 릴리즈가 되었다. (이 사실을 portage에서 확인;)
jikes 1.22의 configure –help를 보니 –enable-source15가 있었다.
그래서 –enable-source15를 켜고 컴파일해보니.. 안되는것이 아닌가!
일단 static import를 해보았다.
오예 에러~

2. import static java.lang.System.*;
^—-^
*** Semantic Error: Static imports are only supported for `-source 1.5′ or greater.(not yet implemented)

분명히 -source 1.5를 줬는데도.. 어랏 not yet implemented라니. jikes 코드를 뒤져본다.
decl.cpp에 아래와 같은 부분이 있다 ㅡ_ㅡ

jikes-decl

어흑.. jikes 페이지에서 좀더 찾아보기로 했다.
http://www-124.ibm.com/developerworks/patch/?group_id=10 에 보면 패치중에
Autoboxing support라는 것이 보였다. autoboxing 만 되는게 어디냐.
diff를 복사해서 patch 한후 다시 컴파일 해봤다.

헉.. autoboxing만 되고 autounboxing은 안된다 -_-;;;
그래도 jikes 코드 전반적으로 jdk 1.5 generic에 대한 부분이 많이 있었다.
조만간 모두 지원되리라 굳게 믿는다!

Categories
Development

젠투리눅스 설치기!

HanIRC의 까나리님과 leanblue(codethread)님의 권유로 데스크탑에 Gentoo Linux를 설치하게 되었습니다. 다들 젠투 좋다고 젠투로 오라고 하셔서 쉽게 꼬임(?)에 넘어갔는데, 막상 설치하기 시작하고 나서는

‘한번에 부팅에 성공하면 초천재에요..’

이런 말들을 T.T
아무튼 까나리님의 설치가이드 http://kkanari.org/wiki/wiki.php/GentooInstallGuide를 보면서 시작했습니다. 커널컴파일도 신나게 하고 은근히 아무 문제 없이 잘잘~ 진행되다가 grub 설정에서 삑사리 내서 커널패닉이 한번 났습니다. 까나리님과 leanblue님의 도움으로 3번만에 부팅 성공!

이것저것 vim, openssh, gcc, glibc 열심히 깔고 이제 xorg-x11 gnome 깔고 있습니다. emerge 라는 녀석에게 반했는데 FreeBSD의 ports랑 비슷하면서도 편한게 아주 맘에 들었습니다. /usr/portage 디렉토리 밑에서 각 ebuild 파일들을 보며. ‘아~ 요샌 이런게 있구나~’ 하는 재미가 아주 솔솔!

아주아주 맘에 들어하고 있습니다. wooil님이 추천해주신 우분투 리눅스도 설치해봐야 하는데, 며칠전 윈도우 날리고 이성을 잃었을때 설치했다가 곧 지워서 으음;

xorg-x11 gnome을 컴파일 하기 시작한지 어느덧 4시간이 되어갑니다. 이거 다 깔아도 아까 emerge 구경하면서 흥미로웠던것들 다 설치해보고 가지고 놀아보려면 한참은 걸릴듯 합니다. 잇힝~

Categories
Development

커널 컴파일

리눅스에 광팬은 아니지만, 그래도 업무환경상 리눅스/유닉스 환경이 껴있어서 집에서도 리눅스를 쓰곤 합니다. (주 데스크탑은 윈도우즈이지만)
그렇지만 얕은 깊이의 커널컴파일 외에는 시스템 자체에는 별로 신경쓴적이 없습니다. 필요한 것만 configure하고 컴파일해서 쓰는게 제가 하는 일의 전부였습니다.
거의 Redhat Linux만 사용해왔었지만, OS 설치후 추가로 프로그램 설치할때는 rpm을 써본적도 없습니다 -ㅅ-; 컴파일 하다가 에러나면 어설프게 고치고..

며칠전 Solaris 깔다가 다 날린 일이 있어서 이번에는 안전빵으로 가자!
는 생각으로 메모리도 1GB겠다, VMWare 4.5에다가 페도라 코어 3를 깔았습니다.
평소처럼 JDK 1.5을 가장 먼저 설치한 후, VMWare에서 돌리면 얼마나 느릴까..
하는 마음에 (체감 속도가 크게 늦지 않았습니다. 메모리를 512MB를 할당해서..)
StringBuffer에 특정 데이터를 100만번 넣는 간단한 프로그램을 만들었습니다.

제 PC사양은 인텔 P4 노스우드 2.4에 1G입니다. 일단 VMWare에서는 1200ms-1500ms 정도가 나왔습니다.
같은 코드를 vmware를 띄운 상태에서 (CPU는 10%미만이였음)
Windows 2000 Server에서 실행시켜보니 380ms-420m 정도가 나왔습니다.
이러면 거의 3배가 느린거니까, (사실 heap realloc과 arraycopy 작업뿐이지만)
P3-800 정도라고 생각하자.. 했습니다.

뭔가 얘기가 길어질까봐.. 짧게 끝마치려 합니다. 이것저것 제 컴에 맞게 요거조거 고쳐서 VMWare에서 200ms 가 나왔습니다 /-.-/ (어떻게 더 빠르지;;)

Categories
Life

OS 밀기와 재설정 작업

본의 아니게 데스크탑의 윈도우즈를 날려먹었습니다.

윈도우 부분이 날라갈것을 충분히 각오하고, 중요한 자료들만을 모으고 모아서 (Outlook 메일보관함 파일, My Documents 압축, 공인인증서, 즐겨찾기, 백업자료, 프로그래밍 작업 파일들) 특정 파티션에 옮겨두었는데 어머나 글쎄 백업해놓은 파티션을 날려먹었습니다.

원래 하려던 것은 Solaris x86 용을 데스크탑에 설치하는 거였는데, 설치도 열라 오래걸리고 그래픽카드랑 모니터 못잡아서 삽질을 하다가 결국 파티션만 날려버리고 말았습니다. (설치 열심히 하는 도중 mithrand님이 Solaris 10 다운로드 받는 주소를 가르켜주셔서 어차피 Solaris는 다시 설치해야할 팔자..)
일단 날렸으니, 최소한의 작업을 위해 Windows 2000 설치를 시작했습니다.
초반에 Professional을 설치했는데 단숨에 바이러스에 감염되는 -_- 낭패를 보고, 에라 터미널서비스나 쓸겸 2000 Server 쓰자 하고 다시 설치를 시작했습니다.
바이러스가 짜증이 팍 나서 xrath.com 서버에 iptables 설정해서 이번 기회에 모두 사설아이피로 교체도 하였습니다. 무선랜 AP에서 DHCP 설정해서 사설아이피 주도록 바꾸기도 하고, 또 앞으로는 데스크탑에 남긴 자료는 믿지 말기로 해서 smbd 설치해서 (그러고보니 samba 처음 깔아봤어요 -_-;;) 이것저것 설정을 마쳤습니다.

이제 멀쩡한 데스크탑으로 돌아왔으니, 프로그램들을 다시 설치합니다. 아직도 멀었지만.. (.NET Studio도 깔아야하고 Photoshop도 깔아야되고 후우우우) 기존 Outlook에서 일정과, 할일목록을 꾸준히 관리해왔었는데 그것 날아간것도 매우 허무하네요 새로 설치한 데스크탑에서는 어차피 이제 Outlook과 결별이나 할 겸, 파이어폭스에 썬더버드를 깔았습니다.

RSS Feed 기능이 있길래 xrath.com의 blog도 좀 손을 보는 김에 soojung도 0.3.2로 올리고 RSS Feed가 되도록 했습니다. 썬더버드 매번 얘기만 듣고 보기만 하다가 직접 써봤는데 한글문제도 거의 없고 스팸필터링도 잘 되고 매우 만족스럽습니다.
솔라리스 2번 깔고 실패.. 우분투 한번 깔았다가 좀 구경하고.. 어차피 윈도우가 하나는 있어야 되니 다 밀고 윈도우 설치만 한 상태입니다. 이것저것 정리하느라 거의 12시간정도가 지나간것 같네요. 원래 OS 밀려고 했던 목적이 데스크탑에 깔아놓고 막 쓸 용도였으니 잠시후 업무미팅에 다녀와서 바로 Fedora Core 3나 FreeBSD 5.3을 설치할 예정입니다.

학습이 목적…백업을 어떻게 할까.. 해서 테이프백업 장비 가격을 좀 알아봤는데 아아 열라 비싸네요 –; 그냥 집에오는길에 DVD RW 하나 구입해야겠습니다. 그럼 슝~