るくすの日記 ~ Out_Of_Range ~

主にプログラミング関係

カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み -

0. はじめに カーネルエクスプロイト入門記事part2です。 前回part1では、環境構築とLinuxカーネルのメモリ管理の基礎について、実際のエクスプロイトでのユースケースを通して説明しました。rkx1209.hatenablog.comさて、part2では実際にLinuxカーネルエク…

カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 -

0. はじめに 本記事は、Linuxを対象としたカーネルエクスプロイトの入門記事です。 カーネルエクスプロイトというのは、Linuxや*BSD、Windowsを始めとするカーネル自身の脆弱性を突くエクスプロイトです。 基本的にカーネルはシステム内で最高権限を持つ特権…

参照カウンタオーバーフローを利用したLinuxカーネルエクスプロイト(CVE-2016-0728)

本記事では、Linuxカーネルの鍵保存サービスの脆弱性(CVE-2016-0728)、およびそれを利用した権限昇格エクスプロイトについて解説します。 Linuxカーネルの参照カウンタオーバーフローはCVE-2016-0728とCVE-2014-2851が有名ですが、今回は前者を題材に扱いま…

低レイヤーの歩き方

この記事は Kobe University Advent Calendar25日目の記事です。低レイヤー技術(後述)をこれから学びたい人向けの入門記事です。 自身の経験を踏まえ、より多くの人達にこのレイヤーに興味を持ってほしくて書きました。 決して卒論がやばくてAdvent calendar…

高機能バイナリトレーサqiraはどのように実装されているのか

1. qiraとは qiraとは世界的なハッカー、George Hotz氏 (ジョージ・ホッツ - Wikipedia) によって開発された高機能バイナリトレーサーであり、qiraという名は(QEMU Interactive Runtime Analyser)の略である。GitHub - BinaryAnalysisPlatform/qira: QEMU …

OSC2016 Kyoto 参加報告

前回のOSC Tokyo Springに続き今回の OSC 2016 Kyoto(2016年7月29日-30日) オープンソースカンファレンス2016 Kyoto - オープンソースの文化祭! にも参加してセミナー発表、展示をさせていただきました。ので参加記を書きます。今回も前回に引き続き、去年…

弾幕ゲー開発用スクリプト言語を自作した話

なんとなくスクリプト言語を作ってみたくなったので、東方のような弾幕ゲーで敵の行動,弾幕パターンを記述するためのスクリプト言語を作ってみました。 (最近のゲーム業界ではわざわざDSLを作るより、LuaやHaxeのような汎用的なスクリプト言語と組み合わせる…

OSC2016 Tokyo/Spring 参加記

OSC 2016 Tokyo/Spring オープンソースカンファレンス2016 Tokyo/Spring - オープンソースの文化祭! に参加してセミナー発表、展示をさせていただきました。ので参加記を書きます。今回は、去年の8月に行われたセキュリティ・キャンプ2015全国大会の有志メ…

KVMのなかみ(KVM internals)

VMMの高速化について学ぶ過程でKVMのコードを読んだので、 メモ代わりに内部構造の解説記事を書きました。KVMはqemuと連携して動作するため、以前私が書いたQEMU internals( http://rkx1209.hatenablog.com/entry/2015/11/15/214404 ) も合わせてご参照くだ…

Intel GVT-gにみるMediatedパススルーを用いたGPU仮想化

この記事は システム系論文紹介 Advent Calendar 2015 - Adventar 17日目の記事です。 USENIX'14 ATCにてintelのKun Tian, Yaozu Dong,David Cowperthwaiteによって発表され、XenGTやKVMGTとしてごく最近に実装された新しいたGPU仮想化方式、GVT-gについて見…

パイプラインモデルを用いたシンボリックテイント解析の高速化

この記事は情報セキュリティ系論文紹介 Advent Calendar 2015 - Adventar9日の記事です。 TaintPipe: Pipelined Symbolic Taint Analysis [Ming,et al. USENIX SEC' 15] https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-ming.…

SEGVという概念が存在しない退屈な世界

この記事はKobeUniv Advent Calendar 2015 - Adventar12/6の記事です。本カレンダーではKobeUniversityの現役生または卒業生が自分のやっている事(技術系,理工系に限らず) について自由に書く物です。すごい身内ネタで終わってしまうと思っていましたが予想…

QEMUのなかみ(QEMU internals) part2

前回(part1)rkx1209.hatenablog.com の続きです。part2では仮想IRQ,チップセット,仮想IO,TCGを見ていきます。 多分part2で終わりです。(時間があればまたいつかpart3とか書いてみたいですね...)ではまず仮想IRQから見ていきます。6.仮想IRQ QEMUにおいてIRQ…

QEMUのなかみ(QEMU internals) part1

ここ一ヶ月ほどQEMUのコードとお戯れしていたのですが、qemuのソースコードもうすぐ読みきりそうなのでどこかにまとめたいんだけど、qemu internalみたいな記事ってどれぐらい需要あるの— 前代未聞 (@RKX1209) 2015, 11月 9と言ってみた所なんとなく需要があ…

2014年の振り返り

2014年ももうすぐ終わるので、一年を振り返ります。 (こうでもしないと何やってたかすぐ忘れるので...)2014年 [1月] 集合論とか位相の勉強してた気がする。まだ数学やってた [2月] レンダリングとかアニメーションとかのコード書いてた 3Dゲーム作った気がす…

30日でできない 自作Linuxクローン開発

この記事は 自作OS Advent Calendar 2014 - Adventar 12/25の記事です。一ヶ月程前からLinuxカーネルのコードを読み始めたので、解読ついでに自分でもカーネルを作ってみました。 とはいっても、まだ半分も完成してないです() 当初は、30日でできる 自作Li…

セキュリテイキャンプ2014 参加記

8/12~8/16に行われたセキュリティキャンプ2014に参加しました。 クラスはソフトウェアセキュリティクラスです。以下参加記。[1日目] 何とかして会場に着く。みんな結構早くついていて、すでにたくさん人がいた。 とりあえずいろんな人と名刺交換をする。首…

Debug Interface Access SDKを使って内部関数の名前解決を行う

IDAを使ってソフトウェアの解析をしてるといつも思うんですが、デバッグ情報って便利ですよね。IDAはイメージファイルをロードした後にpdbの検索も行っていて、シンボル情報とかのラベルを自動で埋め込んでくれます。これがあるおかげで、アセンブリをあまり…

RPGのようななにか

RPGのようななにかを作りました。 ソースはここにおいてあります RKX1209/java-RPGTest · GitHub 本体はこちらからダウンロードできます https://dl.dropboxusercontent.com/u/33821276/RPGTest.jar~プレイする前に読んでください~(操作説明) 矢印キー....…

あけましておめでとうございます

もう1/2ですが、 あけましておめでとうございます。去年はいろいろと悲惨な年だったので今年は頑張りたいですね。新年の目標はあまり具体的には決まっていないので、おおまかに書きます。2014年の目標(笑) ・東大出版の基礎数学シリーズを読了する ・岩波現…

2013年の振り返り

少し早いですが、今年の振り返りをしようと思います。1年前の今頃はこんな記事書いてました。あけましておめでとうございます - るくすの日記 ~ Out_Of_Range ~この時はまだ、競プロ一直線みたいな感じだったんですが..... 今はと言うと、うーん... どうして…

作図問題についてあれこれ

この記事は数学 Advent Calendar 2013 - Qiita [キータ] 12/24の記事です。 こんにちは。久しぶりのブログ更新です。最近、開発やら競プロやらをほっぽり出して 数学ばかりやっています。数学AdventCalendar24日目という事で、今日は作図問題について書こう…

ζ(4)の計算

たまには数学関係の事でも書こうかな~。しかしダラダラと定義やら証明やらを書き連ねるのも面倒なので、比較的簡単な計算問題について書きます。 今回はζ(4)の計算。ゼータ関数とはで表される関数ζのことです。つまりζ(4)はで表される級数の事です。 では収…

文字列でダンガンロンパOP やってみた

こんな動画を見つけたので↓ 私も某アニメのOPでやってみました。ようつべに上げてます↓ (ちょっと目に悪そうなので回覧注意です) 文字列でダンガンロンパ OP - YouTube OpenCVを使ってゴニョゴニョした後、JavaScriptに埋め込んで連続再生させてるだけです。…

ライフゲーム作ってみた

先日観ていた動画にこんな物がありました。 ライフゲームの世界【複雑系】 ‐ ニコニコ動画:GINZA 一応ライフゲームの存在は以前から知っていたのですが、ここまで奥が深いとは.... 動画を観ている内に、自分でもやってみたくなったのでソフトを作ってみまし…

情報科学概論のアレ

情報科学概論のロボットの問題を解きました。 とりあえずプログラム書いてPCに計算させます。(ゴリ押しですが何か)アルゴリズムは愚直に幅優先探索。(6台までは30秒ぐらいで答えが出る。)ロボットが1~6台の時の最短方法は以下のようになりました。台数 手順 …

AOJ 0041 Expression

AOJ

[問題文] AIZU ONLINE JUDGE [解法] 構文解析 + 全探索 めんどくさそうだったので放置してた問題。カタラン数C[3] = 5なので、括弧のつけ方はすべて列挙しても問題ない。あとは数字の並び 4! 通りと 演算子 3^3 通りと 括弧のつけ方C[3]通りを試して構文解析…

SRM 563 Div2 hard SpellCardsEasy

[問題文] TopCoder Statistics - Problem Statementカードの並びが与えられる。カード[i]にはlevel[i]とdamage[i]が書いてある。カード[i]を選んだとき、相手にdamage[i]のダメージを与え、カード[i]よりも右に置いてあるカードlevel[i] - 1枚を取り去る。(…

AOJ演習

AOJ

最近、理論固めやバイトで忙しくて問題をほとんど解いていなかったのでひさしぶりにAOJ。 最近追加されたPCK2012予選過去問を解きました。 AOJ256(PCK 1): 10問解いたら何点取れる? AIZU ONLINE JUDGE 書くだけ int main(){ int sum = 0; rep(i,10){ int tm…

あけましておめでとうございます

あけましておめでとうございます。(もうすぐ1/2ですが)正月といえば書初め(コード)ですね。 確か去年の書初めはアセンブラで書きました。 今年は競技プログラミングをやっていく予定なので、普通にC++で問題を解こうと思いますw ~書初め~SRM555 Div2 255: …