とにかく進むねん。
勉強サークルのブログです。 もがきながらでも進むこと。 これがモットーです。
ブログ内検索
リンク
管理画面
新しい記事を書く
カレンダー
03
2025/04
05
S
M
T
W
T
F
S
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
アーカイブ
2012 年 12 月 ( 3 )
2012 年 11 月 ( 11 )
2012 年 10 月 ( 4 )
2012 年 09 月 ( 5 )
2012 年 08 月 ( 4 )
プロフィール
HN:
betweens
性別:
非公開
カウンター
カテゴリー
宿題 ( 10 )
colinux 設定 ( 16 )
colinux network設定 ( 4 )
検索エンジン付き合い方 ( 9 )
C++ ( 2 )
未選択 ( 102 )
shell script ( 1 )
code golf ( 66 )
Haskell ( 14 )
Python Challenge ( 2 )
Project Euler ( 2 )
Python Study ( 3 )
英語 ( 1 )
JAVA ( 3 )
ゴミ情報 ( 1 )
RSS
RSS 0.91
RSS 1.0
RSS 2.0
最新CM
無題
[11/07 betweens]
無題
[11/07 元左席人]
無題
[08/30 betweens]
無題
[08/30 元左席人]
無題
[10/02 元左席人]
最新TB
最新記事
anarchy golf (Haskell) [Number lines]
(12/13)
anarchy golf (Haskell) [spirals] 【Vol.4】
(12/06)
anarchy golf (Haskell) [ two kinds of digit ] 読解
(12/05)
anarchy golf (Haskell) [Reduce fractions]
(11/13)
anarchy golf (Haskell) [Fill in the blanks]
(11/11)
最古記事
宿題 [2008.01a] colinux をインストールしよう
(05/10)
[2008.01a] colinux をインストールしよう(解答編1)
(05/15)
[2008.01a] colinux をインストールしよう(解答編2)
(05/17)
[2008.01a] colinux をインストールしよう(解答編3)
(05/18)
Google のノウハウ
(05/19)
フリーエリア
2025
04,05
03:04
[PR]
CATEGORY[]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
2009
09,22
13:39
バイナリハックス(#14) お勉強
CATEGORY[未選択]
http://0xcc.net/blog/archives/000095.html
この辺りが詳しそうだ。
と思ったら、作者のブログだった。
とりあえず、以下のようなコードを書いて、
コンパイラ通して 試してみることにした。
========================================
【a.cpp】
#include <iostream>
int main(int argc, char* argv[])
{
int var1=3;
std::cout << "test" << var1 << std::endl;
return 0;
}
========================================
user@localhost ~ $ g++ a.cpp
user@localhost ~ $ nm ./a.out > nm1.txt
user@localhost ~ $ nm ./a.out | c++filt > nm2.txt
user@localhost ~ $ diff nm1.txt nm2.txt
3c3
< 0804872a t _GLOBAL__I_main
---
> 0804872a t global constructors keyed to main
6,14c6,14
< 080486e4 t _Z41__static_initialization_and_destruction_0ii
< U _ZNSolsEPFRSoS_E@@GLIBCXX_3.4
< U _ZNSolsEi@@GLIBCXX_3.4
< U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
< U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
※一部略
---
> 080486e4 t __static_initialization_and_destruction_0(int, int)
> U std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))@@GLIBCXX_3.4
> U std::basic_ostream<char, std::char_traits<char> >::operator<<(int)@@GLIBCXX_3.4
> U std::ios_base::Init::Init()@@GLIBCXX_3.4
> U std::ios_base::Init::~Init()@@GLIBCXX_3.4
※一部略
★おお、C++っぽいコードが吐かれてきた。
★てことは、シンボルというのは、コンパイルのリンク時にどれをリンクするかなどの情報なのか?
★mangle は辞書で、圧搾とかずたずたにするという意味なので、
★リンク時の情報を圧縮しているわけか。
★で、人間が見やすくするために、c++filt で、mangle したものを復元するってことね。
★だんだん、バイナリハックというのが、考古学の発掘、復元作業みたいに見えてきたぞ。
★この前は、バイナリという どす黒い見えない塊を どうやって覗くかみたいな感じを受けたが、
★いずれにせよ、バイナリは 僕みたいな素人には 中が見えにくいものなんすね。
PR
コメント[0]
TB[]
<<
バイナリハックス(#15) お勉強
|
HOME
|
バイナリハックス(#8,9) お勉強
>>
コメント
コメント投稿
NAME:
MAIL:
URL:
COLOR:
Black
LimeGreen
SeaGreen
Teal
FireBrick
Tomato
IndianRed
BurlyWood
SlateGray
DarkSlateBlue
LightPink
DeepPink
DarkOrange
Gold
DimGray
Silver
SUBJECT:
COMMENT:
PASS:
trackback
トラックバックURL
<<
バイナリハックス(#15) お勉強
|
HOME
|
バイナリハックス(#8,9) お勉強
>>
忍者ブログ
[PR]