ウェブパケットキャプチャ - 私のプレイリスト

最近、多くの人のブログでウェブスクレイピング(パケットキャプチャ)のチュートリアルが公開されているのを見かけ、それが私の興(きょう)味(み)(かっこつけ)を刺激し、この記事が生まれました。 ちょうど先日、私のプレイリストがKuGouのAPIとの連携が機能しなくなりました。この機会に修正し、ついでに画像付きのチュートリアルを作成することにしました。というわけで、KuGouを「メスを入れる(分析対象にする)」ことにします。 パケットキャプチャの概念について パケットキャプチャ(packet capture)とは、ネットワークで送受信されるデータパケットを傍受、再送信、編集、保存などの操作を行うことであり、ネットワークセキュリティのチェックにも使われます。また、データの傍受などにも頻繁に利用されます。 ——ゲイ百科より ここで話すのは、ウェブページで送受信されるデータの傍受であり、再送信や編集など、ネットワークセキュリティに影響を与える操作は含みません。 実はパケットキャプチャに関する記事は、2016年にはすでに複数公開していましたが、記事が古くなりメンテナンスされていないため、画像は失われたり、破損したり、順序がめちゃくちゃになっています。 ウェブ開発者、特にバックエンド開発者にとって、パケットキャプチャはあまり馴染みがないかもしれません。しかし、私はデスクトップアプリケーション開発出身なので、使うのはお手の物です。 目的: KuGouの楽曲直リンクの解析 - 私のプレイリストの修正 対象サイト: http://t.kugou.com/1md5hf5t8V2 KuGouの私のプレイリスト共有短縮URL 使用ツール: Google ChromeのF12キー(または Ctrl + Shift + I、または右クリック > 「検証」)開発者ツール (注意:以下のチュートリアルは画像と合わせてご覧ください。見えにくい場合は右クリックで新しいウィンドウで画像を開いてください) ここではモバイル版のページをキャプチャします。なぜならPC版ではプレイリスト全体が直接ソースコードに返されるため、解析が不便だからです。モバイル版ではJSONが返されます。 Preserve Log:ページ遷移後も以前のログを保持する機能 左上隅の携帯電話アイコン:現在のブラウジングインターフェースのUAをモバイルUAに切り替える URLを入力してEnterキーを押しアクセスすると、ウェブページがリダイレクトされます。 ステータスコード302、リダイレクトアドレスを取得(必ず画像を確認してください。テキストの説明は簡略化されています) パケットキャプチャはここまでで終了です。以下、分析を開始します: 確かなのは、KuGouサイトの音楽リンクは決して固定ではないということです。 これまでの経験からすると、これらはすべて疑わしいパラメータです。 パケットキャプチャログを丹念に探すと、プレイリスト全体の取得方法であるlistが見つかりました。そして、楽曲の基本情報も含まれています。 listリンクを分析すると、ここのパラメータは以前のものと非常によく似ていることが明らかです。 次に、各楽曲のリンクを分析します。 楽曲の直リンクの有効期限はだいたい24時間程度で、無効になります。 引き続きパケットキャプチャログを確認します。 楽曲のハッシュ値を含めることで、楽曲の関連情報と直リンクを取得できます(ハッシュ値は前述の楽曲リストですでに返されています)。 まとめ: 短縮URL -> ウェブリンクパラメータ -> プレイリストの取得 -> 楽曲の取得 (段階的に、前のステップで得られたパラメータを使って次のURLにアクセスします) 関連コードは自分で書いてくださいね….-。- このようなチュートリアル性の高い記事を投稿するのは久しぶりです。 最後に一言、Google開発者ツールは本当にめちゃくちゃ便利! ちょっとした記事を書いて、逃げる〜〜 関連推奨記事 (1)PHPを使ってBingの今日の画像をスクレイピングし、自分のものとして利用する.孟坤ブログ. (2)パケットキャプチャ入門(一) 関連コード (1)KuGouプレイリストの楽曲情報取得インターフェースのソースコード

2018年6月5日 · 1 分 · MoeJue

CSS3ランダム背景画像切り替えエフェクト

CSS3のランダム背景画像フェードイン・フェードアウト切り替えエフェクト デモ効果はこの記事の背景に表示されています 皆さんが私の幻想領域二次元限定版のソースコードを解析するのに苦労しているようなので(30分以上もかけている人もいるようです)、時間を見つけて整理して公開することにしました 当初はjQueryで実装する予定でしたが、CSS3の@keyframesルールに気づきました。CSS3は、かつてJSでしか実現できなかった効果を実装できるほど強力になっています 定義と使い方 @keyframesルールを使用することで、アニメーションを作成できます。 アニメーション作成の原理は、あるCSSスタイルを別のスタイルに徐々に変化させることです。 アニメーションの過程で、このCSSスタイルを複数回変更することができます。 変化が起こるタイミングは、パーセンテージで指定するか、キーワード「from」と「to」(それぞれ0%と100%に相当)で指定します。 0%はアニメーションの開始時点、100%はアニメーションの終了時点です。 最高のブラウザサポートを得るためには、常に0%と100%のセレクタを定義する必要があります。 注:アニメーションの見た目を制御するには、アニメーション関連のプロパティを使用し、アニメーションをセレクタにバインドしてください。 CSSのコア部分(画像アドレスの変更を忘れないでください) body { background: #000; background-attachment: fixed; word-wrap: break-word; -webkit-background-size: cover; -moz-background-size: cover; background-size: cover; background-repeat: no-repeat } ul { list-style: none } .cb-slideshow li:nth-child(1) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341099) } .cb-slideshow li:nth-child(2) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341159) } .cb-slideshow li:nth-child(3) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341149) } .cb-slideshow li:nth-child(4) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341139) } .cb-slideshow li:nth-child(5) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341129) } .cb-slideshow li:nth-child(6) span { background-image: url(https://random.52ecy.cn/randbg.php?v=1520341119) } .cb-slideshow,.cb-slideshow:after { position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: -2 } .cb-slideshow:after { content: '' } .cb-slideshow li span { width: 100%; height: 100%; position: absolute; top: 0; left: 0; color: transparent; background-size: cover; background-position: 50% 50%; background-repeat: none; opacity: 0; z-index: -2; -webkit-backface-visibility: hidden; -webkit-animation: imageAnimation 36s linear infinite 0s; -moz-animation: imageAnimation 36s linear infinite 0s; -o-animation: imageAnimation 36s linear infinite 0s; -ms-animation: imageAnimation 36s linear infinite 0s; animation: imageAnimation 36s linear infinite 0s } .cb-slideshow li:nth-child(2) span { -webkit-animation-delay: 6s; -moz-animation-delay: 6s; -o-animation-delay: 6s; -ms-animation-delay: 6s; animation-delay: 6s } .cb-slideshow li:nth-child(3) span { -webkit-animation-delay: 12s; -moz-animation-delay: 12s; -o-animation-delay: 12s; -ms-animation-delay: 12s; animation-delay: 12s } .cb-slideshow li:nth-child(4) span { -webkit-animation-delay: 18s; -moz-animation-delay: 18s; -o-animation-delay: 18s; -ms-animation-delay: 18s; animation-delay: 18s } .cb-slideshow li:nth-child(5) span { -webkit-animation-delay: 24s; -moz-animation-delay: 24s; -o-animation-delay: 24s; -ms-animation-delay: 24s; animation-delay: 24s } .cb-slideshow li:nth-child(6) span { -webkit-animation-delay: 30s; -moz-animation-delay: 30s; -o-animation-delay: 30s; -ms-animation-delay: 30s; animation-delay: 30s } @-webkit-keyframes imageAnimation { 0% { opacity: 0; -webkit-animation-timing-function: ease-in } 8% { opacity: 1; -webkit-transform: scale(1.05); -webkit-animation-timing-function: ease-out } 17% { opacity: 1; -webkit-transform: scale(1.1) rotate(0) } 25% { opacity: 0; -webkit-transform: scale(1.1) rotate(0) } 100% { opacity: 0 } } もちろん、HTMLコードと組み合わせる必要があります HTML部分(中のテキスト部分との数は自由に変更可能です) ...

2018年5月16日 · 2 分 · MoeJue

Git の簡単な使用手順

この記事では概念的な知識については詳しく説明しません。ただのメモです。これは単なるステップバイステップのガイドです。障害に遭遇した場合は、Google で調べてください。 SSH を使用して Git と GitHub 間のバインドを完了します 1\。 「SSHキー」を生成する ssh-keygen-trsa RSA アルゴリズムを指定してキーを生成すると、id_rsa と id_rsa.pub という 2 つのファイル、つまりキー id_rsa と公開キー id_rsa.pub が生成されます。これら 2 つのファイルについては、 2\。 SSHキーを追加する github.com -> 設定 -> SSH と GPG -> 新しい SSH キー 公開キー id_rsa.pub の内容をキーの場所に貼り付け (タイトルの内容を入力しなくても問題ありません)、[SSH キーの追加] をクリックします。 3\。バインドが成功したかどうかを確認する ssh -T git@github.com ローカルプロジェクトをgithubにプッシュするコマンド (1) ディレクトリを開きます CDデモ (2) gitファイルを生成するためにバージョンライブラリを初期化する gitの初期化 (3) 全ファイルをキャッシュ領域に追加 git add * (4) 現在のワークスペースに変更を送信します。 git commit -m “最初のコミット” (5) 倉庫をリモートサーバーに接続する git Remote addorigin (上記のウェアハウスのアドレスです) (6) 追加したサーバーに変更をプッシュします ...

2018年4月3日 · 1 分 · MoeJue

各種言語のOEP大全

普段OEPを照合するのは確かに面倒なので、まとめてみました。この記事で直接OEPを確認するか、 画像を右クリックしてローカルに保存してください。 クリックで拡大表示できます。 お役に立てましたら、ぜひコメントを残していってくださいね〜 VC6と易语言 Delphi7 VB5 VB6 BC++ **VS2008Debug ** **VS2008Release ** **VS2012-VS2015Debug ** **VS2012-VS2015Release **

2017年5月19日 · 1 分 · MoeJue

# 各言語のボタンイベントシグネチャ

ソフトウェアのデバッグにおいて最も重要なのはブレークポイントを設定することです。したがって、どのようにブレークポイントを設定するかは、重要なテクニックとなります。 例えば、ダイアログボックスが表示される場合はMessageBoxAに、レジストリ関連の場合はRegOpenKeyAにブレークポイントを設定するなどです。 もちろん、ボタンイベントに直接ブレークポイントを設定できれば、さらに便利です。ボタンイベントに到達すれば、すぐにコアコードにたどり着き、クラックまであと一歩となるからです。 本稿では、各種言語におけるボタンイベントの探し方をまとめます。もちろん、VBexplorer、DEDE、ECEなどのツールを利用することも可能です。 一、VBプログラム 実は、VBのボタンイベントの探し方は最も一般的で、いわゆる万能ブレークポイントと呼ばれるものです。これはボタンイベントだけでなく、NAGスクリーン(催促画面)の解除、スプラッシュスクリーン、グレーアウトまたは非表示のボタン、起動時のタイマーイベントなど、他にも多くの用途があります。具体的な活用法は各自で研究してください。ここではボタンイベントに絞って説明します。 ODでロードした後、CTRL+Bで816C24を検索します。 二、DelphiおよびBC++プログラム DelphiとBC++は同じ会社によって開発されたため、探し方は同じです。もちろん、DEDEを使用することもできます。 ODでロードした後、CTRL+Gで00401000に移動します。 次にCTRL+Bで、シグネチャ740E8BD38B83????????FF93????????を検索します。 その後の作業は、CTRL+Lで検索を続け、F2でブレークポイントを設定することの繰り返しです。 三、E-language(易言語) E-languageのこの探し方は、パックされているプログラムにも適用できます。他の言語の場合は、まずアンパックしてから操作する必要があります。 ODでロードした後、F9でプログラムを実行します。プログラムが実行されたら、 CTRL+BでFF 55 FC 5F 5Eを検索します。 四、VC++プログラム(非MFCプログラム) ODでロードした後、右クリックし、「検索」から「すべてのコマンド」を選択します。 表示された入力ボックスに、特徴的なコードsub eax,0aを書き込みます。 ブレークした後、F7でステップインし、F8で数回ステップオーバーすると、ボタンイベントに到達します。 五、MFCプログラム もちろん、プログラムがMFCか非MFCかの判断は、各自で行う必要があります。 プログラムを実行し、CTRL+Fで特徴的なコードsub eax,0aを検索します。 ブレークした後、F7でステップインし、F8で数回ステップオーバーすると、ボタンイベントのコードに到達します。 まとめ:各種言語のボタンイベントのシグネチャ VB: 816C24 Delphi & BC++ : 740E8BD38B83????????FF93???????? MFC: sub eax,0a VC++: sub eax,0a E-language(易言語): FF 55 FC 5F 5E または (e-debug) 万能ブレークポイント: F3A58BC883E103F3A4E8 ボタンイベントの使用方法については、私のゼロから学ぶクラックシリーズチュートリアルをご覧ください。 本稿の一部はインターネットから引用したものです。

2017年5月15日 · 1 分 · MoeJue

ゼロから学ぶリバースエンジニアリングシリーズ講座概要 第一期

目的:このチュートリアルシリーズの目的は、クラッキング防止です。これはクラッキングに関する知識を教えるチュートリアルですが、クラッカーがどのようにソフトウェアをクラックするかを知ることで、より効果的にソフトウェアのクラッキングを防ぐことができます。 基礎入門編 1、中国語検索とNop [第一回ダウンロードアドレス](http://bbs.125.la/forum.php?mod=viewthread&tid=14017567): プログラムをコンパイルして保存する方法 2、jeとjmpの使用 zフラグ [第二回ダウンロードアドレス](http://bbs.125.la/forum.php?mod=viewthread&tid=14018591):不明なネットワーク認証のクラッキングを実践 3、ローカル再起動認証 [第三回ダウンロードアドレス](http://bbs.125.la/forum.php?mod=viewthread&tid=14019645):2回のコンパイル保存によるクラッキング ボタンイベント編 1、易言語ボタンイベント、万能ブレークポイント ボタンイベント編ダウンロードアドレス:易言語の構造に頼って真の易言語プログラムを区別する 応用編 1、ネットワーク認証 [応用編第一回ダウンロードアドレス](http://bbs.125.la/thread-14022484-1-1.html):シングルステップデバッグ中にレジスタとスタックウィンドウの変化、疑わしいジャンプに注意 2、シェル付きプログラムのデバッグ(401000番地)、パッチ適用(メモリ) [応用編第二回ダウンロードアドレス](http://bbs.125.la/thread-14023855-1-1.html):(白宝雲ネットワーク認証高速クラッキングテクニック) アンパック編 1、ESPの法則 アンパック編ダウンロードアドレス:XPシステム下でアンパックする必要があることに注意 2、シングルステップトレース法、IATの修復 [第二回ダウンロードアドレス](http://bbs.125.la/thread-14025607-1-1.html):(2回は一緒に録画・公開されました)、チュートリアルで使用されたすべてのツールをパッケージ化し、最終レッスンのささやかなプレゼントを贈呈 **この忙しい5月末に、ゼロから学ぶクラッキングシリーズチュートリアルのシーズン1が完結しました。これまでずっと応援してくださった皆様、ありがとうございます!** **もしシーズン2を出す機会があれば、事前に私のブログで概要を更新しますので、引き続きご注目ください!** 補足: オンライン視聴アドレス:易语言TV网

2017年5月8日 · 1 分 · MoeJue

Emlogの最新コメント一覧でブログ主のコメント返信を非表示にする方法

ブロガーは訪問者と頻繁に交流する必要がありますが、ブロガーの返信もコメントとして最新コメント欄に表示されます。これにより、ブロガーが一度に複数のコメントに返信すると、最新コメント欄が自分のコメントで埋め尽くされてしまい、あまり見栄えが良くありません。 私が使用しているemlog5.3.1バージョンを例に説明します: include/libディレクトリにあるcache.phpファイル(これはキャッシュ関数ファイルです)を開き、その中から以下のコードを見つけます: 私の場合は179行目にあります。以下の通りです。 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "comment WHERE hide='n' ORDER BY date DESC LIMIT 0, $index_comnum"); これを次のように変更します: $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "comment WHERE hide='n' AND poster!='阿珏' ORDER BY date DESC LIMIT 0, $index_comnum"); ヒント:これはSQL文を実行するPHPコードです。条件は、コメント投稿者のユーザー名がブロガーのユーザー名であるかどうかをチェックし、そうであればそのコメントを最新コメントリストに表示しないようにするものです。(メールアドレスやウェブサイトで poster!='阿珏' をチェックすることも可能ですが、私自身は返信する際にメールアドレスを入力しないため、ユーザー名でチェックするしかありません。もちろん、私になりすまさないでくださいね) 最後にファイルを保存し、emlogの管理画面にログインしてキャッシュを更新し、ウェブページを再読み込みすれば、効果が確認できます。

2017年5月6日 · 1 分 · MoeJue

プログラマーの日常、ウイルス感染シリーズ

DropFileName = "svchost.exe" 問題解決策 事の発端はこうです。友人がソースコードを送ってきて、見てほしいと言われました。不注意でその中にあるexeファイルを誤ってクリックしてしまい、ネットワーク接続要求がポップアップ表示されたので、すぐに閉じました。その後、同じディレクトリにシステム音楽フォルダを装ったexe実行ファイルが追加されているのを発見しました。私は事態が良くないと感じましたが、確信は持てませんでした。その後、このフォルダ全体を削除しようとしたところ、「プログラムが使用中です」というメッセージが表示されました。 私はそれをそのままにして、しばらく放置しました。その後の2、3時間で、PCの応答速度がますます遅くなり、物理メモリの使用量が急増していることに気づきました。そこでPCを再起動しました。 その後、コードを書こうと思い、htmlファイルを開いたところ、大変な事態になっていることに気づきました。PC上のすべてのhtmlファイルに問題が発生していました(下図参照)。これで、ウイルスに感染したことが確実になりました。 そしてすぐに、間髪入れずに再び360をダウンロードし、PCのフルスキャンを実行しました(なぜ360をダウンロードしたのかは聞かないでください)。長期間ノーガードで使っていたPCなので、一度や二度、このような事態になるのは避けられません。 個別にテストしたところ、360はウイルスコードのみを削除し、ファイル自体は削除しないことがわかりました。しかし、一番下でコメントアウトされた部分は削除されません。結局、手動で再度処理する必要がありました。処理しなくても大きな問題はありませんが、強迫性障害なので、ちょっと辛いです( ╯▽╰) コードの原理(作用): このscriptコードはvbs言語のウイルスです。このウイルスに感染すると、ローカルのすべてのhtmlドキュメントを開いたときに、このような文字列が表示されることに気づくでしょう。htmlドキュメントだけでなく、dllドキュメントも感染します。もちろん、この種のウイルスは過度に心配する必要はありません。なぜなら、ファイル破壊の役割を果たすだけで、プライバシーのアップロードやアカウントの乗っ取りなどの危険性はないからです。 このコードの大まかな意味は、svchost.exeプロセスを見つけてデータを注入し、その後のバイナリコードを実行するというものです。このウイルスが他のウイルスと異なるのは、このvbsウイルスは感染力が非常に強いことです。htmlファイルが一度感染すると、ユーザーがhtmlドキュメントを開くだけでウイルスが上記のコードを実行し、ローカルPC上のすべてのhtmlファイルとdllファイルに直接感染します。 確かに、DLLファイルも感染するため、一部のソフトウェアは正常に使用できますが、ウイルス対策ソフトはウイルスを検出します。また、多くの常用ソフトウェアを実行するとウイルスが検出されることに気づくでしょう。例えば、以前よく使っていた迅雷や酷狗などの常用ソフトウェアを再度開いたときに、ウイルスがあると表示されたのです。当時、私は非常に奇妙に感じました。迅雷は公式サイトからダウンロードしたのに、なぜウイルスが検出されるのだろうか?ここでの理由は、vbsウイルスが迅雷などのソフトウェアのインストールファイル内のdllに感染したため、ウイルス対策ソフトがvbsスクリプトウイルスという名称でウイルスを検出し続けるのです。 ヒント:記事中の画像は宇宙人に連れ去られました

2017年5月4日 · 1 分 · MoeJue

ウェブサイトのバックエンドアドレスを公開することは非常に危険なことです

ウェブサイトのバックエンドアドレスを公開することは非常に危険なことです。例えば、私のウェブサイトのバックエンドアドレスは次のとおりです。管理ログイン インターネットは複雑な世界であり、各ウェブサイトの管理者は自分自身を守る方法を学ぶ必要があります。 emlogのデフォルトのバックエンドパスはadminディレクトリであり、重要な情報がむき出しで公開されています。 デフォルトのバックエンドパスを変更するには、3つのステップがあります。 adminディレクトリを開き、globals.phpを見つけて、editplusなどのエディタで開きます。メモ帳で開いても構いませんが、結果は保証されません。 フォルダ名をadminからxxxxなどの希望の名前に変更します。 admin/globals.phpファイルを開きます。現在はxxxx/globals.phpになっているはずです。 9行目のコードを編集します。 define(‘TEMPLATE_PATH’, EMLOG_ROOT.’/admin/views/’); adminを新しい名前xxxxに置き換えます。 define(‘TEMPLATE_PATH’, EMLOG_ROOT.’/xxxx/views/’); 3番目のステップ、バックエンドログインをリフレッシュした後、ナビゲーション設定で「ログイン」を非表示にします。そうしないと、クリックすると404エラーが発生し、非常に煩わしいです。 後遺症の解決策: バックエンドパスを変更した後、微語の絵文字画像が表示されなくなります。解決策: include/lib/function.base.phpを開き、以下を見つけます。 $t = str_replace($data,’’,$t); adminをxxxxに置き換えます。 $t = str_replace($data,’’,$t); バックエンドの個人設定で新しいアバターをアップロードしない場合、微語のアバターもフロントエンドに表示されなくなります。解決策: t/index.phpを開き、以下を見つけます。 $avatar = empty($user_cache[UID][‘avatar’]) ? ‘../admin/views/images/avatar.jpg’ : ‘../’ . $user_cache[UID][‘avatar’]; adminをxxxxに置き換えます。 $avatar = empty($user_cache[UID][‘avatar’]) ? ‘../xxxx/views/images/avatar.jpg’ : ‘../’ . $user_cache[UID][‘avatar’]; 次に、テンプレート内のt.php、つまりcontent/templates/テンプレート名/t.phpを開きます。 BLOG_URL . ‘admin/views/images/avatar.jpg’ : adminをxxxxに置き換えます。 BLOG_URL . ‘xxxx/views/images/avatar.jpg’ : テンプレートが破損した場合の「戻る」ボタンのリンクの問題を解決します。デフォルトのadminをクリックするとエラーが発生します。 include/lib/view.phpを開き、以下を見つけます。 emMsg(‘現在のテンプレートは削除または破損しています。バックエンドにログインして別のテンプレートに変更してください。’, BLOG_URL . ‘admin/template.php’); adminをxxxxに置き換えます。 emMsg(‘現在のテンプレートは削除または破損しています。バックエンドにログインして別のテンプレートに変更してください。’, BLOG_URL . ‘xxxx/template.php’); 記事リストページの編集ボタンのリンクの問題を解決します。 テンプレートのmodule.phpファイルを開き、以下を見つけます。 $editflg = ROLE == ROLE_ADMIN || $author == UID ? ‘編集’ : ‘’; ...

2017年4月30日 · 1 分 · MoeJue

58都市ログイン(RSAアルゴリズム)

58都市ログイン(RSAアルゴリズム) この時。もう一つの素晴らしいログインアルゴリズム分析 宛先アドレス: https://passport.58.com/login?(同市内58件) 使用したツール: js デバッグ ツール (私はフォーラムから改造された、比較的インテリジェントな js デバッグ ツールを使用しています) パケットキャプチャツール(今回はキーワード検索を便利にするためにブラウザのF12を直接使用しました) ヒント: この記事は 1 年前に公開され、荒廃してしまったので、画像のコンテンツは失われています。

2016年11月23日 · 1 分 · MoeJue