Re: [討論] tmi2_v3_改

看板mud (網路地下城/文字遊戲)作者 (小太保)時間11年前 (2014/06/10 07:22), 11年前編輯推噓0(001)
留言1則, 1人參與, 最新討論串7/10 (看更多)
※ 引述《happyhero (無用)》之銘言: : 3.這個比較困難 不過我記得早期的Es2lib 或是國外的DSlib : 裡面都有個intermud的系統 : 同一個mudlib架設的mud之間可以互相通訊 : 使用mudlist可查詢到所有mud的IP跟Port : 可直接連線進入對方mud裡 : (Tmi2裡面好像也有類似的程式碼 但不知如何運作) 這我不是很熟呢,不過應該核心檔包括底下 /adm/daemons/channels.c /adm/daemons/network/I3.c /adm/daemons/network/某些被改成 .old 的檔 /adm/daemons/network/I3/ (Intermud 相關目錄) /adm/etc/與上面有關的檔 sanc 以前曾用同一份 driver、同一份 mudlib,架過 port 不同的 兩個 mud (玩家區與巫師區),那個時候是透過像 gwiz 等指令,做 兩邊溝通的。 其中 /adm/daemons/network/I3.c 是最核心的東西,intermud 相 關的資料都是被 I3.c 所儲存,它以 private 宣告了非常多的函數 所以也不好 call 來做一些測試。 可是我們可以修改它。 static object router_socket, oob_socket, debugger; static mapping services; static int debug_level; static int bootflag; // Used to recognize the first channel list we get. int router_password, mudlist_id, chanlist_id; mapping mudlist, chanlist; void create(){ if(sizeof(get_dir(I3_SAVE_FILE))) restore_object(I3_SAVE_FILE); bootflag=1; setup_services(); . . } update I3.c 時它會呼叫上面的函數。 void setup_services(){ mixed dir; string name; int i; services = ([]); #ifdef I3_SERVICE_DETECT dir = get_dir(I3_MODULES); for(i=0;i<sizeof(dir);i++){ sscanf(dir[i],"%s.c", name); if(name) services += ([ name : 1 ]); } #endif services += I3_SERVICES; return; } 到這裡大致就可猜測,services 儲存的東西就類似底下 > ls Path: [/adm/daemons/network/I3] 2 ChangeLog 7 channel.060596 1 locate.c 2 auth.c 9 channel.c* 4 tell.c* 4 channel-0505.c 2 finger.c 3 who.c* services = (["who":1, "tell":1, "finger":1 ,.....]) 我的意思就是說,你想知道一份系統檔是幹嘛的,就先看它的 create 做些什麼,然後因為你有權限可以改系統檔,自然就可 修改它,比方內建一些方便你讀取資料的函數,這樣自然就不 會受到 private 的限制,可自由讀取其資料。 然後透過讀出來的資料再去看相對映的函數內容,你就會知道 它是幹嘛用的。 那因為這不是我早期想做的東西而且我也不熟,所以我會等我 有空時再研究。(總之就是現在沒啥空) > ls Path: [/adm/etc] 2 ChangeLog 3 groups 1 DEADJOE 3 groups.bak 79 I3.o 你可以輕易發現 I3.o 檔相當龐大,但是在 win 下用記事本等 相關軟體很輕易可以打開它,透過撰寫適當的物件,也能輕易地 載入並解析它。 應該要懷疑的是,它到底是透過人工建的,還是 tmi mud 之間 透過 I3 相互溝通後相互建立的? Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.75.253 ※ 文章網址: http://www.ptt.cc/bbs/mud/M.1402356160.A.9B3.html ※ 編輯: laechan (61.224.75.253), 06/10/2014 07:24:42

06/10 07:31, , 1F
我推測是後者,所以日後可做相關test
06/10 07:31, 1F
文章代碼(AID): #1Jba70cp (mud)
討論串 (同標題文章)
文章代碼(AID): #1Jba70cp (mud)