Fixim Last.FMクライアントまたは無料ラジオの入手方法

画像

簡単な教育プログラムから始めるには:

Last.fmは、音楽をテーマにしたオンラインプロジェクトであり、その主なサービスは、ユーザーが聴いている音楽に関する情報を収集し、個々のチャートおよび一般的なチャートでカタログ化することです。 (c)ウィキペディア





むかしむかし、芝生がより緑になり、ITコミュニティの興味のある個人がまだInstagramを知らなかったとき、 Last.FMプロジェクトは一般的に無料で、お気に入りのアーティストや類似のアーティストによる作曲で構成される「ラジオ」を聴くことを可能にしました制限。 その後、商用コンポーネントは料金を徴収し始め、無料ラジオは一部の国にのみ残されたため、CIS国の住民はプロキシを検索するか、サービスを使用する可能性について月額3ドルを支払うことを余儀なくされました。



もちろん、誰もプロキシに煩わされたくなかったので、ユーザーはラジオを無料で聴く方法を探し始めました。 判明したように、Last.FMは実際に無料リスニングの可能性へのアクセスをブロックしませんでしたが、これは最新バージョンの公式クライアントにとっては不可能でした。 結論:オーディエンスの一部は代替クライアントに切り替え、一部は古いクライアントの更新を停止し、一部は有料または他のサービスにアクセスしました。



それでは、クライアントの新しいバージョンで無料でラジオを聴くことができなくなった変更は何ですか? それを理解してみましょう。



まず、新しい顧客と古い顧客が必要です。 新しいものは公式サイトからダウンロードでき、古いものは、例えばrutrekerから取得できます。 新しいクライアントと古いクライアントを異なる仮想マシンに配置し、真っ向から進みます。ラジオステーションの再生を開始するときにスニッファーが何を示しているかを見てみましょう。



画像



ご覧のとおり、 HTTPプロトコルが使用されています 。これにより、分析がさらに容易になります(もちろん、文書化されていないバイナリプロトコルは解析が困難です)。

次に、古いクライアントと新しいクライアントからのリクエストを比較します。



画像 画像



目を引く唯一の違いは、 GETリクエストに追加されたapi_keyパラメーターです。 クライアントの動作に影響するかどうかを理解してみましょう。 いくつかのデバッガーの下でクライアントを実行し( OllyDbgを使用します )、ブートさせ(F9)、プロセスメモリを開き(Alt + M)、目的のパラメーターを探します(Ctrl + B)。



画像



目的のパラメーターを含むメモリには4つの場所があり、それらはすべてLastFmTools1ライブラリにあります。 このパラメーターがコードでどのように使用されるかを見てみましょう。 これを行うには、api_keyテキストの直前にある&文字を含むバイトを選択します。



画像



なぜ彼なの? GETリクエストは、アンパサンドで区切られたkey = valueの形式のフラグメントから構築されます。 この場合、開発者はクエリパラメータを使用して連想配列を作成し始め、そこからペアをPHPのimplode関数のようなものと組み合わせませんでしたが、リクエストを既製のピースの形で単純にハードコーディングしました。



画像



実際には、実際には、 ASCII文字で構成され、ゼロバイトで終わる古典的なC-stringであることがわかります。 したがって、メモリ内のデータを操作し、文字列を無害なアンパサンドにトリムできます。これにより、要求が損なわれず、この場合の最後のクライアントの動作を確認できます。 &の後の文字をapi_key文字列が見つかった場所でゼロバイトに置き換え、再度ラジオの再生を開始します。



画像



奇跡! ラジオは何も起こらなかったかのように再生されます! ただし、無料のラジオを聴くために、デバッガーの下で毎回プログラムを実行する必要はありません。 次に、任意の16進エディターを使用して 、その中のLastFmTools1.dllファイル(Last.FMディレクトリーにあります)を開き、&api_key行が見つかった場所を見つけ、上記で説明したように、アンパーサンドの後のバイトをゼロバイトに置き換えます。



出来上がり、無料ラジオ付きの最新バージョンのすぐに使えるクライアントを入手しました。



関心のある方は、Last.FMのアドオンを作成する方法についても読むことができます。これにより、ネットワーク経由でラジオをストリーミング したり、タスクバーを介してLast.FMクライアント管理追加したりできます



All Articles