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を復号化するオンライン復号化ツール
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プロンプトはカスタムバイナリです。
それは大まかに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
フラグ{heidun18jinzhi666}
ソースコードとデータを保護する必要があります
質問説明:困難なPHP、困難なフラグ。
添付ファイルのPHPファイルは暗号化されており、ひび割れする必要があります。 http://www.zhaoyuanma.com/zym.htmlなどのオンラインクラッキングプラットフォームを使用するか、独自のPHP環境を構築し、PHPビースト拡張モジュールをインストールし、PHPソースコードをデバッグモードで復元できます。 (モジュールはデフォルトキーで使用できます)ソースコードは暗号化関数を書き込みましたが、復号化関数は書かれていません。
Plantextフラグを取得するには、TXTファイルを復号化するには、復号化関数を自分で記述する必要があります。復号化コードを参照してください。
Misc
ロゴ
LSB Steganographyが調べた、ZSTEGは直接 Stegsolveを使用しても大丈夫です、B0チャンネル
サンプルを変更しましたが、私の質問が変更されたかどうかはわかりません。これを見ると、base64テーブルの交換を直接考えることができます
エンコードテーブルが正しくないことがわかりました。これが不完全なテーブルの理由である可能性があります。 XYZから始まるので、XLSであることがわかったときにAbcdefghijklmnopqrstuvw
Officeを学ぶ
を追加しました。私はそれが非表示になる可能性があることがわかりました。はフラグの列を見て、マクロ暗号化を促しました。私のWPSはマクロ操作を実行できないため、Windowsのオフィスに変更して、ビューでマクロを見つけました。
ただし、フラグの文字順はフィルター機能をソートせず、フィルターコンピューターの結果は下降しています。
抽出旗文字
私はQRコードではありません
はQRコードのように見えますが、それでも00000001111111111111111111111111111111111111111年になります。ツールを購入したい場合は、Penguin 97766819
QRコード
を取得した後、それを特定した後、パスワードを取得しました。私は長い間それをやっています。ファイル名のキーとオフセットだと思います。また、ファイル名
:0101010
のキーを作成するための古いルーチンでもあります。写真の最後を確認し、文字列を見つけますxyzabcdefghijklmnopqrstuvwxyz0123456789+/w9i4woeejay7un/hv8u/wt870tq2j6xjkel=完全なbase64テーブルにスプレインし、デコードされたように脱化しますflagxyzabcdefghijklmnopqrstuvwxyz0123456789+/abcdefghijklmnopqrstuvw
SMTPフローの追跡
base64電子メール本体をデコードしてテキスト情報を取得し、料理人をHTML出力に保存します。
添付ファイルをダウンロードして、暗号化されたDocxドキュメントを見つけます。パスワードは質問者のQQ番号です。
このページは、WUに比較するように促し、彼がQQ番号217778のコミュニケーショングループの所有者であることを発見しました。
復号化は最終結果になります。
フラグ{baodaheidunchutiren}
私は私の心を変えました、そして私は私を知りませんでした
この質問では、go's github.com/tjfoc/gmsm/x509ライブラリを使用して、フラグを暗号化して出力します。公開キーと秘密鍵はすべてソースコードにあります。
したがって、復号化はライブラリで復号化のために直接使用されます。その中で、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
Recommended Comments