読者です 読者をやめる 読者になる 読者になる

fixYabinaryというPythonライブラリを作った。

この内容はチョット古いです。あきらめて英語版読みましょう。

fixYabinayとは

やばいなりをfixするライブラリです。CTFに使えるかもしれない。
ばいなり、やばいなりー。

インストール方法

pip install fixYabinary

使い方

look(file_path)

バイナリをバイナリエディタのように表示する。

>> import fixYabinary
>> fixYabinary.look("./test,png")

           00 01 02 03 04 05 06 07   08 09 0A 0B 0C 0D 0E 0F
0x000000   00 00 00 00 49 45 4e 44 ae 42....

get(file_path, option)

バイナリを返す。 option が "f"なら、整形されたバイナリが返される.
optionは設定しなくてもよい。

>> import fixYabinary
>> fixYabinary.get("./test.png")
0000000049454e44ae42....

>>fixYabinary.get("./test.png", "f")
00 00 00 00 49 45 4e 44 ae 42....

extend(file_path, new_file_path, top_hex, top_bytes, bottom_hex, bottom_bytes)

ファイルを拡張する。top_hex、bottom_hexをバイナリに付ける。
top_byte と bottom_byte は str なら、16進数、
int なら、 これらは10進数と扱われる。

>> import fixYabinary
>> fixYabinary.get("./test.png", "./extended", "00", 3, "00", 3)

Succeeded in making ./extended
# 000000 + ./test.png's Binary Data + 000000 in ./extended  

identify(file_path)

ファイルの中に隠されたファイルの拡張子を返す。

>> import fixYabinary
>> fixYabinary.get("./extended")
png

extract(file_path, new_file_path, start_address, end_address)

バイナリを切り出し、それを新しいファイルに書き込む。
start_address と end_address は str なら, 16進数と
int なら、それらは10進数として扱われる。

>> import fixYabinary
>> fixYabinary.extract("./extended", "./result", 4 , 124)
Succeeded in making ./result

start_addressとend_addressが代入されてなければ、自動でファイルを検出し、切り出して、新しいファイルに書き込む。

>> import fixYabinary
>> fixYabinary.extract("./extended", "./result")
Succeeded in making ./result.png

コード

https://github.com/tkmru/fixYabinaryにあげた。

まとめ

使いましょう。
あと、対応して欲しい やばいなりを教えてください。