BUUCTF MISCのZIP

この質問イライラ、別々書き出す
1を使用することになり、最初の投稿二つの絵を
図I
図II

これは、圧縮された68の最初のタイトルは、ある
ここに画像を挿入説明
各圧縮袋はサイズのみを4バイトなので、常に殺されたCRCブラストは、独自のスクリプトを記述することが考えられる、怠惰なスクリプトを見つけました

 
インポートzipファイル
 インポート文字列
 インポートbinascii 

DEF CrackCrc(CRC)
     のためにDIC: 
         のための J :DIC
             のための K DIC:
                 のための時間DIC:
                    S =私はJ + K + + Hの
                     場合、CRC == (binascii.crc32( s.encode())):
                        f.write(S)
                        リターン

DEF CrackZip()
         のための I における範囲(0,68 )。
            ファイル = ' アウト' + STR(I)+ ' の.zip ' 
            CRC = zipfile.ZipFile(ファイル、' R ').getinfo(' data.txtを' ).crcと
            CrackCrc(CRC)

DIC = string.ascii_letters +ストリング。数字+ ' + / = ' 

F =オープン(' out.txtを'' W ' 
CrackZip()
プリント" CRC32碰撞完成" 
f.close

 

次いで、Base64エンコーディングの結果の文字列は、進復号
ここに画像を挿入説明
ので便利前の図を、記憶解凍後526 172 21 07 00 1Aを埋める、我々は、これが不完全RARであることを知っているCF 90 73を参照して、取得
ここに画像を挿入説明
この非常に肌に、そして最終的にflag.txt結果は、私にこれを見て与えてしまった
この1つは固定されており、ヘッダーとビットのCRCマークの間に74があり、その後、第2のマップを見て、私たち図7Aは、今ありますここに画像を挿入説明

図7Aは、抽出、74に変更される
ここに画像を挿入説明
の実際のフラグであるCMTを

おすすめ

転載: www.cnblogs.com/harmonica11/p/11365755.html