Jump to content

crypto

質問ラーンsm

のサイン

https://www.json.cn/encrypt/sm3 在这里插入图片描述質問には小文字が必要なので、在这里插入图片描述またはスクリプト:ハスリブのインポート

メッセージ='heidun2024'

hash_object=hashlib.new( 'sm3')hash_object.update(message.encode( 'utf-8'))hash_value=hash_object.hexdigest()

印刷(hash_value)

ソースコードとデータを保護する必要があります

PHPを使用してPHPを復号化するオンライン復号化ツール

1049983-20241008091545084-1544516962.jpg

PHPソースコードを取得します

?phpfunction my_encode($ str、$ key){$ re=''; $ len=strlen($ str); for($ i=0; $ i $ len; $ i ++){$ c=substr($ str、$ i、1); $ k=substr($ key、($ i%strlen($ key))、1); $ num=ord($ c)+ord($ k); if($ num255)$ num-=256; $ re。=chr($ num); } return $ re;} function my_decode($ str、$ key){return 'something' ' file_put_contents( 'data_encoded.txt'、$ mi); echo 'data_encoded.txt';}に保存されました

?phpfunction my_encode($ str、$ key){$ re=''; $ len=strlen($ str); for($ i=0; $ i $ len; $ i ++){$ c=substr($ str、$ i、1); $ k=substr($ key、($ i%strlen($ key))、1); $ num=ord($ c)+ord($ k); if($ num255)$ num-=256; $ re。=chr($ num); } return $ re;} function my_decode($ str、$ key){return 'something' ' file_put_contents( 'data_encoded.txt'、$ mi); echo 'data_encoded.txt';} ? phpfunction my_encode($ str、$ key){$ re=''; $ len=strlen($ str); for($ i=0; $ i $ len; $ i ++){$ c=substr($ str、$ i、1); $ k=substr($ key、($ i%strlen($ key))、1); $ num=ord($ c)+ord($ k); if($ num255)$ num-=256; $ re。=chr($ num); } return $ re;} function my_decode($ str、$ key){return 'something' ' file_put_contents( 'data_encoded.txt'、$ mi); echo 'data_encoded.txt';}に保存されましたか?

私は自分の部門で決定を下します

質問はデータを提供します

ergdgjboglfpgcbpbofmgafhfngpfoflfpfkgjgcccndcfqfpgcgofofpdadadagrプロンプトはカスタムバイナリです。

1049983-20241008091545733-1752718154.jpg

それは大まかにaからrのアルファベット順の順序であり、1つは行方不明です。したがって、実際には11桁で、aからrは0-9 \ a-hに対応していると推測されています。ここでは使用されていません。

最後に、テスト後、各文字の2桁の電子桁電子桁の電子桁が個別にコード化され、解決策がフラグで取得されます。

crypto.util.Number Import *からOpen( 'My Centigrade I'm the Master.txt')as file3: dat=file.readline()print()print(dat.encode()。hex())print(dat)print(len(dat))co=0 print(i、end='')co+=1print()print(co)chls='abcdefghijklmnopqr'myo=' 0123456789abcdefgh'ct=dict(zip(chls、myo))print print(ct)decdat='' .join( 'for i in dat for i in dat) 18の範囲(0、len(decdat)、2): tmp=decdat [i: i +2] res=int(tmp、jinzhi)flag +=chr(res)print(f '{tmp}、{res}、{chr(res)} jinzhi)print(flag2)print(long_to_bytes(flag2))s

1049983-20241008091546391-954442558.jpg

フラグ{heidun18jinzhi666}

ソースコードとデータを保護する必要があります

質問説明:困難なPHP、困難なフラグ。

添付ファイルのPHPファイルは暗号化されており、ひび割れする必要があります。 http://www.zhaoyuanma.com/zym.htmlなどのオンラインクラッキングプラットフォームを使用するか、独自のPHP環境を構築し、PHPビースト拡張モジュールをインストールし、PHPソースコードをデバッグモードで復元できます。 (モジュールはデフォルトキーで使用できます)ソースコードは暗号化関数を書き込みましたが、復号化関数は書かれていません。

1049983-20241008091547075-918034358.jpg

Plantextフラグを取得するには、TXTファイルを復号化するには、復号化関数を自分で記述する必要があります。復号化コードを参照してください。

1049983-20241008091547925-1102002824.jpg

Misc

ロゴ

LSB Steganographyが調べた、ZSTEGは直接在这里插入图片描述 Stegsolveを使用しても大丈夫です、B0チャンネル在这里插入图片描述サンプルを変更しましたが、私の質問が変更されたかどうかはわかりません。これを見ると、base64テーブルの交換を直接考えることができます在这里插入图片描述

エンコードテーブルが正しくないことがわかりました。これが不完全なテーブルの理由である可能性があります。 XYZから始まるので、XLSであることがわかったときにAbcdefghijklmnopqrstuvw 在这里插入图片描述

Officeを学ぶ

を追加しました。私はそれが非表示になる可能性があることがわかりました。在这里插入图片描述はフラグの列を見て、マクロ暗号化を促しました。私のWPSはマクロ操作を実行できないため、Windowsのオフィスに変更して、ビューでマクロを見つけました。在这里插入图片描述ただし、フラグの文字順はフィルター機能をソートせず、フィルターコンピューターの結果は下降しています。在这里插入图片描述抽出旗文字image-20240622123941465

私はQRコードではありません

在这里插入图片描述はQRコードのように見えますが、それでも00000001111111111111111111111111111111111111111年になります。ツールを購入したい場合は、Penguin 97766819 1049983-20241008091601552-1840568348.png 在这里插入图片描述 在这里插入图片描述 QRコード在这里插入图片描述を取得した後、それを特定した後、パスワードを取得しました。私は長い間それをやっています。ファイル名のキーとオフセットだと思います。また、ファイル名在这里插入图片描述 :0101010imgのキーを作成するための古いルーチンでもあります。写真の最後を確認し、文字列を見つけますxyzabcdefghijklmnopqrstuvwxyz0123456789+/w9i4woeejay7un/hv8u/wt870tq2j6xjkel=完全なbase64テーブルにスプレインし、デコードされたように脱化しますflagxyzabcdefghijklmnopqrstuvwxyz0123456789+/abcdefghijklmnopqrstuvw 1049983-20241008091608756-359250761.jpg

1049983-20241008091609506-357426260.jpg

SMTPフローの追跡

1049983-20241008091610589-2126389979.jpg

1049983-20241008091611517-615518589.jpg

base64電子メール本体をデコードしてテキスト情報を取得し、料理人をHTML出力に保存します。

1049983-20241008091612221-1030756767.jpg

添付ファイルをダウンロードして、暗号化されたDocxドキュメントを見つけます。パスワードは質問者のQQ番号です。

1049983-20241008091612843-236564809.jpg

このページは、WUに比較するように促し、彼がQQ番号217778のコミュニケーショングループの所有者であることを発見しました。

復号化は最終結果になります。

1049983-20241008091613540-1190630996.jpg

フラグ{baodaheidunchutiren}

私は私の心を変えました、そして私は私を知りませんでした

この質問では、go's github.com/tjfoc/gmsm/x509ライブラリを使用して、フラグを暗号化して出力します。公開キーと秘密鍵はすべてソースコードにあります。

1049983-20241008091614269-2079140518.jpg

したがって、復号化はライブラリで復号化のために直接使用されます。その中で、ReadPrivateKeyFrompem関数は、ソースコードで指定された秘密鍵が暗号化されていないため、秘密キーパスワードとして2番目のパラメーターPWDを渡す必要があるため、nilに渡すだけで十分です。

パッケージmainimport( 'crypto/rand' _ 'embed' 'github.com/tjfoc/gmsm/x509')type encryptcontroller struct {} func encrypt(plaintext [] byte)[] byte {publickeyfrompem、err :=x509.ReadPublicFuffromec(PUB) ciphertext、err :=publickeyfrompem.encryptasn1(plantext、rand.reader)if err!=nil {panic(err)} return ciphertext} func decrypt(plaintext [] byte)[] byte {privatekeyfrompem、err 3360=x509.readpribatekeykeyfrompem panic(err)} ciphertext、err :=privatekeyfrompem.decryptasn1(plaintext)if err!=nil {panic(err)} return ciphertext} var pub=[] byte( `-----開始public公開key ----- mfkwewyhkozizj0caqyikoecz1ubgi0dqgaie3xqu+awsgmeqnsvflwusdnjxpkjcsid+xllucj3ukfgmlii/lz2fs3gje4o6pgxzewiizz4eb4b4bbrd1xx1xxkrleq===upubl key ---- `)var pri=[] byte(` -----プライベートを開始しますkey --- migtageambmgbyqgsm49agegccqbhm9vayitbhkwdwibaqgglnntszvhlqswzukwz2cwsfscni8lqm0sssss0kvh8doxg+gcgyikoec Z1UBGI2HRANCAATFGQ74DBKCZ5CEXV+XBRIOEPE+SMJKIP7GWVQINDSR8AYSGJ8TNYVLEAL7IJO8ZDKRAIHNPH5VHUT3XGVESUV5 ---- END秘密キー---- `)func main(){cs :=[] byte {48、125、2、33、0、238、212、154、134、255、91、109、210、231、242、184、9、103、26、30、241、93、242、68、119、148、21、148、218、218、218、218、241、175、148、148、148、148、148、 3、152、63、85、82、2、32、2、156、154、131、146、194、242、200、19、109、209、151、90、252、165、49、247、141、208、219、117、226、91、113、113、225、225、33、162、162、162、87、49、49、49、49、49、49、49、68 16、18、177、119、110、74、6、147、235、85、0、61、4、43、107、207、249、37、195、141、141、23、244、159、235、159、169、243、160、37、4、4、20、179、67、236、236、121、146、146、146、146、146、146、146、146、146、146、146、146、146、146、146、146、146、13 197、214、34、63、138、237、247、166、117、246、210} flag :=decrypt(cs)res :=string(flag)println(res)}フラグヘッダーを追加して実際のフラグを取得します。

フラグ{this_is_a_p

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...