2012-01-01から1年間の記事一覧

シンボル間の引き算

再配置情報について調べてたらアセンブリでのシンボル間の引き算についてelf/i386とmach-o/x86-64で挙動が違ったのでめも. elf/i386 の場合 (実行環境: Ubuntu 10.04LTS (linux 2.6.32), GNU assembler version 2.20.1 (i486-linux-gnu)) まず.シンボル間…

R_386_8

ELF/i386な再配置情報のR_386_8とかいったいいつ使うんだろうかと思ってたけど次のようにすれば現れることに気づいた例) a.s .data a: .byte 1 d: .byte a 普通にコンパイルするとベースアドレスが0x8048000なので.byte領域に収まらなくてエラーになるので次…

ELF/i386 の再配置情報

ELFでi386なときに使われる再配置情報は以下のとおりです(elf.hより). /* i386 relocs. */ #define R_386_NONE 0 /* No reloc */ #define R_386_32 1 /* Direct 32 bit */ S+A #define R_386_PC32 2 /* PC relative 32 bit */ S+A-P #define R_386_GOT32 3 /…

Vimでお絵描きプログラミング

vim

この記事はVim Advent Calender 2012,第23日目の記事です.前日は@y_uukiさんのPerl屋さんに便利なVim Pluginを2つ書いた - ゆううきブログでした. pietというプログラミング言語があります.pietは普通の言語とはちょっと変わっていて画像を使ってプログラ…

第01回北関東情報セキュリティ勉強会に参加してきました

2012/12/8日に群馬県新島短期大学でおこなわれた第01回北関東情報セキュリティ勉強会に参加してきました.なんか参加者の方がすごかったです.. 午前 午前には目覚ましLTということで10:30から1時間ほどLTがありました.・@dragon_TA さん ボランティアとセキ…

エンディアンの話

asm

・x86の場合 nasm(intel syntax) mov dword[eax+0x08],0x1234 アセンブル結果 c7 40 08 34 12 00 00機械語解読のためにはオペコードのフォーマットに関する知識が必要で、詳しくはインテルのマニュアル参照ですが簡単にまとめると prefix(1-4byte) opcode(1-…

macでtccを使う

2012/10/09現在公式サイト(http://bellard.org/tcc/)で配布されてる最新版(0.9.25)をコンパイルしようとしてもエラーがでる。。ので開発版([http://repo.or.cz/w/tinycc.git)を使う。 $ git clone git://repo.or.cz/tinycc.git $ cd tinycc $ ./configure &&…

macbookのHDDをSSDに交換

今使ってるMBPは確か2009 midなんですが2週間ぐらい前に普通に使ってたところ突然終了して、電源入れて数十分待ってもログイン画面が出なくなりました、しかたがないので起動ディスクからディスクユーティリティを使ってディスクチェックしてみると「深刻な…

セキュリティキャンプ2012参加してきました

8/14-8/18までセキュリティキャンプに参加してきました.非常に内容の濃い5日間でとても楽しかったです,(そして眠い…) 僕はセキュアなOSクラスで,セキュアなOSクラスでは各参加者一人一人がOSとセキュリティに関連するテーマを選び,開発をおこないました…

セキュキャン2012 セキュアなOSを作ろうクラスに参加します

今月はいろいろと所用が重なっていてここに書くのが遅くなりましたが,セキュキャン2012 セキュアなOSを作ろうクラスに参加することになりました.精一杯頑張ろうと思います. 応募用紙のプログラムについて少しだけ.とりあえず,プログラムの処理の流れは…

LinuxにおけるTSS

めも. (2/25 一部追記) 参考: http://wiki.osdev.org/Context_SwitchingLinux はTSSを利用していない(Windowsも).その理由は ・速くない ・ディスクリプタテーブルの上限は8192 (但しコンテキストスイッチ時に GDTR を切り替えればこの制限は突破できる) …

GASのローカルシンボルネーム

asm

linuxのコンテキストスイッチは以下のようになってます. (http://lxr.linux.no/linux+v3.2.7/arch/x86/include/asm/system.h#L48) 59 asm volatile("pushfl\n\t" /* save flags */ \ 60 "pushl %%ebp\n\t" /* save EBP */ \ 61 "movl %%esp,%[prev_sp]\n\t"…

Vimでパーリンノイズ

Vim

あけましておめでとうございます.これは Vim Advent Calendar 34日目の記事です. 今日はパーリンノイズの話をしようと思います.パーリンノイズはCGのテクスチャ生成等に利用される乱数*1です.普通の乱数だと,あまりにも各々の値がばらばらで,自然界に…