Re: [閒聊] reddit有人分享讓對手斷線方法(已修復

作者: KeepHard (0.0)   2022-02-08 16:22:12
簡單翻
大意:原PO三年前發現一個可以讓對手斷線的BUG,用BBrode這個ID上傳說#1,後來回報給
暴雪,半年後BUG被修復。
三年前,我跟妳各位一樣沉迷爐石,各種爐石網站我都會逛,當時甚至想寫爐石AI,
那時候有個人在hearthsim.info寫了很多教學我看了很多,還有當時的dogdog的實況,
學他玩了那時候最有趣的排組APM priset
然後接下來我找到一個地方,教你怎麼怎麼解開封包,然後我學了一些東西,做出了像是
把自己的卡牌動畫加速,所以我一回合可以出超多牌,Topsy Turvy Priest當時就用這套
完全不用擔心動畫速度,只要記得怎麼出combo(有個combo sim)。
接下來幾周我用32/1野豬上傳說。這套我看不懂沒玩過ㄏㄏ
接下來呢? 我繼續看封包有什麼,一開始我把所以卡變成有動畫的(金卡)然後把金卡邊框
拿掉,說真的滿美的,然後還想說做一個mod讓其他人能玩(雖然我後來都沒做)。
但後來我發現一篇文章提到,一個方法可以去查對手的牌。
(原文下面有附上說明,省略)
我試了一下發現不太好用,所以我繼續研究那篇文章提到的其他東西
1.查看不屬於你的牌組? 0
2.在競技場用自己的牌組? 0
3.選競技場中三選一以外的牌? 0
4.創建一套可以加入多張你沒有的卡或是怪卡(像是標準的英雄或是英雄能力的卡) 有囉
結果在配對的時候他認為你的卡不屬於標準,所以配對不到對手 GG
5.還有一堆類似的,但都沒什麼用。
然後我就發現這個FindGame的要求
byte[] array = Guid.NewGuid().ToByteArray();
long currentFsgId = FiresideGatheringManager.Get().CurrentFsgId;
bnet.protocol.game_master.Player player = new
bnet.protocol.game_master.Player();
Identity identity = new Identity();
identity.SetGameAccountId(gameAccountId);
player.SetIdentity(identity);
player.AddAttribute(ProtocolHelper.CreateAttribute("type",
(long)bnetGameType));
player.AddAttribute(ProtocolHelper.CreateAttribute("scenario",
(long)scenarioId));
player.AddAttribute(ProtocolHelper.CreateAttribute("brawl_library_item_id",
(long)brawlLibraryItemId));
player.AddAttribute(ProtocolHelper.CreateAttribute("deck", deckId));
player.AddAttribute(ProtocolHelper.CreateAttribute("aideck", aiDeckId));
player.AddAttribute(ProtocolHelper.CreateAttribute("request_guid", array));
player.AddAttribute(ProtocolHelper.CreateAttribute("fsg_id", currentFsgId));
GameProperties gameProperties = new GameProperties();
AttributeFilter attributeFilter = new AttributeFilter();
attributeFilter.SetOp(AttributeFilter.Types.Operation.MATCH_ALL);
attributeFilter.AddAttribute(ProtocolHelper.CreateAttribute("GameType",
(long)bnetGameType));
gameProperties.SetFilter(attributeFilter);
gameProperties.AddCreationAttributes(ProtocolHelper.CreateAttribute("type",
(long)bnetGameType));
gameProperties.AddCreationAttributes(ProtocolHelper.CreateAttribute("scenario",
(long)scenarioId));
gameProperties.AddCreationAttributes(ProtocolHelper.CreateAttribute("brawl_library_item_id",
(long)brawlLibraryItemId));
BattleNet.FindGame(gameProperties, new bnet.protocol.game_master.Player[] {
player });
看起來沒什麼不過用看看就知道了
我先送出這段,然後發現我自己斷線了,算是一個BUG沒什麼用途。
接下來創另一個帳號,然後把代碼裡面的gameAccountID換成我原來的帳號ID
挖!我在另一個帳號玩我原來帳號的那場遊戲
再度把上面那串請求送出,我又斷線了
等等好像發現了什麼
我們知道對手的ID嗎? YES
我們知道對手的DeckID嗎? no
怎辦
嘿嘿,你玩單人遊戲的時候DeckID=0
所以
1.用一個mod每5秒就送出
gameAccountId = GameState.Get().GetOpposingSidePlayer().GetGameAccountId();
bnetGameType = BnetGameType.BGT_VS_AI; scenarioId = 0xBA2 /*Boom Labs*/;
deckId = 0;
把他丟進Assembly裡面
2.開一個新帳號,取名叫BBrode。
3.從rank50開始
4.用這個mod跑12小時
5.Legend#1
6.用HackerOne回報給暴雪
類似第三方的黑客回報懸賞網站
7.賺錢
8.半年後修復
後面就是原po的感謝還有跟當年被BBrode給大屠殺的各位道歉
然後RIP Hearthstone
作者: starjack2001 (李也鴉信)   2022-02-08 17:09:00
我手邊有兩台設備 一台桌電一台筆電 桌電的主機離筆電距離不到180公分同樣用無線網路,但只要用桌電打爐石就會一直斷線跳出筆電從來沒這種狀況同樣有下載hs後來我斷線了一個下午之後開始實測,我的mc 伺服器、discord 機器人、twitch跟yt 實況全部都連得好好的,但桌電就是會斷線

Links booklink

Contact Us: admin [ a t ] ucptt.com