問題タブ [binaryfiles]
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.
binary - パスワードで保護されたZIPファイルのバイト署名とは何ですか?
ZIPファイルが次のバイトで始まることを読みました。
参照:http ://www.garykessler.net/library/file_sigs.html
質問:ZIPファイルがパスワードで保護されていることを示す特定のバイトシーケンスはありますか?
java - .class ファイルをバイナリ ファイルに変換しますか?
「.java」ファイルをコンパイルすると、純粋なバイナリ ファイルではない新しい「.class」ファイルが作成されます。このファイルを実行するには、「java」というインタープリターが必要です。この「.class」ファイルをバイナリ ファイルに変換する方法はありますか? 別のプログラムを実行する必要がないのはどれですか?
F.ex Linux の「./filename」。
私の悪い英語でごめんなさい。
-ヘンリック
java - Java を使用してバイナリ ファイル内の一連のバイトを検索する
Java を使用して一連のバイナリ ファイルで検索する必要がある一連のバイトがあります。
例: バイナリ ファイルでバイト シーケンスDEADBEEF
(16 進数) を検索しています。Javaでこれを行うにはどうすればよいですか? String.contains()
バイナリ ファイルのような組み込みの方法はありますか?
c# - C# で BinaryWriter から書き込まれたデータを読み取るための C++ の BinaryReader はありますか?
C# の BinaryWriter を使用して、いくつかの int、char[] などをデータ ファイルに書き込みました。BinaryReader を使用して (C# で) ファイルを読み込むと、ファイルのすべての部分を完全に再作成できます。
ただし、C++ で読み戻そうとすると、恐ろしい結果が生じます。fstream を使用してデータを読み戻そうとしましたが、データが正しく読み込まれませんでした。C++ で fstream を設定し、ios::in|ios::binary|ios::ate
seekg を使用して自分の場所をターゲットにしました。次に、整数 "16" として書き込まれた次の 4 バイトを読み取ります (C# に正しく読み取ります)。これは、C++ では 1244780 と表示されます (メモリ アドレスではありません。確認しました)。これはなぜでしょうか?C++ の BinaryReader に相当するものはありますか? msdn で言及されていることに気付きましたが、それは Visual C++ であり、インテリセンスは私には c++ のようにも見えません。
ファイルを書き込むためのコード例 (C#):
データ ファイルを表示する方法がわかりません。
データを読み戻す例 (C#):
これはC++で実行したいです。最初の試行 (最初の整数で失敗):
編集:「seekg」を使用する場所に関係なく、まったく同じ値を受け取るようです。
rest - RESTful 設計 - エンティティの添付ファイルをモデル化する方法
REST でエンティティの添付ファイルをモデル化しようとしています。欠陥エンティティに複数の添付ファイルを添付できるとします。すべての添付ファイルには、説明とその他のプロパティ (最終更新日、ファイル サイズなど) があります。添付ファイル自体は任意の形式のファイルです (jpeg、doc ...)
RESTful にモデル化する方法を考えていました
次の2つのオプションについて考えました。
最初のアプローチ (同じリソース、異なる表現を使用):
GET 、 content-type:XML on http://my-app/defects/ {id}/attachmentsは、欠陥の添付ファイルのメタデータを XML 形式で返します (説明、最終更新日、ファイル サイズなど)。
GET 、 content-type:gzip on http://my-app/defects/ {id}/attachmentsは、欠陥の添付ファイルを zip ファイルで返します
GET 、 content-type:mime マルチパート on http://my-app/defects/ {id}/attachmentsは、マルチパート メッセージで欠陥の添付ファイルを返します (バイナリ データと XML メタデータ全体)。
http://my-app/defects/ {id}/attachmentsの POST、content-type:XML は、新しい添付ファイルを作成します。メタデータのみで、ファイルは添付されていません (その後、ユーザーはバイナリ データを含む PUT 要求を送信する必要があります)。
POST 、 content-type:mime\multi-part on http://my-app/defects/ {id}/attachmentsは添付ファイルを作成し、クライアントはメタデータとファイル自体の両方を 1 回のラウンドトリップで送信できます
2 番目のアプローチ (添付ファイルのデータをメタデータから分離する):
GET 、 content-type:XML on http://my-app/defects/ {id}/attachmentsは、欠陥の添付ファイルのメタデータを XML 形式で返します (説明、最終更新日、ファイル サイズなど)。
http://my-app/defects/ {id}/attachments/filesの GET 、 content-type:gzipは、単一の zip で欠陥の添付ファイルのバイナリ データを返します。
新しい添付ファイルの作成、最初の呼び出し:
- http://my-app/defects/ {id}/attachmentsの POST、content-type:XML は、新しい添付ファイルを作成します。メタデータのみで、ファイルは添付されていません (その後、ユーザーはバイナリ データを含む PUT 要求を送信する必要があります)。
次に、バイナリ データ自体を追加します。
- POST 、 content-type:mime\multi-part on http://my-app/defects/ {id}/attachments/{id}/fileは添付ファイルを作成します
一方では、クライアントが添付ファイルのメタデータとバイナリ データを 1 回のラウンド トリップで作成および取得できるため、最初のアプローチはより堅牢で効率的です。一方、mime-multipart 表現を使用するのは少し気が進まない。消費と生成が面倒だからだ。
編集:フリッカーアップロード REST APIをチェックアウトしました。写真と写真属性の両方を含めるためにマルチパートメッセージを使用しているようです。
c++ - null 値で読み取りの途中で終了する fread。また、期待されるデータを過ぎたガベージを読み込む
C++ で FILE オブジェクトを使用して、バイナリ ファイルの断片を読み込んでいます。fseek と対応する fread 呼び出しは次のとおりです。
m_sizeOfData は、最終的に 40 万を超える整数になります。これは、バイナリ ファイルから 40 万以上のバイトすべてをデータ (ちなみに、これは char[m_sizeOfData] です) に読み込む必要があるように見えますが、単純に見える Unicode 文字で約 6 または 7 文字後に停止します。ヌル終了を表しているのではないかと考えていますか? 私はこれについて肯定的ではありません。これは、私が読み込んでいるファイルのすべての部分に当てはまるわけではありません。ほとんどは (一般的に) 正しく動作するようです。
これはなぜでしょうか?また、すべてのデータを正しく読み取る方法はありますか?
編集:
fp は次のように定義されます。
このボックス文字は 16 進数で、0x06 の後に 0x00 が続きます。
データは次のように定義されます: char *data = new char[m_sizeOfData];
編集2:
また、別のファイルの末尾にガベージがロードされていることにも気付きました。ゴミは次のようになります。
ýýýý«««««««««îþ
これは、特定のラウンド数のバイトを完了しようとしているからですか?
windows - LinuxバイナリをWindowsから逆コンパイルするにはどうすればよいですか?
Linuxバイナリ(* .so)をWindowsから逆コンパイルするにはどうすればよいですか?ありがとう。
visual-studio - Visual Studio でファイルを 16 進編集できますか?
バイナリファイルを編集したいが、Visual Studio 以外のツールは使いたくない。切り替えるのが面倒だから。
おそらく、Visual Studio でそれを行うことができるアドインまたは組み込み機能はありますか?
reverse-engineering - ドキュメントなしでレガシーバイナリデータファイルを解釈するにはどうすればよいですか?
多くの場合、データは、ドキュメントがほとんどまたはまったくないプログラム固有のバイナリファイルに保存されます。私たちの分野の典型的な例は、機器からのデータですが、問題は一般的なものだと思います。データを理解して解釈しようとするためにどのような方法がありますか?
いくつかの境界を設定します。ファイルは暗号化されておらず、DRMもありません。ファイルのタイプと形式は、プログラムの作成者に固有です(つまり、IDが失われた* .tarなどの「標準ファイル」ではありません)。(おそらく)意図的な難読化はありませんが、スペースを節約するためのアマチュアの努力があるかもしれません。データが何であるかについての一般的な知識があり、フィールドと配列の一部(おそらくすべてではない)を認識できると想定できます。
データの大部分が数値であり、スカラーと配列(おそらく1次元と2次元、場合によっては不規則または三角形)であると想定します。いくつかの文字列、おそらく人の名前、サイト、日付、そしておそらくいくつかのキーワードもあります。バイナリファイルを読み取るプログラムにコードがありますが、ソースまたはアセンブラにアクセスできません。例として、VAX Fortranプログラム、初期のUnix、またはWindowsによってOLEオブジェクトとして記述されている場合があります。数値はビッグエンディアンまたはリトルエンディアン(最初は不明)の場合がありますが、おそらく一貫しています。マシン(Crayなど)によってバージョンが異なる場合があります。
かなり大きなファイルのコーパスがあると想定できます。たとえば、数百になります。
2つのシナリオを想定できます。
- さまざまな入力を使用してプログラムを再実行できるため、実験を行うことができます。
- プログラムを再実行することはできません。固定されたドキュメントのセットがあります。これは、未知の言語(線文字Bなど)での歴史的文書のデコードと穏やかに類似しています。
部分的な解決策は受け入れられるかもしれません-すなわち、生きている人が今理解していないいくつかの分野があるかもしれませんが、他のほとんどは解釈可能です。
私はオープンソースのアプローチにのみ興味があります。
更新関連するSOの質問(互換性の目的でバイナリファイル形式をリバースエンジニアリングする方法)がありますが、強調は多少異なります。
@brianeggeからアドレス(1)への巧妙な提案を更新します。プログラム内のすべてのwrite()および同様の呼び出しをダンプするためにtruss
(またはおそらくLinuxで)使用します。strace
これにより、少なくともディスクに書き込まれたレコードのコレクションが可能になります。
zip - ZIP 形式での JPG+Zip ファイルの組み合わせの問題
JPG と Zip ファイルを 1 つのファイルに結合し、両方の形式で有効な (または少なくとも読み取り可能な) ファイルにすることができる巧妙なハックについて聞いたことがあると思います。JPG は最後に任意のものを入れ、最初に ZIP を入れることができるので、もう 1 つのフォーマットをそこに入れることができることに気付きました。この質問では、中間データは任意のバイナリ データであり、JPG または ZIP 形式と競合しないことが保証されていると仮定します (つまり、魔法の zip ヘッダー 0x04034b50 が含まれていません)。図:
私はこのように猫を飼っています:
cat "mss_1600.jpg" filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb "null.bytes" "randomzipfile.zip" > temp.zip
これにより、6,318 KB のファイルが生成されます。7-Zipでは開きません。ただし、「ダブル」を 1 つ減らすと (13 個の filea と b の代わりに 12 個になります):
cat "mss_1600.jpg" filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb "null.bytes" "randomzipfile.zip" > temp.zip
7-Zip で開く5,996 KB のファイルが生成されます。
したがって、私の任意のバイナリ データには、それを台無しにする魔法の Zip ファイル ヘッダーがないことがわかっています。動作する jpg+data+zipと動作しないjpg+data+zipの参照ファイルがあります(ブラウザーがイメージと見なすため、名前を付けて保存し、zip 拡張子を自分で追加します)。
13 の組み合わせでは失敗し、12 の組み合わせでは失敗する理由を知りたいです。ボーナス ポイントについては、どうにかしてこれを回避する必要があります。