問題タブ [hex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#/VB.NETでのT-SQLCASTのデコード
最近、私たちのサイトはAsproxボットネット SQLインジェクション攻撃の復活で大騒ぎになりました。詳細に立ち入ることなく、攻撃はT-SQLコマンドをASCIIエンコードされたBINARY文字列にエンコードすることによってSQLコードを実行しようとします。これは次のようになります。
これをSQLでデコードすることはできましたが、その時点で何が起こっているのか正確にわからなかったため、これを行うことには少し警戒していました。
簡単なデコードツールを作成しようとしたので、 SQLServerに触れることなくこのタイプのテキストをデコードできました。デコードする必要がある主な部分は次のとおりです。
次のコマンドをすべて試しましたが、運がありませんでした。
SQL Serverを使用せずにこのエンコーディングを変換する適切な方法は何ですか?出来ますか?私もそれに精通しているので、VB.NETコードを使用します。
さて、私はここで何かが欠けていると確信しているので、ここに私がいます。
私の入力は基本的な文字列なので、エンコードされた部分のスニペット(4445434C41(DECLAに変換))から始めました。最初の試みはこれを行うことでした...
...そして、各文字をバイトに変換したので、私が入力したものとまったく同じものを返すだけでした。
まだそれを行うメソッドがわからないため、2文字ごとに手動で1バイトに解析する必要があることに気付きました。そのため、私の小さなデコーダーは次のようになります。
最初の数ペアは問題ないように見えますが、「4C」ペアに到達するとループが停止し、文字列の形式が正しくないと表示されます。
興味深いことに、デバッガーをステップ実行して、その時点まで解析できたバイト配列のGetStringメソッドに移動すると、結果として「、-+」が返されます。
何が欠けているのかを理解するにはどうすればよいですか?バイトを解析するのではなく、バイトごとに「直接キャスト」を実行する必要がありますか?
c - Cで16進数の文字列を整数に効率的に変換しますか?
C で、16 進数の文字列をバイナリunsigned int
またはに変換する最も効率的な方法は何unsigned long
ですか?
たとえば、 がある場合0xFFFFFFFE
、int
base10 値の が必要です4294967294
。
c++ - 既製のC++16進ダンプコード
私はネットワークおよびシリアル通信ソフトウェアを頻繁に使用しているため、データパケットの16進ダンプを表示またはログに記録するためのコードが必要になることがよくあります。
これを行うたびに、さらに別の16進ダンプルーチンを最初から作成します。私は再びそうしようとしていますが、ここで尋ねると思いました:どこかにC ++用の良い無料の16進ダンプコードはありますか?
欲しい機能:
- 1行あたりNバイト(Nはなんらかの方法で構成可能)
- 16進数の横にあるオプションのASCII/UTF8ダンプ
- 構成可能なインデント、行ごとのプレフィックス、行ごとのサフィックスなど。
- 最小限の依存関係(理想的には、コードをすべてヘッダーファイルに含めるか、貼り付けるだけのスニペットにします)
編集: 明確化:stderr、stdout、ログファイル、またはその他のそのような出力ストリームに書き込むために、自分のプログラムに簡単にドロップできるコードを探しています。コマンドラインの16進ダンプユーティリティを探していません。
windows - これらの 16 進数の名前付きフォルダーはどこから来たのですか?
まず、私はWindows XPを使用しています。複数のハードドライブがあり、2番目のハードドライブにいくつかのフォルダーを作成することにしたようです(これは単なるデータドライブであり、OSはありません)。これらのフォルダーにはすべて、「e69f29f1b1f166d3d30b8c9f7156ba」や「bd92c24cc278614082cd88e7a64b」などの名前が付いています。それらには、「アクセスが拒否された」updateという名前のフォルダーが含まれているため、Windowsの更新であると推測されます。したがって、おそらくそれらを取り除くことはできませんが、誰かが少なくともそれらが何であるか、なぜ間違ったドライブにあるのかを説明できますか?
javascript - JavaScript で 10 進数を 16 進数に変換する方法
JavaScript で 10 進数の値を 16 進数に変換するにはどうすればよいですか?
c++ - char[] から 16 進文字列への演習
以下は、現在の char* から 16 進文字列への関数です。ビット操作の演習として書きました。AMD Athlon MP 2800+ で 1,000 万バイトの配列を 16 進数に変換するには、約 7 ミリ秒かかります。私が見逃しているトリックや他の方法はありますか?
どうすればこれをより速くすることができますか?
g++ で -O3 でコンパイル
アップデート
タイミングコードを追加
Brian R. Bondy : std::string をヒープに割り当てられたバッファに置き換え、 ofs*16 を ofs << 4 に変更します - ただし、ヒープに割り当てられたバッファは速度を落としているようですか? - 結果 ~11ms
Antti Sykäri : 内側のループを次のものに置き換えます
結果 ~8ms
Robert : 完全な 256 エントリのテーブルに置き換え_hex2asciiU_value
ます。メモリ スペースは犠牲になりますが、結果は最大 7 ミリ秒になります。
HoyHoy : 誤った結果が生成されていたことに注意
c# - 16進数と10進数の間で数値を変換する方法
C#で16進数と10進数をどのように変換しますか?
c++ - operator>> は int 16 進数と 10 進数を読み取ることができますか?
operator>>
C++ でhex
値 AND と値の両方を読み取るように説得できdecimal
ますか? 次のプログラムは、16 進数の読み取りがどのようにうまくいかないかを示しています。と の両方を同じistringstream
ように読めるようにしたいです。hex
decimal
ruby - Rubyで整数を16進数文字列に変換する
Rubyの整数を16進数に変換する組み込みの方法はありますか?
の反対のようなものString#to_i
:
おそらく次のように:
私は自分でロールする方法を知っていますが、組み込みの Ruby 関数を使用する方がおそらく効率的です。
java - Javaを使用して16進ダンプの文字列表現をバイト配列に変換しますか?
16 進値を表す長い文字列 (ダンプから) をバイト配列に変換する方法を探しています。
ここに同じ質問を投稿した人よりもうまく表現できなかったでしょう。
しかし、オリジナルを保つために、私なりの言い方をします"00A0BF"
。
私は何をすべきか?
私はJavaの初心者でありBigInteger
、先頭の16進ゼロを使用して注意することになりました。しかし、それは醜いと思います。単純なものが欠けていると確信しています。