私は 15 年前のインターネット ゲームを持っています。開いているときに、ユーザー名とパスワードを入力してゲームのサーバーに接続できます。ゲームのウェブサイトでは、どのユーザーが接続しているかをいつでも確認できます。
ユーザーが最初にゲームを開始せずにサーバーに接続できるように、アプリまたは Web サイトにボタンを配置したいと考えています。
Wireshark の助けを借りて、私は HTTP 要求を知っています。
POST http://registry.mygame.com/userverification_web.php HTTP/1.0
Accept: \*/*
Accept-Language: sv
Content-type: application/x-www-form-urlencoded
Accept-encoding: gzip, deflate
User-Agent: mygame
Host: registry.mygame.com
Proxy-Connection: close
Pragma: No-Cache
data=0AQ7aA0iQQQQQQZSKOds1ZX280kW2lCznNUD9wjIInF2pX114v8E0bdRZtVMzkkdCiQeSTysCJYUjVGMYTzdMlOe0x2uhE30<MmnhP5ZZYQQ
次のリンクは、私が望むことを正確に実行します
しかし、ユーザー名とパスワードだけで動的にリンクまたはリクエストを作成する方法を知る必要があります。
ユーザー名とパスワードが常に同じ場合でも、データパラメーターは常に変更されることがわかりました。
un= userと pw= passの 10 の例を次に示します。
0AQ7aA0iQQQQQQZSKOds1ZX280kW2lCznNUD9wjIInF2pX114v8E0bdRZtVMzkkdCiQeSTysCJYUjVGMYTzdMlOe0x2uhE30<MmnhP5ZZYQQ
eA0QQAiAQQQQQQZSdt3B>u7K9HLkiqtNF5yfaJdi2wO>BeyE4kh>lGJY58wWDspycSu>HXckytHjk2CmNuiWgd0vH2>yJkkf3kApwCtikQQQ
eaV<eVilQQQQQQZSdV7m148ZQPHlPqol4H>CMbMAx>wi7LPv0z29zQh2QPpSuot0ivEPYtJmvkjJG9iMc3mNo3xz24<rx9v01PptOa<ILYQQ
SSo00l<iQQQQQQZSzwpUPC7moyJnbnBwhBwvFWSmdbIYDcTmD9aA2Nt46Ahz>SAdUpR2fsp5EuXyTZXSxKQUZ3DKHAJ1xU>Az9kEtBi7fjQQ
oCoCa<e>QQQQQQZSb7rDbY6m2WqZiq0>VdIUPQ37XlnPL1Hx27EKalQL2eh9qHEXjKZm4UCNdCMrXtcw>LVnw0jquYSXI53fMwsXnWJOgQQQ
V77l0Qa1QQQQQQZSM0GEa2KWpXmIlxnkmdThdy7XpTsbKiqKsRNGqzzUVS<Xkk1yk9xvIUHXogcZTalOtCS6N0MrIsrtDlPdy5fkD355xYQQ
VQQle7ZVQQQQQQZSW09bHYjoICZ>ma1G1AYQk34P5aozsb6Q7WAcu5wr2pwa6gWACx0x8hC6rmysq6S2AkYehy<w4JOsW<cJP8gruWROxYQQ
Zi7oeZeQQQQQQQZSan<g9HK74Ap4pAatxM6GPxIv3MYc4byvtBo6D5W7X7iCtVh377NabGBOPlAPrdUh5<dgKaxFKxBbr3Du4NwicGvvXTQQ
eQAiS7o>QQQQQQZSwqZCtiR1>G>FE0hdkye>ywjpe2D6Q>6dxZWrj5Szx0F4KikHdA3hGS8BZuakyD4Ya8OX7poOe1fDaqMmKqcoZiAZsjQQ
QlCZeZSSQQQQQQZSXOKdnNFTDy2Y9Ip5qHBiKJKuZjOReSn3xrC8AX1td41dWnDMM1RJSi6eK9NpHqWFq6PfTU7dgNM6Cj9iOWNg>BE<<TQQ
un= usernameと pw= passwordの 5 つの例を次に示します。
a>ViQe>lQQQQQQZ1LgSTcziSVG4vzpOrs7aK90X8NVtDYvCjzZiDd<KsldGgCVRGABKEHf5YMYKb4jL6CMmbGZdxbZS<FTdmrhewdQkGP0ng9xFXBnt>
eiSlSi0SQQQQQQZ1AAoSDC2d8DERRoAaDmEup>ApqrSmBfVGNoZ8IZLBkkFk5VBt0dI5S<985fgvu<sY0uD1VcFno5bYIBWm<1wPOe2je>f9yq2AWH2E
ZoCSS<1CQQQQQQZ1xGPeYGqe7Vmz1puFNGMQdHmU7IRI9sNjOcSha0uW>XKrGfp5c2PcfquV>7x>WTWpRBVBa4A4eiB7GXchw53>UV9Ss6p2QE5paL4a
QiZVoi>AQQQQQQZ1BGDGltDMqisnMzMYnUjysh5iXoNo<5<7AU5rkoVgUPrCVqigjkAK6wbLpo4hVNsO<ORk96LYYZhswqz1vRwSFfsC7DP3JTdyjqBw
aQa1eli1QQQQQQZ15EclRMTZooyBgFp1VHiX8NsoKZjdH6jEVWZ63mCbC2Rd8o2fcscp1WiFhtK9HZvjJHYdpX2xu2adYMgQseHa83a3ycnOo7WiikaB
un= username12345678および pw= password12345678の 10 の例を次に示します(両方の最大長)。
Ql>ZaClQQQQQQQe12js2OuA7Xxt04qIIF<tVTqxYmfkBYv7Yl3UAykQiGeMB4Yl9XQUnisQ<DmDlIKK9JDbsjet2K>LbqJrH3jvb3lmt24fxLs5S6oZQRqh13P28xwAGXUvENIBLlQQQ
0aAZo07iQQQQQQe1C>asdqcRlEBTsMfp9<1ntl90myrvvHTlVRZt9HpbHUDp5mBHBjYUjcKORGL38N0GmEtaxH7CxglgH78m72Qd7b3NuwMMJwIlm3zV>FiAIOvT4vHDLRP4W<<MQYQQ
eZAAaQloQQQQQQe19HAT284ZfwNL6piwZ1Vjn>6QL0Rx81Xw1X>barJLavfjmU3PMO1Z<VwheSTmiCbyZ2IQjSt0n6hxKoawYsC2BUCiJUVDPBbD40yN0hknqBiDV2DmcBuIHAU1RQQQ
S>A>ei>>QQQQQQe1WQT2gv511HIyf79uihupoGcDC0rWgV332Q9lTc>Icu5fXrIT5MKBAKgIEJjLRaT1i7JsSUsF<H>tf<pL7d5pX1WLxLV0R7D<aXps1IxCQ<NSE40idMN>IwqaMjQQ
o1V<07<0QQQQQQe18Ie6goKPVT9AUWInpsmCeEnErAOwLxSJOe3FKhkbXwzR3zMTVTMk7sXGBPZsyb7YfgSq19XgwmMFW8HN>8PSsOSPFYA5YqUiPNYGygt5rtg09JWEkb<VGyI>XYQQ
aSAl0<Q0QQQQQQe1I>DpHYNFIkn58DiGpd9C7SQDk<I3u>q24PTG05XUZm3JM>GKbX2qBw9dEjFU17HSiM3WGkqqn6MnF3ondonZ85eubUPp5qof3DKX35RvIABudO6oFM5uA4pYUQQQ
eSola>a0QQQQQQe1kVT<jAANyYlT0G8i6nNg>bRAyERU0BMjZqn9MlPQUcNfN0GKQzHrsikxPSZUWJfMD7okYAu85UVK0CjEc9FU4Fo2bxt07hYu<jqX6Gpf4R5jpRO6ukU6ziDIOQQQ
ZZ<<QCV7QQQQQQe1lYukgPlKXDS9Se1KvoNd3JK9RRZ05pVPobowZupMwXEdGeSH6rEYLORfAbJujIHnjsItw4geLH5Hm7bgpyFmx0MTbqKKF87Rr5IdezDRkcXRYpAF9ZEIBG4cpTQQ
oiQlZZZaQQQQQQe12EmQbyfnlYxJ8<36>cNo4>C1Lp2qJB2gSiCieytdXBZaBId0MA3WbANmh<VLZqIqy0AOhf1QZnEuk7cYAh0Rrs45unuB12BBz4inJgpZ4grtTsV<1CS91eKi3YQQ
QCo<a<eQQQQQQQe11hkx90MGMJtvzUx2JiyOQUyHwPnN03QxZ7FULKnOkPAvb>38psB1RWc8uadYSWkbNraTw5XUxcD0RpT3f7vbu4nfPfoIt7no>XyHpaRwjUvdv<LmvhdT2xbFpTQQ
ここで何が起こっているか知っている人はいますか?「gzip」と「deflate」を気にする必要がありますか、それとも「コード」を解決することに興味がないのでしょうか? 私が知っていると思うのは、明らかにユーザー名とパスワードがエンコードされており、サーバーはそれをデコードする方法を知っている必要があるということです. 同じ資格情報の「コード」は決して同じではないように思われるため、「コード」にもキーが必要だと思います。
開発者がアルゴリズムに何を使用したか考えていますか? たぶん、鍵は「QQQQQQ」の前にあることです。
エディターで game.exe ファイルを開きました。ゲームは Visual Studio 6.0 でコンパイルされているようで、c++ で書かれています。ほとんどのものは判読できませんが、HTTP リクエストの定義は判読できます。しかし、これは Wireshark で見たものと同じです。そして、パラメーターが何の結果なのかわかりません。読み取れるのは「data=%s」だけです。