SECCON CTF 2022 Quals に参加した (babycmp, latexipy)

2022-11-15

SECCON CTF 2022 予選にp3r0zとして参加しました。908点で50位(国内15位)でした。 babycmp $ ./chall.baby Usage: ./chall.baby FLAG $ ./chall.baby SECCON{test} Wrong... 文字列を引数として与えると “Wrong…” もしくは “Correct!” のどちらかを表示するプログラムが与えられます。 “Correct!” を出力するような文字列を求めれば良いということですね。 他の Writeup で紹介されているような便利なツールを知らなかったため、 何も考えずにそのままアセンブリを読んで処理を把握してしまいました。 以下、どのようにアプローチしたかを簡単に書いておきます。 まずは Hopper で解析をして、なんとなくこのあたりに判定ロジックが含まれていそうだという認識を持ちます。 比較をしているアドレスに gdb でブレークポイン Read More…

Preferred Networks を退職します

2022-02-24

今日はPreferred Networksの最終出社日でした。アルバイト期間含めて6年間、大変お世話になりました! pic.twitter.com/klMbe5mct8 — Yuki Igarashi (@bonprosoft) February 18, 2022 2月末をもって Preferred Networks を退職します。 フルタイムでは4年間、アルバイトも含めると6年間お世話になりました。 ここ数年間、おかげさまで私としては毎日楽しく(精一杯)過ごしてきたのですが、日頃の情報発信を怠っていたこともあり周りからどう思われているのか考えるときがあります。 ちょうど良い機会だと思うので、この数年間で何をやっていたかをまとめようと思います。 単なる自己満足でしかないのですが、私がこの4年間に取り組んでいたこと、PFNでの経験が本 Read More…

SECCON 2019 Online CTF に参加した (Beeeeeeeeeer, Sandstorm, repair, PPKeyboard)

2019-10-20

SECCON 2019 Online CTFにp3r0zとして参加しました。2131点で42位でした。 僕はBeeeeeeeeeerとSandstormとrepairとPPKeyboardを解いたので、その解法を簡単に書きたいと思います。 Beeeeeeeeeer 問題ファイルをダウンロードしてみると、中身はシェルスクリプトのようです。 整形してみても、コマンド置換を使ったり$'string'を使ったりして難読化しています。 良い解き方が思い浮かばなかったので、set -xをして地道に1ステップずつ追っていきました。部分的にset -xを検出してexitするコードや、後半の方でshutdownを呼び出すコードが含まれてい Read More…

Python 2系と3系のsys.stdinの違い

2018-08-28

早速ですが、次のコードを見てください stdin_loop.py 1 2 3 4 5 import sys for x in sys.stdin: sys.stdout.write('stdin: {}'.format(x)) sys.stdout.flush() これをPython 2.7と3.6でそれぞれ実行してみると、それぞれ次のような結果になります。 Python 2.7での実行結果 hoge fuga ^D stdin: hoge stdin: fuga Python 3.6での実行結果 hoge stdin: hoge fuga stdin: fuga ^D hogeやfugaは入力で、^DはCtrl+Dを入力してEOFを送っていることを意味しています。 結果を見ると2系と3系の違いは明らかで、3系は1行ずつ処理されているにも関わらず、2系ではEOFが送られるまで(正確には一定の大きさのバッファがいっぱいになるまで)処理が始まりません。 インタラクティブなプログラムを作ろうと思って、2系で上 Read More…

今年は”ポエム”を出さない代わりに、ここにポエムを書きます

2018-03-31

2015年から頂いていたMicrosoft MVPアワードですが、今年は7月に審査があるわけで3/31がその審査書類の締め切りとなります。 いろいろ悩みはしましたが、今回私はMVPアワードの審査書類を出さないことにしました。特にMicrosoftやMVPアワードに対して不満があるわけではなく、完全に個人的な気持ちの問題です。 私がコミュニティ活動を本格的に始めたのは2014年からで、その一歩を踏み出す勇気を与えてくださったのがMicrosoftコミュニティの皆さん、そしてMVPの皆さんでした。 特に当時Microsoft Student Partnersプログラムに参加してから Read More…

Pythonのマルチスレッドで気を付けるべきこと

2017-01-26

はじめに、この記事は「マルチスレッドで気を付けるべきnの項目」のような、よくまとまったまとめ記事ではないのでご了承ください。 とある条件でマルチスレッドの挙動が意図しないものになり、その後によくよく考えると「なるほど!」となったのでメモしておきます。 というか内容もあってるかわかりません、独自の考察です。詳しい人ツッコミください。 マルチスレッドで問題が発生する条件 とある条件では、マルチスレッドを使ってしまうと意図しない挙動が発生すると思っています。 それはめちゃくちゃ重い、Pythonを考慮していないような外部ライブラリを使った場合です。 どういうことか、文字だ Read More…

たるしょ~ Advent Calendar 19日目

2016-12-19

この記事はtarusho Advent Calendarの19日目です。遅くなってすみませんでした。 今年もあと2週間か — たるしょ~ (@tarusho) 2016年12月18日 今年もあと2週間なんですね。あと11日間、たるしょ~診断を忘れないように頑張ります。 本編の前に… うちのらぼでのたるしょ~先生の有名ぶりが見て取れるものをざっと紹介したいと思います。 Slack うちの研究室にはドイツのトリに代表される生物や、水瀬いのられさんのような有名人が多く在籍しておりますが、中でもそのコミュニケーションを支えているSlackは大活躍しています。ちなみに研究室全体で有料版課金済みです。 現時点でチャンネルが11 Read More…

Visual Studio Code向けの簡易スペルチェッカーを実装してみる

2016-12-19

この記事はVisual Studio Code Advent Calendar 2016の19日目の記事です。 この記事では、Visual Studio Codeにおいて… 診断機能を実装する方法 Light bulb(電球アイコン)を使ったコードアクションを実装する方法 を、実際にちょっとしたスペルチェッカーを実装しながら紹介したいと思います。 といっても、VSCodeのExtension APIを叩くだけですし、 世の中には実用的なスペルチェッカーのソースコードが公開されているので、 それを例にソースコードを読み解いていきたいと思います。 ちなみに去年のAdvent Calendarでは、VSCodeの画面をリアルタイムで共有できるサービスを Read More…

「NuGetでプラットフォーム毎にアセンブリを展開する方法」と「良い感じにコードを共有してプラットフォーム別のアセンブリを作る方法」

2016-11-24

いろいろと思ったことを忘れないように書いておこうと思います。 最近は.NET Standardとかいろいろありますが、もちろんすべての状況においてすべてのコードが共通化できるわけではありません。というわけで、この投稿では NuGetでプラットフォームごとに異なるアセンブリを展開する方法 CoreFXを覗いてちょっと真似てみた、良い感じにコードを共有してプラットフォーム別のアセンブリを作る方法 をご紹介します。あまり詳しくないので、間違っていたらご指摘お願いします。 NuGetでプラットフォームごとに異なるアセンブリを展開する方法 まずはこの話題についてお話しします。 C Read More…

Microsoft MVP Awardを受賞しました

2016-04-02

参考リンク 2015年4月2日 Microsoft MVP for .NETを受賞しました | 凡人のブログ 更新がだいぶ遅くなってすみません。 2016年4月からもMicrosoft MVPとして活動できることになりました! 去年の4月に1度目を受賞しましたので、今回が2回目の受賞となります。 分野はVisual Studio and Development Technologiesです。 プロフィール・活動履歴はこちらからどうぞ。 プロフィールサイトも更新されたので記念に Microsoft MVPを受賞してから、雑誌の特集記事や本の執筆などの貴重な機会を多くいただき、非常に密度の濃い1年間を過ごすことが出来ました。 (もちろん、コミュニティの運営や勉強会の登壇な Read More…