eMule의 설정 파일
2006/09/11 08:45eMule을 사용하다보면 config 폴더에 합 20MB가 넘는 파일들이 들어차게 된다. 나도 eMule을 쓰다가 이것들이 뭘 하는 건지 궁금해지고 자꾸 신경쓰여서 외국 포럼이나 eMule project 공식 홈페이지를 통해 알아보게 되었다.
eMule은 Peer-to-peer 프로그램이다. 즉 사용자간 연결을 해서 파일을 주고 받을 수 있는 전송 프로그램이라는 것이다. 사용하는 프로토콜은 ed2k. 전에 설명한 bittorrent와는 별개의 것이고 이 프로토콜은 원래 edonkey2000이 사용하던 것이다. eMule이 가지는 차이점이라면 오픈 소스라는 것. sf.net에도 등록되어 있고 이 때문에 수많은 변종(mod)들이 있다. Mod별로 다양한 추가 기능을 지원하고 나름대로의 소스 최적화가 되어있는 것들도 있다.(주: eMule의 Official Homepage에서는 Mod의 성능향상이 없음을 주장한다.)
Mod 사용에서의 주의점은 leecher mod가 있다는 것이다. 말 그대로 mod는 mod인데 소위 '매너 없는' mod이기 때문에 mod 제작자들간에 인정받지 못하고 anti-leecher 기능에 의해 ban 당하는 것이다. 과거 명성을 떨쳤던 LSD도 서버 요청 관련 기능 한번 잘못 넣었다가 퇴출당해 leecher mod가 되었다. 개인적으로는 MorphXT mod를 사용한다. 인지도도 높고 성능도 좋다.
먼저 설정 파일의 설명에 앞서서 eMule의 credit system에 대한 설명을 하는 것이 좋겠다. P2P의 기본은 '남한테 받고 나도 주는' 것이다. 그렇기 때문에 eMule에서는 credit system에 의해 나에게 파일을 주는 사람에게 더 많이 주고, 내가 많이 준 사람에게서 많이 받을 수 있다. 이것은 비슷한 파일을 공유하는 사람들끼리 서로 혜택을 주게 하기 때문에 드라마면 드라마 게임이면 게임, 공유하는 사람들끼리 더 쉽고 빠르게 파일을 공유할 수 있게 해 준다. credit의 계산은 쉽지 않지만 홈페이지에 설명되어 있다.(주: 더 자세히 알기 위해서는 이곳을 참조)
credit은 어디에 저장되는가? credit을 local에 저장했다가는 문제가 생긴다. 사용자가 hack을 할 수 있는 것이다. 아무리 어려운 암호화를 하더라도 깨질 수 있기 때문에 나의 credit은 나의 컴퓨터에 저장되지 않는다. 그 대신에 그 credit으로 나와 관계를 가지고 있는 사람의 컴퓨터에 저장된다.
그러므로 내가 credit의 보유자라는 증명을 할 필요가 있다. 그 때문에 존재하는 파일이 preference.dat과 cryptkey.dat이다. cryptkey.dat 파일은 eMule의 첫 실행시 생성되며 그 이후로는 절대 바뀌지 않는다. preference.dat도 사용자의 인증을 위한 파일이지만 매 실행시 타임스탬프가 변경된다. 방금 말한 credit은 다른 사람의 컴퓨터에 clients.met 이라는 파일로 저장된다.
사용자의 신원 확인은 다음의 네 단계로 이루어진다.(그림의 출처는 eMule Official Website)

RSA라는 암호화 방식으로 키를 생성하며 cryptkey.dat에 저장된다.

공개키 A,B와 임의의 수 X,Y를 사용자 A,B 간에 교환한다. 공개키는 clients.met에 저장된다.

임의의 수 Y, 공개키 B에 대한 인증키를 공개키 A로 만들어서 A가 B에게 보낸다.

임의의 수 Y와 공개키 B가 공개키 A에 맞는지 확인한다. 맞다면 A가 확인된다.
지금까지 eMule에서 사용되는 사용자 확인과 credit에 관한 기본적인 것들을 설명하였다. 그러면 지금부터는 설정 파일에 대한 간단한 설명을 하겠다. 이 내용은 eMule Official Website의 Help&Support 중 Files Used의 번역에 지나지 않는다.
Known.met
과거에 받았거나 지금 받고 있는 파일에 대한 정보(크기, 이름, hash 등)를 저장하는 파일, 삭제해도 다음 실행에 새로 만들어진다. 사용하지 않으려면 설정에서 "Remember downloaded files"를 체크 해제한다.
Known2_64.met
받아졌거나 공유중인 파일의 AICH hash를 저장하는 파일 역시 삭제해도 다음 실행에 새로 만들어진다. 사용하지 않으려면 설정에서 "Remember downloaded files"를 체크 해제한다.
Known2.met
최근의 버전에서는 사용되지 않는 파일. 지금의 버전을 사용한다면 삭제해도 된다.
Cancelled.met
완료되기 전에 취소된 파일들을 저장해서 같은 파일을 실수로 또 받기 시작하지 않도록 해 준다. 사용하지 않으려면 설정에서 "Remember cancelled files"를 체크 해제한다.
Clients.met
나에게 credit을 가진 사람을 저장한다.
Server.met
서버리스트를 저장하는 파일이다.
Emfriends.met
eMule의 친구 기능을 위한 파일이다.
Preferences.ini
컬럼 크기 등을 비롯한 설정, 창 설정을 기억하는 파일이다.(주:이 파일은 Mod에 따라 추가된 내용이 있기도 하다. 또한 preferences.dat과는 전혀 무관한 파일임을 기억해야 한다.)
Fileinfo.ini
공유 중인 파일에 대한 설명이나 등급을 저장한다.
Category.ini
다운로드 카테고리의 설정을 저장한다.
Ipfilter.dat
IP를 차단하거나 접속 등급을 설정하는 파일이다. (주: 사용하려면 수시로 업데이트 해 주는 것이 좋다.)
Onlinesig.dat
온라인 서명은 접속된 서버와 업로드, 다운로드 통계를 저장한다.
Preferences.dat
유저를 확인하는데 사용된다. Credit system과 친구 기능에 사용된다.
Sharedir.dat
공유 폴더의 경로를 저장한다.
Staticservers.dat
IP가 변하지 않는 정적인 서버를 저장한다. eMule의 서버 창에서 정적 서버를 설정할 수 있다.
Addresses.dat
eMule 시작시 이 파일에 쓰인 주소들에서 서버리스트를 업데이트 한다.
AC_SearchStrings.dat
검색어의 자동 완성(과거에 입력했던 항목 저장)
AC_ServerMetURLs.dat
Server.met 업데이트 주소의 자동 완성
Cryptkey.dat
384bit RSA key를 저장. 만약 지운다면 preferences.dat도 같이 지워야 한다.
Collectioncryptkey.dat
Collection 기능을 사용할 때 생긴다. 1024bit RSA key를 저장하고 collection이 모두 한 사람에게서 나왔음을 증명하는데 사용된다(무슨 기능인지 잘 모르겠다).
eMule.tmpl
Web Interface를 사용하는데 쓰이는 파일
xx.part
이 파일은 기본적으로 config이 아닌 temp 폴더에 들어있다. 아직 다 받지 않은 파일이 저장된다. 아직 받아지지 않는 부분은 0으로 채워져 있지만 NTFS의 경우 sparse 기능을 써서 0으로 공간을 채우지 않음으로써 받는 동안 디스크 공간을 아낄 수 있다.(주: 그렇지만 이 기능을 사용하면 디스크의 단편화가 심해질 가능성이 크다.)
xx.part.met
모든 part 파일은 9 MB로 나뉘어지는데 각 파트별로 hash 값이 계산된다. 이 hash들과 파일명을 *.part.met에 저장한다.
xx.part.met.BAK
Crash에 대비해서 *.part.met의 백업파일을 저장한다.
eMule.log
Option -> Extended에 Log 저장 기능이 켜 있다면 eMule 시작 중에 나오는 log를 이 파일에 저장한다.
eMule_Debug.log
Option -> Extended에 관련 설정이 켜 있다면(아마도 Log 저장 기능의 하위 설정) debug 창의 내용이 저장된다.
src_index.dat, preferencesKad.dat, nodes.dat, key_index.dat, load_index.dat
Kademlia(주: Serverless P2P 방식)를 사용하는데 필요한 파일들이다. 알려진 node, 키워드, 설정을 저장한다.
이외에도 ICF.dat(Internet Connection Firewall일 것이다) 등의 파일이 있을 수도 있으며 Mod에 따라서 다른 파일들도 있다.
eMule은 Peer-to-peer 프로그램이다. 즉 사용자간 연결을 해서 파일을 주고 받을 수 있는 전송 프로그램이라는 것이다. 사용하는 프로토콜은 ed2k. 전에 설명한 bittorrent와는 별개의 것이고 이 프로토콜은 원래 edonkey2000이 사용하던 것이다. eMule이 가지는 차이점이라면 오픈 소스라는 것. sf.net에도 등록되어 있고 이 때문에 수많은 변종(mod)들이 있다. Mod별로 다양한 추가 기능을 지원하고 나름대로의 소스 최적화가 되어있는 것들도 있다.(주: eMule의 Official Homepage에서는 Mod의 성능향상이 없음을 주장한다.)
Mod 사용에서의 주의점은 leecher mod가 있다는 것이다. 말 그대로 mod는 mod인데 소위 '매너 없는' mod이기 때문에 mod 제작자들간에 인정받지 못하고 anti-leecher 기능에 의해 ban 당하는 것이다. 과거 명성을 떨쳤던 LSD도 서버 요청 관련 기능 한번 잘못 넣었다가 퇴출당해 leecher mod가 되었다. 개인적으로는 MorphXT mod를 사용한다. 인지도도 높고 성능도 좋다.
먼저 설정 파일의 설명에 앞서서 eMule의 credit system에 대한 설명을 하는 것이 좋겠다. P2P의 기본은 '남한테 받고 나도 주는' 것이다. 그렇기 때문에 eMule에서는 credit system에 의해 나에게 파일을 주는 사람에게 더 많이 주고, 내가 많이 준 사람에게서 많이 받을 수 있다. 이것은 비슷한 파일을 공유하는 사람들끼리 서로 혜택을 주게 하기 때문에 드라마면 드라마 게임이면 게임, 공유하는 사람들끼리 더 쉽고 빠르게 파일을 공유할 수 있게 해 준다. credit의 계산은 쉽지 않지만 홈페이지에 설명되어 있다.(주: 더 자세히 알기 위해서는 이곳을 참조)
credit은 어디에 저장되는가? credit을 local에 저장했다가는 문제가 생긴다. 사용자가 hack을 할 수 있는 것이다. 아무리 어려운 암호화를 하더라도 깨질 수 있기 때문에 나의 credit은 나의 컴퓨터에 저장되지 않는다. 그 대신에 그 credit으로 나와 관계를 가지고 있는 사람의 컴퓨터에 저장된다.
그러므로 내가 credit의 보유자라는 증명을 할 필요가 있다. 그 때문에 존재하는 파일이 preference.dat과 cryptkey.dat이다. cryptkey.dat 파일은 eMule의 첫 실행시 생성되며 그 이후로는 절대 바뀌지 않는다. preference.dat도 사용자의 인증을 위한 파일이지만 매 실행시 타임스탬프가 변경된다. 방금 말한 credit은 다른 사람의 컴퓨터에 clients.met 이라는 파일로 저장된다.
사용자의 신원 확인은 다음의 네 단계로 이루어진다.(그림의 출처는 eMule Official Website)

RSA라는 암호화 방식으로 키를 생성하며 cryptkey.dat에 저장된다.

공개키 A,B와 임의의 수 X,Y를 사용자 A,B 간에 교환한다. 공개키는 clients.met에 저장된다.

임의의 수 Y, 공개키 B에 대한 인증키를 공개키 A로 만들어서 A가 B에게 보낸다.

임의의 수 Y와 공개키 B가 공개키 A에 맞는지 확인한다. 맞다면 A가 확인된다.
지금까지 eMule에서 사용되는 사용자 확인과 credit에 관한 기본적인 것들을 설명하였다. 그러면 지금부터는 설정 파일에 대한 간단한 설명을 하겠다. 이 내용은 eMule Official Website의 Help&Support 중 Files Used의 번역에 지나지 않는다.
Known.met
과거에 받았거나 지금 받고 있는 파일에 대한 정보(크기, 이름, hash 등)를 저장하는 파일, 삭제해도 다음 실행에 새로 만들어진다. 사용하지 않으려면 설정에서 "Remember downloaded files"를 체크 해제한다.
Known2_64.met
받아졌거나 공유중인 파일의 AICH hash를 저장하는 파일 역시 삭제해도 다음 실행에 새로 만들어진다. 사용하지 않으려면 설정에서 "Remember downloaded files"를 체크 해제한다.
Known2.met
최근의 버전에서는 사용되지 않는 파일. 지금의 버전을 사용한다면 삭제해도 된다.
Cancelled.met
완료되기 전에 취소된 파일들을 저장해서 같은 파일을 실수로 또 받기 시작하지 않도록 해 준다. 사용하지 않으려면 설정에서 "Remember cancelled files"를 체크 해제한다.
Clients.met
나에게 credit을 가진 사람을 저장한다.
Server.met
서버리스트를 저장하는 파일이다.
Emfriends.met
eMule의 친구 기능을 위한 파일이다.
Preferences.ini
컬럼 크기 등을 비롯한 설정, 창 설정을 기억하는 파일이다.(주:이 파일은 Mod에 따라 추가된 내용이 있기도 하다. 또한 preferences.dat과는 전혀 무관한 파일임을 기억해야 한다.)
Fileinfo.ini
공유 중인 파일에 대한 설명이나 등급을 저장한다.
Category.ini
다운로드 카테고리의 설정을 저장한다.
Ipfilter.dat
IP를 차단하거나 접속 등급을 설정하는 파일이다. (주: 사용하려면 수시로 업데이트 해 주는 것이 좋다.)
Onlinesig.dat
온라인 서명은 접속된 서버와 업로드, 다운로드 통계를 저장한다.
Preferences.dat
유저를 확인하는데 사용된다. Credit system과 친구 기능에 사용된다.
Sharedir.dat
공유 폴더의 경로를 저장한다.
Staticservers.dat
IP가 변하지 않는 정적인 서버를 저장한다. eMule의 서버 창에서 정적 서버를 설정할 수 있다.
Addresses.dat
eMule 시작시 이 파일에 쓰인 주소들에서 서버리스트를 업데이트 한다.
AC_SearchStrings.dat
검색어의 자동 완성(과거에 입력했던 항목 저장)
AC_ServerMetURLs.dat
Server.met 업데이트 주소의 자동 완성
Cryptkey.dat
384bit RSA key를 저장. 만약 지운다면 preferences.dat도 같이 지워야 한다.
Collectioncryptkey.dat
Collection 기능을 사용할 때 생긴다. 1024bit RSA key를 저장하고 collection이 모두 한 사람에게서 나왔음을 증명하는데 사용된다(무슨 기능인지 잘 모르겠다).
eMule.tmpl
Web Interface를 사용하는데 쓰이는 파일
xx.part
이 파일은 기본적으로 config이 아닌 temp 폴더에 들어있다. 아직 다 받지 않은 파일이 저장된다. 아직 받아지지 않는 부분은 0으로 채워져 있지만 NTFS의 경우 sparse 기능을 써서 0으로 공간을 채우지 않음으로써 받는 동안 디스크 공간을 아낄 수 있다.(주: 그렇지만 이 기능을 사용하면 디스크의 단편화가 심해질 가능성이 크다.)
xx.part.met
모든 part 파일은 9 MB로 나뉘어지는데 각 파트별로 hash 값이 계산된다. 이 hash들과 파일명을 *.part.met에 저장한다.
xx.part.met.BAK
Crash에 대비해서 *.part.met의 백업파일을 저장한다.
eMule.log
Option -> Extended에 Log 저장 기능이 켜 있다면 eMule 시작 중에 나오는 log를 이 파일에 저장한다.
eMule_Debug.log
Option -> Extended에 관련 설정이 켜 있다면(아마도 Log 저장 기능의 하위 설정) debug 창의 내용이 저장된다.
src_index.dat, preferencesKad.dat, nodes.dat, key_index.dat, load_index.dat
Kademlia(주: Serverless P2P 방식)를 사용하는데 필요한 파일들이다. 알려진 node, 키워드, 설정을 저장한다.
이외에도 ICF.dat(Internet Connection Firewall일 것이다) 등의 파일이 있을 수도 있으며 Mod에 따라서 다른 파일들도 있다.