Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

Korea - 한국

Moderator: Moderators

Forum rules
This server is currently not maintained and tables folder (including connection info) maybe outdated. Read the wiki for instructions on how to update those information and please contribute when you obtain them. Contact Cozzie to join the team as a regular server supporter.
Message
Author
colus76
Noob
Noob
Posts: 7
Joined: 18 Jul 2009, 23:34
Noob?: Yes

Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#1 Post by colus76 »

안녕하세요 바포섭 콜러스입니다.

라그를 다시 시작한지 한 20일 되어갑니다. 다시하니 정말 재밌더군요.

하지만 생각보다 캐쉬결제를 많이 지르게 되더군요. 어느덧 7~8만원 깨졌어요 ㅠ.ㅜ

그런데 폐욘에서 봇으로 의심되는 한자로된 캐릭들이 텔포하면서 스틸에 먹자를 -_-^

봇이 되는가 싶어서 예전에 한번 써본 코어를 다시 써봤습니다만,

첨엔 그냥 잘 되겠지 했는데 로긴서버에서 타임아웃으로 막히더군요.

여기 글들을 읽다보니 src/network/send/servertype8_1.pm 에 sendMasterLogin을 추가하라고 해서

추가했더니 이젠 패스워드가 틀리다네요 -_-

그래서 직접패스워드를 파일안에 넣어보고 별짓 다해 봤지만 역시 실패 --ㅋ

포기할까 하다가 누가 스니핑을 했다는 얘기를 하길래 저도 함 해봤습니다.

WireShark 라는 프로그램을 다운받아서 스니핑을 통한 분석에 들어갔습니다.

전에 다른 프로그램도 써봤지만 이게 젤 낫더군요.

클라이언트로 로긴을 했을때와 코어로 로긴을 할때를 비교했더니 답이 나오데요.

다음은 제가 수정한 sendMasterLogin 입니다.


sub sendMasterLogin {
my ($self, $username, $password, $master_version, $version) = @_;
my $msg = pack("C*", 0xB0, 0x02, 0x13, 0x00, 0x00, 0x00).
pack("a24", "colus") .
pack("C*", 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##,
0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##, 0x##) .
pack("C*", 0x00).
pack("a15", join(".", unpack("C4", $self->{net}->serverAddress()))) .
pack("C*", 0x00, 0x30, 0x30, 0x32, 0x32, 0x36, 0x38, 0x32, 0x65, 0x32, 0x65, 0x65, 0x35, 0x0A, 0x00);
$self->sendToServer($msg);
}

그래서 colus은 제 ID이고 그 밑줄에 0x## 으로 되어있는 것들이 제 암호입니다.

클라이언트로 로긴시에 들어가는 비밀번호를 스니핑해서 16진수 48개를 0x##에 넣어준겁니다. (##이 해당 16진수입니다.)


이게 해결되니 로긴을 하더군요.

그리고 서버를 고르고 캐릭까지 골라서 맵서버로 로긴!!!

그러나 알 수 없는 패킷 02EB 라며 오류를 토해내더군요.

또 패킷분석 들어갔습니다.

역시나 코어와 클라이언트는 다른 패킷을 보냈습니다.

다음은 제가 수정한 sendMapLogin 입니다.


sub sendMapLogin {
my ($self, $accountID, $charID, $sessionID, $sex) = @_;
$sex = 0 if ($sex > 1 || $sex < 0); # Sex can only be 0 (female) or 1 (male)

my $msg = pack("C*", 0x36, 0x04) .$accountID . $charID . $sessionID . pack("V", getTickCount()) . pack("C*", $sex);

$self->sendToServer($msg);
}


코어가 클라이언트보다 훨씬 많은 더미 데이터를 보내더군요. 더미를 짤라내니 길이가 딱! 맞더군요.

그러나 여기서 문제입니다.

패킷은 다음과 같습니다.

36:04:43:ce:05:00:b3:90:6f:00:27:be:82:ba:13:49:a8:00:01

이번 패킷은 36 04로 시작하고, 붙여서 계정ID(43 ce 05 00), 또 붙여서 캐릭ID(b3 90 6f 00), 붙여서 세션ID(27 be 82 ba),
그리고 또 뭔가 붙여서 4바이트 (13 49 a8 00), 마지막으로 붙여서 남자캐릭(01)

예전에는 getTickCount()라는 함수를 썻던데 이게 아닌듯 싶습니다.

다른 함수로 매번 바뀌는 값인데 어떤 함수를 썼을까요?

저는 여기까지가 한계인듯... 함께 얘기해보고 싶습니다.

누가 힌트나 해결방법을 설명해주시면 감사하겠습니다.

질문있으시면 질문이라도 괜찮으니 남겨주세요. 혹은 colus76@naver.com 로~


ps : I don't have enough time to convert this Korean texts to English now. Sorry for foreign friends.
If you wanna know this Korean texts, please reply.

Bibian
Perl Monk
Perl Monk
Posts: 416
Joined: 04 Apr 2008, 03:08

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#2 Post by Bibian »

they most likely started using the new packets wich strip some useless bytes. Look in serverType 8_5 for some clues to how i think they are doing

colus76
Noob
Noob
Posts: 7
Joined: 18 Jul 2009, 23:34
Noob?: Yes

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#3 Post by colus76 »

Tnx, for ur reply. I worry about no reply. :(

I got to study hard. :D

colus76
Noob
Noob
Posts: 7
Joined: 18 Jul 2009, 23:34
Noob?: Yes

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#4 Post by colus76 »

To. cha32112

시작하기 전 가능한 모든 다른 네트웍기능을하는 프로그램을 종료(인터넷창, 네이트온 등)

1. wireshark를 실행 - Capture 란에 랜카드클릭하여 캡쳐시작
2. ragnarok.exe 실행 - ID, Passwd 입력한 후 enter 캐릭선택창 떳으면 라그는 이제 종료
3. wireshark에서 위쪽 아이콘메뉴 왼쪽에서 4번째 'stop the running live capture' 클릭
4. 창이 가로로 위, 중간, 아래의 3개로 나눠져 있음
(위 : 패킷리스트, 중간 : 패킷형태, 아래 : 패킷 내용)
wire01.jpg
5. 위 그림과 같이 패킷리스트창에서 본인 IP(그림상 192.168.123.101)에서 계정서버IP(그림상 112.175.128.138)로 연속해서 두번 보내는 패킷중 두번째 패킷을 선택

6. 패킷형태창에서 Data를 클릭

7. 패킷내용창 오른쪽 문자열을 보면 자신의 ID가 보임. 왼쪽편엔 HEX code(16진수로 표시)가 있음
ID에 해당하는 16진수를 찾았다면 그 아랫줄에 PASSWD에 해당하는 16진수를 찾을 수 있음
참고로 PASSWD는 암호화 되어 있음
예를 들어 6b 8d eb 33 39 ... 이런식일때, 6b가 1바이트로 16진수 2개로 표현되며, 암호는 총 24바이트임

cha32112
Noob
Noob
Posts: 9
Joined: 19 Jul 2009, 02:04
Noob?: Yes

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#5 Post by cha32112 »

자세한 설명 감사합니다..

그렇게 했더니 잘 되더군요!

그러나..역시 패킷에서 막히더군요...T^T

오픈코어는 아무나 건들수 있는게 아닌가 보네요 흑.

colus76님 께서는 어디까지 진행을 하셨나요?

colus76
Noob
Noob
Posts: 7
Joined: 18 Jul 2009, 23:34
Noob?: Yes

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#6 Post by colus76 »

음 02EB문제는 해결했습니다. 뭐 정확하게 무슨 의미인지는 모르겠지만 말이죠;

cha32112 님이 알려주셨는데, 글을 자삭하셨네요. 왜 삭제를 하셨는지 궁금하네요.

src/Network/Receive.pm 에서 아래부분을 수정하니 일단 되더군요.

'02AD' => ['login_pin_code_request', 'v1 V', [qw(flag key)]],
# Packet Prefix encryption Support
'02AE' => ['initialize_message_id_encryption', 'V1 V1', [qw(param1 param2)]],
+ # tRO new packets (2008-09-16Ragexe12_Th)
+ '02B1' => ['quest_list'],
+ '02B2' => ['objective_info'],
+ '02C5' => ['party_invite_result', 'Z24 V1', [qw(name type)]],
+ '02C9' => ['party_allow_invite', 'C1', [qw(type)]],
+ '02D0' => ['inventory_items_nonstackable'],
+ '02D1' => ['storage_items_nonstackable'],
+ '02D2' => ['cart_equip_list'],
+ '02D4' => ['inventory_item_added', 'v1 v1 v1 C1 C1 C1 a8 v1 C1 C1 a6', [qw(index amount nameID identified broken upgrade cards type_equip type fail unknown)]],
+ '02DA' => ['show_equipment', 'C1', [qw(type)]],
+ '02E1' => ['actor_action', 'a4 a4 a4 V2 v1 v1 x1 v2', [qw(sourceID targetID tick src_speed dst_speed damage param2 param3 unknown)]],
+ '02E8' => ['inventory_items_stackable'],
+ '02E9' => ['cart_items_list'],
+ '02EA' => ['storage_items_stackable'],
+ '02EB' => ['map_loaded', 'V1 a3 v1', [qw(syncMapSync coords unknown)]],
+ '02EC' => ['actor_display', 'x1 a4 v3 V1 v5 V1 v5 a4 a4 V1 C2 a5 x3 v2', [qw(ID walk_speed param1 param2 param3 type hair_style weapon shield lowhead timestamp tophead midhead hair_color clothes_color head_dir guildID guildEmblem visual_effects stance sex coords lv unknown)]],
+ '02ED' => ['actor_display', 'a4 v3 V1 v10 a4 a4 x2 V1 C2 a3 x2 v2', [qw(ID walk_speed param1 param2 param3 type hair_style weapon shield lowhead tophead midhead hair_color clothes_color head_dir guildID guildEmblem visual_effects stance sex coords lv unknown)]],
+ '02EE' => ['actor_display', 'a4 v3 V1 v10 a4 a4 x2 V1 C2 a3 x2 C1 v2', [qw(ID walk_speed param1 param2 param3 type hair_style weapon shield lowhead tophead midhead hair_color clothes_color head_dir guildID guildEmblem visual_effects stance sex coords act lv unknown)]]
};

패킷을 좀 들여다 보니 패킷의 데이터 부분이 맨 뒤쪽이더군요.

이 데이터내에 데이터 종류를 구분하는 것이 바로 02EB같은 2바이트의 코드였습니다.

맵서버 로긴까지 되고 캐릭도 이동하고 그러는데, 문제는 계속 되네요.

몬스터들을 인식을 못하네요. ??? 로만 표시되고, 스킬도 인식하는데 말이죠.

아이템리스트는 인식을 했다 못했다 하구요.

2바이트의 코드 에러가 진행하다보면 몇번을 더 나오던데, 모르겠네요.

다시 먼가를 알게되면 글을 남기겠습니다.

cha32112
Noob
Noob
Posts: 9
Joined: 19 Jul 2009, 02:04
Noob?: Yes

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#7 Post by cha32112 »

음.. 저는 몬스터 인식 이런 문제가 없었는데...음;;

글 지운건 생각이 짧았네요 ..

리시브 수정후에 잘되던데요 저의 경우는;

drip4885
Noob
Noob
Posts: 4
Joined: 25 Jul 2009, 01:41
Noob?: Yes

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#8 Post by drip4885 »

쿨러스님? 진행되신 자료좀 받아볼수있을까요? 저도 며칠전부터 라그에 빠진 1人 . . .

작년까지 코어썻었는데 도움이 될지도.. hsl881@naver.com 지금까지거좀 보내주실수있으신지요?

cha32112
Noob
Noob
Posts: 9
Joined: 19 Jul 2009, 02:04
Noob?: Yes

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#9 Post by cha32112 »

XKore 0 으로 실행하면

2분후

맵서버 에서 팅기고 30초 후 재연결 되는 현상을 어떻게 해결해야 될까요..

그냥 클라이언트 모드로 실행하면 잘 되긴 하는데..

아음.... servers.txt 문제라던데....어떻게 해야...

colus76
Noob
Noob
Posts: 7
Joined: 18 Jul 2009, 23:34
Noob?: Yes

Re: Its very difficult to login mapserver of kRO! 맵서버 로긴 문제에 관해

#10 Post by colus76 »

drip4885 / 자료는 여기 홈페이지에서 다운받아,
제 글 혹은 여기 포럼의 글들을 읽고 직접 고쳐보시는건 어떠실지요? ;;
제 자료를 드릴수도 있지만, 서버 패치때마다 어차피 IP나 코드들이 바뀌면 매번 받기도 힘들구요.

cha32112/ 계속 하고 계셨군요.
2분마다 팅기는 문제는 보안프로그램 문제라고 하셨었는데, 아직 해결 못하셨나보네요.
전 중간 중간 모르는 코드들의 에러를 만나서 패킷의 분석이 안되더라구요.
때마침 사크라이서버에서 게임을 해보니 여기가 내 세상 같아서 코어는 당분간 접어두고 그냥 라그를 즐기고 있네요.
역시 직접하니까 더 재밌네요. 사설서버에서 코어로 키워보니 재미가 그닥없더라구요.
그리고, 여기 관리자분이 다음 버젼을 만들고 계신다니 그냥 기다릴려구요 -ㅁ-

그럼 모두들 즐라요(얼마만에 써보는 말인지 -_-;)

Post Reply