LLVM IR、LLVM bitcodeを扱うコマンドたちのメモ

LLVM IR、LLVM bitcodeを扱うコマンドをよく忘れるのでメモしておく。 CのコードをLLVM IR、LLVM bitcodeに変換するコマンド、LLVM bitcodeをインタプリタから実行するコマンド、コンパイルするコマンドなどを書いておく。 以下のCのコードを変換していく。 …

LLVMのPassを題材にした0CTF CTF quals 2017のChoicesを解いた

最近、LLVMに興味があって、いろいろ調べているうちにLLVMのPassのreversingの問題を見つけたので解いてみた。 write-ups-2017/0ctf-quals-2017/reverse/Choices-297 at master · ctfs/write-ups-2017 問題 All roads lead to Vegas. Compile: clang -Xclang…

技術書展4でTomoriNao Vol.2頒布してきた!!

11時20分くらいに着いたら整理券が1918番で結局入れたのは12時半ごろだった。予想以上に人が多い。 13時頃には200冊全部売れてよかったですね。 TomoriNao vol.2完売!!ありがとうございます!!!kindle版をよろしくお願いします!!!! #技術書典4— たけ…

rails 5.1.6 のアプリをrails 5.2.0にアップデートしたときに困ったとこメモ

rails 5.1.6 のアプリをrails 5.2.0にアップデートしたときに、いろいろハマったのでメモ。 rails側 rails側での作業メモ。 cannot load such file -- bootsnap/setup とりあえず rails app:updateしてみる。 route.rbなどは上書きしたらダメだけど、boot.rb…

技術書展4で TomoriNao vol.2 頒布します!!!

技術書展4で TomoriNao vol.2 頒布します!! 場所は「お16」です!!! techbookfest.org ぼくは、「アンチデバックのためのデッドコードをLLVM optimizerで緩和してみる」という題で書きました。 LLVMのパスを使った難読化/難読化緩和の研究がちょくちょく…

JSONを扱いやすくするコマンド(jq, gron)のメモ

JSONを扱いやすくするコマンドのjq、gronのメモ。 jq コマンド jq コマンドはJSON向けのawkのようなもの。 インストール方法(on Mac) $ brew install jq 使い方 パイプで渡されたJSONデータにフィルターをかけることができる。 githubのリポジトリ名を列挙…

株式会社はてなに入社しました

株式会社はてなに入社しました株式会社はてなに入社しました - hitode909の日記

IDAプラグインの更新をサボっていたら割れIDAへのリンクを貼られた

IDA

IDA 7.0が昨年9月くらいに出たので、IDA 6.xのプラグインはIDA 7.xに対応するべく更新する必要がありました。 更新されたAPIへの差し替え、32bitアプリケーションだったのが64bitアプリケーションになったことによる変更などなど.... www.hex-rays.com naoと…

Rails appのコードを変更したときに、Guardに自動でRuboCop、RSpecを実行してもらう

Guardとは Guardはファイルに変更があったときに、タスクを走らせてくれるgemで、コードを変更したときに、静的なコードチェックをしてくれるRuboCopやRSpecで書かれたテストを実行させることができる。RuboCopやテストコードを随時走らせてコーディングして…

LLVM bitcodeのCFGを生成する

LLVM bitcodeとは LLVM内ではLLVM IRという中間言語表現が用いられる。 ソースコードをLLVM IRコードに変換したあと、そのLLVM IRコードをターゲットのアーキテクチャのバイナリに変換...という流れでコンパイルは行われる。 LLVM bitcode は LLVMの独自バ…

死んだサーバーで動いていたアプリの引っ越しの歌

記憶の欠片に描いたnginx.confを見つめて 跡切れた想い出重ねる 変わらない夢に Oh 死んだHDD どれだけ涙を流せば 貴方を忘れられるだろう Just tell me my life 何処まで歩いてみても 涙で明日が見えない以上、X JAPANのRusty Nailの替え歌でした。www.yout…

2017年のOSSへのコントリビューションまとめ

年末ということで今年のOSSへのコントリビューションを振り返る。来年はもっとやっていきたい。 Metasploit github.com GSoCにMetasploitで参加していたので、それで結構プルリクを送った。 GSoC 2017にmetasploitで採択された。 - 脱力系日記 Pull Requests…

Linux Rootkit Internalsという題でLTをしてきた

12/23にあったCyber Wargame Christmas Party (大和セキュリティ勉強会)でLinux Rootkit Internalsという題でLTをしてきた。 atnd.org speakerdeck.com GitHubにLinux rootkitのコードがいろいろ上がっていて、それが結構おもしろくて最近ちらちらコード読…

機械学習を使っているアンチウイルスを機械学習を使ってバイパスする「gym-malware」の紹介

マルウェアの分類のために使われている機械学習のblind spotを潰すために、機械学習を使っているアンチウイルスを機械学習を使ってバイパスする研究が最近活発になってきている。 この記事では、black hat USA 2017で発表されたBot-Vs-Bot-Evading-Machine-L…

chrome.windows.createで作られるwindowはフレームを含むのでOS毎にサイズを変えないといけない

最近、メインのOSをWindowsに移しつつあって、以前つくったChrome拡張の favurl - Chrome ウェブストア をWindowsで使ってみると、URL をツイートするwindowがうまく表示されなかった。ここでのwindowはbrowser_actionで出るpopup、つまりツールバーのアイコ…

golangでご覧!wて言いたくてgolangでHTTPサーバ書いた

go

golangでご覧!wて言いたくてHTTPサーバー書いた。PythonのSimpleHTTPServerっぽくなった。名前がgoranなので「golangのgoranでご覧!w」と言えるようになった。 tkmru/goran: simple http server. 雑に以下のようなかんじで使える。localhostにしないと使えな…

ActiveResourceを使ったRailsアプリをRedisで高速化した

ActiveResource とは ActiveResourceはRESTful APIをマッピングしActiveRecord のモデルとして利用可能にするgemで、これを使うとActiveRecordでDB操作を行うのと同じようにRESTful APIを利用できます。 github.com ボトルネックになることもある ActiveReso…

コマンドラインオプションをflagでパースしたとき-hを指定するとexit status2と出てしまう

go

どういうこと golangではコマンドラインオプションをflagパッケージを使ってパースすることができる。 しかし、オプションに-h、--helpを指定すると、以下のようにexit status2と出てしまう。 なんでこんな仕様なのか分からない... $ go run flagSample.go -…

複数人のSSHの鍵をGitHubに登録している鍵を使ってシュッと鯖にいれる

各ユーザーがGitHubに登録している公開鍵は公開されていて誰でも見れるのでこれを使う。 大体の人はGitHubに鍵を登録しているだろうし、これを使えばシュッと鯖にSSHの公開鍵を設定することができて便利。 以下のようにcurlコマンド一発で複数人のSSHの鍵を…

Mitamaeでdotfilesの管理をやるようにした

Mitamaeでdotfilesの管理をするようにした。 Mitamaeとは プロビジョニングツールのitameのmruby実装である。mruby実装にすることで何がうれしいかというとRuby や gem に依存しなくなるというのがある。Mitamaeのバイナリがあれば動くので、curlで引っ張っ…

GSoC完走できた〜💪

GSoC完走できた〜!!metasploit-framework に3ヶ月間、コントリビュートしていました。 tkmr.hatenablog.comlinuxのstager周りを触るということでアセンブリ書いてお金もらってたけれど、そうそう業務でアセンブリ書かないだろうし、これが人生で最初で最後…

HackIT CTF 2017 rev200 writeup

問題 Description: You haxor, come on you little sciddie… debug me, eh? You fucking little lamer… You fuckin’ come on, come debug me! I’ll get your ass, you jerk! Oh, you IDA monkey! Fuck all you and your tools! Come on, you scum haxor, you…

HackIT CTF 2017 rev150 writeup

問題 Description: Looks like this packer can not unpack what has been packed :( There are 2 mistakes in unpacking procedure. It leads to the error. Try to fix unpacker and figure out what is inside. packerとpackedという2つの64bitのELFが与…

TomoriNaoから同人誌を出してコミケで頒布した。

所属しているCTFチームのTomoriNaoから同人誌を出してコミケで頒布しました。僕はMetasploitから学ぶ複アーキ シェルコード入門という題で記事を書きました。 無事完売した模様。 \TomoriNao Vol.1完売/— Team TomoriNao (@TomoriNao_pro) 2017年8月11日 …

複アーキ環境をエイってしてくれるシェルスクリプト書いた

リバースエンジニアリングであったりシェルコード開発であったりで、複数のアーキテクチャのバイナリが動作する環境が必要になることがある。 その環境構築と使い勝手をいいかんじにしてくれるシェルスクリプトを書いた。qcow2イメージの取り回しをよくする…

gitの使ってないブランチをガッと消すコマンド書いた

バイトで開発するときブランチ切ってプルリクを送る感じで開発してて、ブランチ多いのが気になってたけど、ひとつひとつ消すのもだるいので書いた。 alias rmbr="git branch --merged | grep -v '*' | grep -v 'master' | xargs -I % git branch -d %" alias…

SHA2017 CTF round Teaser NoComment..Again writeup

CTF

問題文 There might be something hiddenq in this file, can you find it? .exeが与えられる。 解く 動かしてみると、PealApp Utilityのライセンスが評価版で期限が切れたという旨のメッセージが出る。 これはPCの時間をn日前にすることで回避できる。この…

SHA2017 CTF round Teaser Website Attack writeup

CTF

SHA2017 CTF round Teaser Website Attack (Network) のwriteup。ひさしぶりにCTFをやった。 問題文 Our website received an attack in 2013, we managed to capture the attack in this pcap. Can you find out if we leaked some sensitive information? …

GSoC 2017にmetasploitで採択された。

GSoCとは GSoCというのはGoogle Summer of Codeの略で、アメリカでは学校が休みである夏の3ヶ月(5/30〜8/22)の間、Googleからお金を貰ってOSSに貢献しようというイベントである。日本では一部の期間、学校がある期間とかぶり、一見むずかしいように見える…

RSpecで画像をアップロードするAPIのテストを書く

Rack::Test::Methodsに含まれるRack::Test::UploadedFile.newを使う。Gemfile.lockを見れば分かるようにrack-testはデフォルトでRailsアプリケーションにインストールされている。 以下、grapeで作成した画像をアップロードするAPIに対する正常系のテストの…