newbieからバイナリアンへ

【PBA 2.0】Binary Instrumentation ~ INT 3 & Trampoline Approach ~

0. イントロ バイナリに任意の処理を行うコードを付与することを instrumentation という (洋書で勉強している+もともとの知識が乏しいため、対応する日本語がわからない。このような単語は他にも複数あるが別に対応する日本語を探す必要もないためそのまま…

【雑談 2.0】あー、夏休み

0: イントロ あー、夏休み 計画を立てないとダラダラと終わりそうな気がするため 大まかな計画だけ立てておくことにする 1:やること-本 Practical Binary Analysis by Dennis Andriesse Gray Hat C# by Brandon Perry Real-World Bug Hunting by Peter Yawor…

【pwn 1.1】UAF - pawnable.xyz - 解く流れがわからない

0. イントロ pwnable.xyz 1. 疑問 pwnの問題を解くときに わざわざスタックの状態だとか 可能な操作だとかをメモしないと解けないのだが この解き方が正しいとは思えない 普通の人は一体どんな流れでpwnを解いているのだろうか? 2. アウトロ 本問ではスタッ…

【PBA 1.0】 ELF loader & Easy code injection with libbfd & libelf

// 1. libbfd &libelf libbfdはELFバイナリを解析するためのライブラリ gdbなんかで使われている こいつを使うとセクションやシンボルの情報に構造体を通して容易にアクセスできる libelfはelfutilsの一部であり やはりELFバイナリを操作するのに使われる 以…

【pwn 1.0】PBA lvl3 - ELFの構造

夏は暑い そして冬は寒い 0. 参考 ・『Practical Binary Analysis』Dennis Andriesse, No Starch Press 1. イントロ 前回に引き続き本書の章末問題を解いていく 2. まずは小手調べ targetは"lvl3"という以下のELFファイル file いきなり変な感じがする ・Mot…

【pwn 1.0】PBA lvl2 - できるだけアセンブリを読まずに

言葉じゃなくて してくれたことであの花を見るべきだった 0. 参考 ・『Practical Binary Analysis』Dennis Andriesse, No Starch Press 1. イントロ Practical Binary Analysisという本を読んでみたかったが、去年の秋に発売されたばかりで日本のAmazonで買…

【NLP 3.2】簡単なRNNによる言語モデル

あれ、なんか最近やってることバイナリアンから遠ざかってね? 0. 参考 ・『ゼロから作るDeep Learning ❷自然言語処理編』斎藤 康毅 1. イントロ RNNを用いて言語モデルを生成する。 RNNは時間情報も組み込んで学習してくれるネットワークである。 正確な用…

【集合知プログラミング 0.1】ゴキブリとの死闘と列のクラスタリングについて

おいG、と僕は思った。 お前とちがって俺は生きると決めたし、それも俺なりにきちんと生きると決めたんだ。 お前だってきっと辛かっただろうけど、俺だって辛いんだ。 大人になるんだよ。 そうしなくてはならないからだ。 俺はこれまでできることなら十七や…

【NLP 3.1】RNNの考え

志を得て天下国家を事とするのも道を行うのであるが 平生顔を洗ったり髪を梳ったりするのも道を行うのである カズイスチカ 森鴎外 0. アウトロ 前回まででword2vecモデルによる推論問題は終わりにする。 今回からは時系列データを得るために RNN というネッ…

【NLP 2.3】CBOWモデルの総復習

諸々の情念の衝動に対抗するには繊細さでなく激烈さで 微傷を与えるのではなく突撃による正面突破で戦わなければならない 何故なら罵っているだけでは済まされず根絶せねばならぬからである。 Fabianus 0. 参考 ・『ゼロから作るDeep Learning ❷自然言語処理…

【数弱の線型代数 1.0】行列式のimplicitな定義

私のものは私が一切身につけて持っている Ambrose Gwinnett Bierce 0. 参考 ・線型代数入門講義―現代数学の“技法”と“心” 長岡亮介 1. イントロ 中学の頃から数学がどうも苦手だ。こいつのせいで一度大学に落ちて、進振りでも失敗した諸悪の根源であると言え…

【NLP 2.2】巨大行列の計算の効率化 ~ Negative Sampling ~

五手稼げるよ。やってみる価値はあるんじゃないかね。五手あれば相手のミスを期待できる。 - 世界の終わりとハードボイルドワンダーランド 0. 参考 ・『ゼロから作るDeep Learning ❷自然言語処理編』斎藤 康毅 1. 問題点① 前エントリまでで考えたCBOWモデル…

【NLP 2.1】THE GREAT GATSBY ~ 簡易版CBOWによる学習と単語のcos-similarity ~

誰かのことを批判したくなったときには、こう考えるようにするんだよ 世間のすべての人が、お前のように恵まれた条件を与えられたわけではないのだと 1. イントロ 前エントリでは簡易版CBOWモデルのneural networkを用いた単語の分散表現の生成方法を扱った…

【NLP 2.0】word2vec ~ CBOW / skip-gram ~

1. 参考 ・『ゼロから作るDeep Learning ❷自然言語処理編』斎藤 康毅 2. カウントベースの分散表現の復習 前エントリでは単語の分散表現をカウントベースで表した。 すなわち ・corpusから共起行列を生成 ・共起行列からPPMIを生成 ・こうして生成した疎な行…

【NLP 1.0】単語の分散表現とSVDの似非数学的説明

1. 参考 ・『ゼロから作るDeep Learning ❷自然言語処理編』斎藤 康毅 ・SVD(特異値分解)解説 - Qiita 2. NLPとは NLP; Natural Language Processing とは、人間の使う自然言語をコンピュータに処理させることである。以前より研究されてきた分野ではあるが…

単純なneural networkの仕組みとその実装

// 1.イントロ 現在"ゼロから作るDeep Learning ➁ ―自然言語処理編"を読み始めたばかりである。 本書を本格的に読み進めて行く前に、最も簡単な構造を持つneural networkについて備忘録的にまとめておく。 2.大まかな構成 今回考えるneural networkは以下の…

CNNとpythonにおける実装についての覚書

1.イントロ オライリーのゼロから作る DeepLearningを読んで理解したCNNとその実装方法について軽くメモしておく。全結合層についてはとりわけ説明することはないから省略する。話題は一貫してmnistの文字認識を扱っていく。 2.CNNとは CNN:Convolutional Ne…

セキュリティキャンプ2019全国大会-応募課題

// 1.イントロ IPA主催のセキュリティキャンプ2019全国大会に参加することになった。 8/13から4泊5日府中で行われる合宿で、交通費・宿泊費・食費・授業費の全てが国負担で行われる。これで少なくともお盆中に餓死する危険性は無くなった。 この時期は大学の…

【Pwn練習 part2.0】お道具箱

pwnable.xyzの問題を15問ほど解いた write_upを公表するのはルール違反だからできないが 解いてきた上での自分なりの手順をまとめると ・checksecでセキュリティ機構確認 ・readelfでシンボル情報確認 ・stringsでcat flagみたいな文字列を検索 (xyzはだ…

【備忘録】pipが使えない

CTFのネットワーク部門もやり始めてみようと思い ハリネズミ本を開いたら難しくて まずブラックハットパイソン本で勉強することにした SSHのプログラムを書く際にparamikoをインストールする必要があり pipを使ってインストールしたところ Traceback (most r…

【まとめ】GOT/PLT/RELRO

1.内容 pwnable.xyzを解くときにGOT overwriteする必要があったが GOT/PLTの関係が曖昧だったため確認しておく 参考サイト: systemoverlord.com 2.なんで動的リンクをするか 共有ライブラリが用意してある理由は 頻繁に使われる操作をモジュールとして再利用…

【HelloWorld part.7】システムコール/ラッパの簡単なまとめ

// 【参考書籍】 ハロー“Hello, World"OSと標準ライブラリのシゴトとしくみ 坂井 弘亮 1.概略 リンカとローダの本は一通り読み終わったため (環境の違いがめんどくさくなって後ろ1/5は読むだけにした。 またGOT/PLTの部分は重要そうで繰り返し呼んだがまだ…

【リンカとローダ part.6】ビルトイン関数を完全に使わずプログラムを書こうとした

// 【参考書籍】リンカ・ローダ実践開発テクニック 坂井弘亮 1.概略 参考書籍もいよいよ架橋で 簡易リンカを自作するところまで来た しかし制作するリンカは簡易的なもので ダイナミックリンクには一切対応していない 故にその準備として ライブラリを一切使…

【リンカとローダ part.4】自作ツール(link_nouse)-外部参照されていない関数・変数をダンプ

// 【参考書籍】リンカ・ローダ実践開発テクニック 坂井弘亮 1.作成プログラム 複数のオブジェクトファイルを引数に取り それらがリンクされたとして 外部から参照されない関数・引数のシンボル名一覧を表示する すなわち前回までで言ってきた 「リンクされ…

【リンカとローダ part.3】続・リンクされているが使われていないシンボル

【参考書籍】リンカ・ローダ実践開発テクニック 坂井弘亮 1.使う関数の関係 前回の記事で 「リンクされているが使われていない関数・変数」 を探索するプログラムの話をしたが 本を読み進めるとそれについて言及していた 関数について話題にする 以下の4つの…

【リンカとローダ part.2】自作elf_nouseを作ろうとしたけど

1.解析プログラム // 前回の最後に言及した 「リンクされているけど利用されていない関数や変数の一覧を作成するツール」 を製作してみようとした /* elf_nouse.c 2019.02.26 リンクはされているが使用されていない変数・関数の一覧を表示する */ #include<stdio.h> #</stdio.h>…

【リンカとローダ part.1】ELFファイルの構造

// 【参考書籍】リンカ・ローダ実践開発テクニック 坂井弘亮 0.Outline 上記参考書籍を読んでの簡単な覚書 1.ELFファイルとは ELF(Executable and Linkable Format)は実行形式の一種 UNIX系ではこれまでa.out形式が主流であったが 最近ではELFが事実上の標準…

【Pwn練習 part.0.1】関数呼び出しとスタック

CTFのPwn問題を解くために gdb-pedaとアセンブラになれる必要があるため 自分で適当なコードを書いて ディスアセンブラが吐いたコードを見て練習することにした // 1.解析対象 今回解析する簡単なプログラムは以下の通り #include<stdio.h> int func(int arg){ int a </stdio.h>…

【HelloWorld part.6】ラッパーを見つけ出す

【参考書籍】ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ 坂井弘亮 1.一旦整理 C言語を初めて勉強した時から C言語自体には画面に文字を出力する能力もない という文言を何度も目にしてきた そういった処理はOSが行なっているのだが (実際に…

【HelloWorld part.5】割り込み処理の引数渡し

参考書籍】ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ 坂井弘亮 0.そういえば VDSOを無効にしたことでINT $0x80が実行されるのが _dl_sysinfo_Int80の内部に変わったのだが 本では依然として__kernel_vsyscalの内部のままだ VDSOを一旦有効に…