[公告] 痞客豐年終!萬元禮券限量送~[公告] 第一屆痞客邦金點賞登場!2014年最有影響力的部落格即將揭曉[公告] 痞客邦新服務上線 每日星座運勢測算【得獎名單公佈】[公告] 痞客邦應用市集全新改版![公告] 痞客邦「應用市集」新 App 上架-iFontCloud Professional
好康道相報
加入部落軌道,讓你的部落格有更多人知道 《按此加入》《使用心得
欲轉貼本站文章者,只要註明出處及網址即可,不需我同意了,謝謝您的配合
留悄悄話的網友請注意:如果您非痞客邦會員(包含使用FB/Google+帳號),是看不到回覆的喔

在觀看本文前,請閱讀以下事項
=======================
本教學可能會破壞遊戲的公平性與娛樂性,或是違背遊戲的使用者規範
請使用者自重,盡量以純研究為主
如果因修改封包造成使用者任何損失,本人不為他人相關行為負責
=======================

現今的網頁遊戲相當熱門,從開心農場開始,網頁遊戲如雨後春筍般的冒出
跟傳統網路遊戲相比,只要可以上網且能顯示Flash,無須安裝其他軟體,就能在任何地點遊戲
網頁遊戲大多以可愛風格呈現,吸引了平常不玩遊戲的女性玩家
且網頁遊戲大多是免月費+商城的形式,如果哪天撒手不玩也不會損失太多

目前網頁遊戲大多由Flash寫成,原因在於Flash在不同瀏覽器上可以顯示相同效果
其架構是玩家在單機Flash進行操作後,會傳遞網路封包至遊戲伺服器(Server)
伺服器運算過後再將結果回傳至Flash接收
由於封包走的是http協定,因此封包內容很容易被解析或攔截
而遊戲封包的內容,往往紀錄了許多遊戲不會顯示的內部資訊
利用重複傳遞封包等功能,甚至可以做到自動在開心農場拔菜等效果

本篇教學就是教你如何觀看/修改網路封包

 

※HttpFox

HttpFox是Firefox的一個開放原始碼的外掛套件
其功能可以解析Firefox所接收到的Http封包
如果你只想觀看封包,而沒有要做修改的話,建議使用這種方式
當然,這套軟體的限制就是必須使用Firefox瀏覽器

下載位置

安裝完HttpFox後,請在功能表點選[工具]-[網頁開發者]-[HttpFox]-[Open In Own Window]
就可以開啟HttpFox的使用介面

charles_20.png

首先,請先點選左上角的Start按鈕,接著在瀏覽網頁的時候
下面的列表就會傳送源源不絕的封包進來

charles_3.jpg

我以這個讓我又愛又恨的網頁遊戲Tyrant為例
這遊戲的任何資料都會去跟伺服器要求封包資料
例如,我在遊戲中點選了Ranking之後,HttpFox就會得到一個網址上有getFactionRankings的封包
裡面記載的就是排行榜的封包資訊

charles_4.jpg

封包內容我們只需要看Content即可,其他資料對一般使用者沒什麼幫助
看了內容可以發現,Tyrant裡的內容全都是用JSON格式來傳遞的
有了這些資料後,想要處理/備份之類的都很容易

另外,遊戲的封包會與其他封包混在一起,若只想要看某些封包
可以在上方搜尋欄打上關鍵字過濾

charles_21.png

可以看封包,有什麼好處嗎?事實上,好處可多了
比方說,Tyrant載入時會載入為數不少的資料檔,像是你個人的記錄中(message=init)
記載了各種你想都想不到的資訊,例如你花了多少WB、牌組與任務紀錄
甚至是參加的Raid的BOSS Health
而工會會員資訊也記載了會員最後上線時間...等平常看不到的資訊,相當重要

順便一提,在接收完封包後,請適時的按下Stop或Clear
因為這些紀錄非常消耗記憶體,紀錄越多,Firefox越慢...

 

※Charles

如果今天你想做的不只是看封包,還希望能修改/重複傳送,或是不想安裝Firefox
這樣HttpFox就不敷使用了
以下介紹的是一款很知名的封包監測軟體Charels,不但有上述的功能,而且在IE/Firefox上皆可使用
(Chrome能不能用我不清楚,據其他人說是不行)

由於Charles是共享軟體,未註冊前每次只能使用30分鐘
如果手邊沒有這軟體的話,請低調囉...

charles_5.jpg

安裝完Charles後,請開啟主程式
如果今天你使用的是Firefox瀏覽器,請先點選[Porxy]-[Mozilla Firefox Proxy]這個選項
會出現視窗確認是否要在Firefox安裝這個外掛
如果安裝完成後,前方會出現打勾圖示,這樣才能在Firefox使用Charles

 

[接收特定封包]

前面提到的HttpFox並不能只紀錄特定網址的封包,只能讀取所有封包後顯示特定關鍵字的封包出來
差別在於HttpFox背後仍會接收許多其他封包,造成記憶體大量消耗
如果今天安裝Charles只為了修改特定的遊戲,我們可以指定Charles只接收特定網址的封包

點選功能表的[Proxy]-[Recording Settings],點選[Include]分頁

charles_6.jpg

點選Add按鈕後,可以設定過濾封包的條件,以Tyrant為例,輸入以下內容即可
其他遊戲請自行參考封包紀錄,找出其中的規則

charles_7.jpg

之後一樣底選遊戲的任意功能,左方就只會接收該遊戲的封包了
點選後,右方請選[Response]分頁觀看內容,其他分頁目前用不到

charles_8.jpg

Charles提供了各種方式解析封包,例如Tyrant使用的是JSON
當下方點選[JSON]分頁後,就會將封包內容以JSON格式建置成樹狀結構,方便讓你收合
如下圖所示

charles_9.jpg

順便一提,接收到的資料可以按右鍵選擇[Save Response...]儲存
比方說我接收到一個背景音樂檔案,我可以使用這種方式另存新檔,很方便吧

charles_19.png

 

[重複傳送封包]

這個技巧可以應用在很多方面,比方說在Tyrant中,利用Auto可以自動打完一場對戰
事實上戰鬥結果在你按下戰鬥的那一刻就已經確定了
但仍需等遊戲畫面跑完後,才能再點選對戰,很花時間
利用重複傳遞封包的技巧,我們先利用Auto進入一個Mission/Faction Fight
重複傳送進入Mission/Faction Fight的封包,這樣就能在幾秒內打完Mission/Faction Fight
或是某個成就必須在Arena跟玩家5000勝
這時也可以使用Charles重複傳送5000次跟某人對戰的封包,幾分鐘就能夠達成

這樣的作法充其量也只是便利而已
因為運算功能都是在伺服器上執行的,不會因為你多次傳送了封包就能夠無限進行任務
所以也談不上破壞平衡

charles_12.jpg

要達成這樣的效果非常簡單
首先,請點選一個存在的封包
然後按下右鍵,選擇[Repeat][Repeat Advenced...]
Repeat是直接重複傳送一次,Repeat Advenced可以指定傳送次數,如下圖所示

Repeat Advenced畫面中,Iterations是指重複次數
Concurrency是指同時進行的執行緒數目
比較可惜的是,似乎沒有辦法指定要多少秒傳送一次封包,Charles會劈哩啪啦一次傳完

charles_13.jpg

順便提醒一下,不少遊戲的封包會紀錄遊戲內部時間
如Tyrant每十分鐘(不確定)會更新一次時間的參數以及其hash
因此,如果傳送的是很古老的的封包,很有可能因為時間紀錄不同導致伺服器認定為錯誤的封包
請盡量用新的封包進行重傳

 

[修改封包]

修改封包是很容易破壞遊戲的行為,除非必要不然不建議去修改封包

修改封包能做的事情更多,比方說在Tyrant中,公會資料是由封包所傳送的faction_id決定的
但...遊戲公司蠢到沒有去判斷是否該玩家在該公會中
因此我們在讀取公會會員資料時,只要修改一下傳送封包的faction_id內容
就可以看到其他工會的名單了
還有,在競技場選人對戰時,會傳送要對戰的enemy_id
如果在傳送時攔截封包,改成其他玩家的id,就可以指定跟別人對戰了

charles_10.jpg

這裡示範的是在Tyrant觀看其他工會的會員名單
首先請選擇一個網址包含(message=getFactionMembers)的封包,按右鍵選擇Edit

charles_11.jpg

接著就可以任意修改要傳送的封包內容了
由於我們選擇了某個封包來編輯,因此內容會顯示該封包的資料
在這回合我們要修改faction_id的值
所以請將下面的分頁點到Form,然後在faction_id的Value打上別的公會ID即可

或許你會問,那我怎麼知道別家的公會ID?
遊戲中不少地方的封包會記錄公會名稱與ID(如宣戰頁面),自己尋找看看吧

修改完後,請選擇最下方的Execute執行,Charles就會將回傳封包顯示在左方的列表了

 

---
使用Edit的作法有個缺點,因為我們不是在遊戲中編輯的
因此即使回傳了內容,在遊戲中也不會顯示
例如我們修改了Arena對戰目標的封包,遊戲不會因此進入Arena
想要讓遊戲顯示相對應的內容,必須設定中斷點(Breakpoint)才行
中斷點指的是在指定的特定條件下,會中斷封包的傳遞(無論是封包接收或傳送)
讓你有機會可以修改封包內容,等使用者按下Execute後才繼續傳遞

點選功能表的[Proxy]-[Breakpoints...]

charles_14.png

按下Add新增一個條件,內容請參考各遊戲封包填寫
下方有Request跟Response兩種勾選框
Request指的是傳送封包,Response則是接收

charles_15.png

設定之後,請記得將中斷點的功能給打開
在主程式上的紅色按鈕即為快捷鍵

charles_22.png

我們以實際例子做測試,首先請打開中斷點
在Tyrant中,我們隨便選擇一個玩家進行對戰

charles_17.png

這時候由於進行了對該網站傳送封包的動作,Charles進入了中斷點

charles_18.png

在中斷點中,就能像Edit一般去修改封包內容。當修改完成之後,按下Execute即可繼續傳送
最後再回去Tyrant畫面,遊戲就會進入指定ID的對戰了
這樣做等同可以看到任意玩家的防牌......只要你知道他的ID編號(非名稱)

另外修改完成後,請記得將中斷點功能關閉,以免做出任何動作都中斷

在Tyrant這個遊戲中,若傳送封包沒有在指定秒數內回傳,會出現傳送失敗訊息
強迫你重新整理,因此修改動作請盡快完成,以免功虧一簣

可不可以修改Response呢?可以,但我個人建議不要
因為現在的網頁遊戲會一直對應Flash跟伺服器資料是否相同
如果強行修改而不同的話可能會造成資料錯亂等等問題

 

----
以上就是Charles的簡單功能介紹,Charles的功能當然不止於此,就留待各位發掘囉

再次呼籲各位網友,請將Charles用在正途上
若因非法使用造成任何損失,本人不會為他人行為負責

Posted by 蕭雲 at 痞客邦 PIXNET 留言(30) 引用(0) 人氣()


open trackbacks list Trackbacks (0)

留言列表 (30)

Post Comment
  • Private Comment
  • esc120
  • 重複傳送5000次跟某人對戰的封包不會被抓嗎...?
  • 應該會......所以我是分幾次打完的
    如果Charles有定時傳送封包的功能的話就好了

    蕭雲 replied in 2011/11/20 11:13

  • asemia623
  • 好棒的文章!推!
  • 草食性宅男
  • 好東西,連間諜都不用當了...
  • 草食性宅男
  • 好像不能直接獲得別公會的名單,還是得要靠間諜的樣子
  • 當然可以直接獲得別的工會的名單
    在宣戰的時候就可以知道別的工會的ID了
    或是對方宣過來時,也會寫對方公會的ID
    如果你回去看文件中的"宣戰目標"
    你會發現B欄被隱藏起來了,顯示出來就是每家工會的ID
    只要知道別家工會的ID,就會知道對方會員上線情形
    等於可以計算對方的活躍度

    蕭雲 replied in 2011/11/26 11:26

  • 草食性宅男
  • 防牌要看也很麻煩,如果沒有名稱要看ID會死人@@
    點看看首頁的cards (以前的profile) 也沒有response...
    想破頭了
  • 有自己公會會員名單的資料就知道自己公會會員的防牌啦
    如果要看其他公會的會員防牌,只要抓對方公會的會員名單即可
    我就一直在做這些事,不會很麻煩吧...

    要看所有卡片資料的話可以直接下載以下檔案觀看啊
    http://kg.tyrantonline.com/assets/cards.xml?1.10.1
    載入遊戲時封包就會收到這些檔案了

    蕭雲 replied in 2011/11/26 11:35

  • S.L
  • 請問我是用FB上FLASH的小遊戲
    我能以觀看封包的方式來看他的整體運作
    不過我改了傳送過去的封包
    卻好像改不了他回傳回來的封包@@

    譬如說我也是修改 對戰ID
    他回傳回來的封包也是這個ID的資料
    不過它真正的對手並不是我修改的封包

    感覺頂多只能將每天會做的事情
    記錄下來
    一次用REPEAT的方式傳送封包
    來達到一秒鐘完成所有事情
    但是好像改不太到值

    想請問 我有設接受封包的中斷點
    但是不知道怎麼改接受的封包
    可以的話能請教一下嘛

    很謝謝無意間逛到這部落閣^^
  • 其實不太懂你的意思
    你的意思是改了傳出去的對戰ID,可是傳回來是原本的ID嗎?
    這可能是你沒有修改成功?

    要改接受的封包,就是在Edit Breakpoint的地方
    將Response打勾即可
    這樣如果接收到指定條件的封包,就會進入中斷點
    這時候就可以對其做修改了

    蕭雲 replied in 2011/12/18 10:19

  • 草食性宅男
  • 我也想問這個問題,好像是伺服器拒絕修改的封包了。要連續打任務或戰爭會錯誤;明明修改成對戰公會的ID,傳回來的資料卻還是自己公會的。所以才有我之前說得仍然得靠間諜,雖然我沒開分身去當間諜,沒辦法確認這件事。
  • 很久沒玩Tyrant了,也有可能是封包有做什麼修正
    有跟hash綁定什麼之類的
    這我就不清楚啦...
    最近重灌電腦將Charles給格式化了,我也沒法測試~_~

    蕭雲 replied in 2011/12/18 10:20

  • elf
  • charles是个java代理
    附带数据更改之类的功能
    不过我一般用firebug就够了
    有些通信会附加校验
    单纯重发没啥用
    不过可以做镜像来学习还是不错的
  • 謝謝你的補充,不過我覺得兩者用途不同耶
    Firebug是用在建查網頁排版,類似IE的開發者工具
    而Charles則是你說的java代理,能夠修改封包
    Firebug應該只能改排版,不能改封包吧

    蕭雲 replied in 2012/01/26 01:00

  • 0.0
  • 請問collapse blast 這款遊戲可以使用嗎?
    如增加遊戲時間,無限愛心,無限coin....之類的
  • 因為我沒有玩過,所以沒有辦法回答你...
    要看這遊戲對於這些資料有沒有做檢查
    建議還是不要隨意修改比較好
    網頁遊戲作弊是很容易被鎖帳號的

    蕭雲 replied in 2012/04/29 23:52

  • 靈
  • 想請問一下 這個遊戲能改嗎? http://ppt.cc/8qO2

    已經使用Charles的[Proxy]-[Recording Settings]-[Include]了

    可是設定完以後 網頁遊戲動了還是沒有讀出來.."
  • 看起來這只是單機的flash遊戲
    所以跟server應該沒什麼關係喔
    你需要的是修改flash遊戲的軟體

    蕭雲 replied in 2012/07/17 01:28

  • 訪客
  • 你也知道在大陆是封掉facebook的,这会导致Charles不能获取facebook的页面数据包,我该怎么办?
  • 試試看用代理伺服器吧
    我沒遇過這問題所以也沒辦法直接幫你解答,不好意思

    蕭雲 replied in 2012/07/17 01:18

  • 17cc53
  • 這可以洗回復-.-
  • 用下去應該會被刪文吧

    蕭雲 replied in 2012/08/23 10:14

  • Private Comment
  • 小弟
  • 修改封包有秒數的限制,那麼有甚麼方法可以避免掉秒數的限制呢?
  • 我文中的秒數限制指的是Tyrant這個遊戲
    他只要X秒內沒有收到回傳的封包,遊戲就會認為你斷線了
    其他遊戲的判定時間應該不同
    因為是遊戲本身檢查的,所以我想很難去修改他吧
    (用加速器把時間調慢不知道可不可以避過檢查)

    蕭雲 replied in 2012/09/06 16:07

  • 阿益
  • 大大 我想請問一下 我在玩的這個fb遊戲
    http://apps.facebook.com/bro-basketball/?fb_source=bookmark_apps&ref=bookmarks&count=0&fb_bmpos=2_0
    可以使用Charles 修改嗎 他類似網頁遊戲
  • 其實我沒有時間去幫忙測試其他的遊戲
    不過可以跟你說一下
    Charles只能改封包,無法修改資料庫的資料
    大部分的網路遊戲或往夜遊戲都是有對封包做檢查的
    即使成功騙過,製作公司也很容易發現異常
    若被抓到可就得不償失了
    所以能不改還是建議不要改吧

    蕭雲 replied in 2012/09/23 01:19

  • 東東東
  • 我有點看不太懂
    我修改的事別種 網頁遊戲 但是我接收封包 沒有看到數據 @@ 這是怎麼回事
  • 不太清楚你的情況,我猜可能是他傳輸的數據有做過加密
    或是用特別的格式來傳遞資料,所以沒法修改吧

    蕭雲 replied in 2013/01/18 20:05

  • 安安
  • 請問單單只是重覆傳送封包,而不做任何修改
    這樣容易被檢查到嗎?
  • 如果對方server會紀錄所有傳進來的封包,是有可能發現這種不正常的情形
    另外若封包有timestamp之類的屬性,傳出去也可能被server發現異常
    詳細情形還是要看該公司的做法

    蕭雲 replied in 2013/01/30 22:24

  • Private Comment
  • Private Comment
  • skysky3310
  • 您好拜讀完您的花瓶教學後,想請問同樣方法適用在使用BLUESTACKS上進行手機上的遊戲嗎? 我也想用此方法用於全民打棒球上,不知您是否了解作法呢
  • 不好意思,我沒有玩那個遊戲,所以沒辦法給你回答喔
    你可以先看看傳出去的封包是什麼樣的形式,明文或是密文
    若是密文就不用試了

    蕭雲 replied in 2013/11/21 11:17

  • s82060400
  • 大大看了這篇文章後 我變成您的粉絲了是否有什麼聯絡方式,想要共同研究~XD
  • 謝謝你的支持
    可惜我已經很久沒用charles了,所以無法一同研究

    蕭雲 replied in 2013/12/18 16:39

  • Private Comment
  • 心敏
  • 大大你好~我只玩FB的SLOTOMANIA可以请你教我如何更改vip或增加coin的做法吗?
  • 不好意思,寫這篇教學並沒有打算幫大家修改遊戲
    也請自行研究

    蕭雲 replied in 2013/12/18 17:25

  • 小犬
  • 求解決
    全部都變Default了
    要怎麼解決
  • 什麼東西變成default啊?

    蕭雲 replied in 2013/12/18 17:25

  • Private Comment
  • Private Comment
  • Private Comment
  • Private Comment
  • XiangFneg
  • 摁....很棒的網路封包應用,請問你本身是從事電子遊戲行業嗎?
  • 不是

    蕭雲 replied in 2014/11/12 22:25

You haven’t logged in yet, please use guest status to leave message. You can also log in with above service account and leave message

other options