問題タブ [binary]
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.
python - Pythonでバイナリリテラルをどのように表現しますか?
Python リテラルで整数を 2 進数として表現するにはどうすればよいですか?
16進数の答えを簡単に見つけることができました:
および8進数:
Pythonでバイナリを表現するためにリテラルをどのように使用しますか?
回答のまとめ
- Python 2.5 以前: リテラルを使用してバイナリを表現できます
int('01010101111',2)
が、リテラルでは表現できません。 - Python 2.5 以前:バイナリ リテラルを表現する方法がありません。
- Python 2.6 ベータ版: 次のようにできます:
0b1100111
または0B1100111
. - Python 2.6 beta:
0o27
または0O27
(2 番目の文字は文字 O) で 8 進数を表すこともできます。 027
Python 3.0 ベータ版: 2.6 と同じですが、8 進数の古い構文は使用できなくなります。
language-agnostic - バイナリ ファイル レイアウトのリファレンス
バイナリ ファイルのレイアウト構造に関する優れた情報源はどこにありますか?
BTrieve
インデックス ファイルを取得したり、ヘッダーを解析したりしたい場合MP3
、信頼できる情報はどこで入手できますか?
c - シフト演算子 (<<、>>) は C で算術または論理ですか?
C では、シフト演算子 ( <<
、>>
) は算術演算ですか、それとも論理演算ですか?
java - バイナリ データを XML に埋め込むにはどうすればよいですか?
ネットワーク経由で XML メッセージを使用して相互に通信する Java で記述された 2 つのアプリケーションがあります。メッセージからデータを取り戻すために、受信側で SAX パーサーを使用しています。要件の 1 つはバイナリ データを XML メッセージに埋め込むことですが、SAX はこれを好みません。誰もこれを行う方法を知っていますか?
更新:他の誰かが同様のことを試みている場合に備えて、 Apache commons codec libraryのBase64クラスでこれを動作させました。
python - Python のバイナリ バッファ
Python では、文字データ用のファイルのようなバッファーにStringIOを使用できます。メモリ マップト ファイルは基本的にバイナリ データに対して同様のことを行いますが、ベースとして使用されるファイルが必要です。Python には、Java のByteArrayOutputStreamと同等の、バイナリ データを対象としたメモリのみのファイル オブジェクトがありますか?
私が持っているユースケースは、メモリ内に ZIP ファイルを作成したいというもので、ZipFileにはファイルのようなオブジェクトが必要です。
asp.net - プレビュー用の SharePoint ストリーム ファイル
SharePoint 2003 ドキュメント ライブラリに格納されているファイルをブラウザにストリーミングしようとしています。基本的には、ファイルをストリームとして開き、ファイル ストリームを応答に「書き込み」、コンテンツ タイプとコンテンツ ディスポジション ヘッダーを指定するという考え方です。コンテンツの処理は、ファイル名、コンテンツ タイプを保持するために使用されます。これは、ファイルを表示するためにどのアプリを開けばよいかをブラウザに知らせるためです。
これは、開発環境と UAT 環境で問題なく機能します。ただし、本番環境では、常に期待どおりに動作するとは限りませんが、IE6/IE7 のみです。FF はあらゆる環境でうまく機能します。
本番環境では SSL が有効になっており、一般的に使用されていることに注意してください。(実稼働環境で SSL が使用されていない場合、ファイル ストリームは期待どおりに名前が付けられ、適切に表示されます。)
コード スニペットを次に示します。
前述したように、このコード スニペットは開発マシンと UAT 環境で正常に動作します。ダイアログ ボックスが開き、Testme.doc の保存、表示、またはキャンセルを求められます。ただし、本番環境では SSL を使用する場合のみ、IE 6 および IE7 は添付ファイルの名前を使用しません。代わりに、ストリームを送信しているページの名前 testheader.apx を使用すると、エラーがスローされます。
IE には、「暗号化されたページをディスクに保存しない」という高度な設定があります。
これが問題の一部であると思われます。サーバーはブラウザーにファイルをキャッシュしないように指示しますが、IE では「暗号化されたページをディスクに保存しない」が有効になっています。
はい、大きなファイルの場合、上記のコード スニペットがメモリを大きく圧迫し、この実装が問題になることは承知しています。したがって、実際の最終的な解決策は、ファイル全体を 1 バイト配列に開くのではなく、ファイルをストリームとして開き、ファイルを一口サイズのチャンク (たとえば、サイズが約 10K) でクライアントに送信します。
SSL経由でバイナリファイルを「ストリーミング」する同様の経験をした人はいますか? 提案や推奨事項はありますか?
linux - Win/Linux用のバイナリ比較ツールが必要です
まず第一に、私はテキストによる比較を必要としないので、BeyondCompareは私が必要とすることをしません。
2つのファイルの違いをバイトレベルで報告できるutilを探しています。最低限必要なのは、ファイルの変化率、または影響を受けるバイト/セクターに関するレポートを確認する必要があることです。
自分でこれを行う手間を省くために利用できるものはありますか?
security - 自己検証バイナリ?
私の質問は非常に簡単です。あなたは「アクセス許可」または「アクセス拒否」を出力する実行可能ファイルであり、悪者はあなたのアルゴリズムを理解しようとするか、内部にパッチを当てて、常に「アクセス許可」と言わせようとします。
この紹介の後、あなたは私が何をしているのか非常に不思議に思うかもしれません. 彼はDiablo3がリリースされたらクラックするつもりですか? 私はあなたの心配を和らげることができます、私はそれらのクラッカーの一人ではありません. 私の目標はクラックです。
Crackmes は、たとえば www.crackmes.de で見つけることができます。Crackme は、(ほとんどの場合) シリアルを検証し、シリアルに応じて「アクセス許可」または「アクセス拒否」を出力する小さなアルゴリズムを含む小さな実行可能ファイルです。目標は、この実行可能出力を常に「アクセス許可」にすることです。使用が許可されている方法は、作成者によって制限されている場合があります-パッチを適用したり、逆アセンブルしたりしないでください-または、バイナリ、objdump、および16進エディターで実行できるすべてのものを含みます。クラックメをクラックすることは間違いなく楽しみの 1 つですが、プログラマーとして、どうすれば難しいクラックメを作成できるのか疑問に思っています。
基本的には、crackme は 2 つの主要な部分で構成されていると思います。特定のシリアル検証と、その周辺のコードです。
アセンブリを使用するだけでシリアル検証を追跡しにくくすることは非常に可能です。たとえば、シリアルを受け入れるために特定の状態になる必要があるシミュレートされたマイクロプロセッサの入力としてシリアルを取得するという考えがあります。一方、安くなって、この部分を保護するための暗号的に強力な方法についてもっと学ぶかもしれません. したがって、攻撃者が実行可能ファイルにパッチを当てようとするのを難しくすることは、それほど難しいことではありません。
ただし、より困難な部分は、バイナリを保護することです。どういうわけか元に戻すことができない、完全に安全なシリアル検証を想定してみましょう(もちろん、元に戻すことができることはわかっています. 攻撃者がバイナリのジャンプをオーバーライドしてバイナリに何かを受け入れさせないようにするにはどうすればよいでしょうか?
このトピックについて少し調べてみましたが、バイナリ セキュリティ、バイナリの自己検証などに関するほとんどの結果は、侵害されたバイナリを使用してオペレーティング システムへの攻撃を防止しようとする記事に行き着きます。特定のバイナリに署名し、それらの署名をカーネルで検証します。
私の現在の考えは次のとおりです。
- バイナリ内の明示的な場所をジャンプであることを確認します。
- バイナリのチェックサム部分を調べ、実行時に計算されたチェックサムをそれらと比較します。
- コード内の関数に対して肯定的および否定的な実行時チェックを行います。シリアル検証に副作用があります。:)
潜在的な攻撃者をより長く苛立たせる方法をもっと考えることができますか? (もちろん、プログラム自体にプログラムの正しいチェックサムを埋め込むことができてチェックサムジェネレーターを壊すことができない限り、いつか彼を永遠に遠ざけることはできません.hehe)
binary - ニブルには何ビットありますか?
バイナリの質問:)
ruby - Rubyでバイナリリテラルをどのように記述しますか?
ほとんどの言語 (Ruby を含む) では、数値リテラルを少なくとも 3 つの基数 (10 進数、8 進数、16 進数) で記述することができます。10進数の数字は通常のものであり、(ほとんどの)人が自然に数字を書くように書かれています.96は96
. ゼロで始まる数値は通常、8 進数として解釈されます。96 は0140
. 16 進数ベースの数値は、通常、接頭辞0x
として : 96 を書きます0x60
。
問題は、Ruby で数値を 2 進リテラルとして記述できるかどうかです。どのように?