or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing
xxxxxxxxxx
Hello World 的一生 - Wen Liao
由於場地問題,第二天我們移動到另一棟大樓啦!議程教室變動請見網站上的議程表。
歡迎來到 https://hackmd.io/@coscup/2019 共筆
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →點擊本頁上方的 開始用 Markdown 一起寫筆記!
手機版請點選上方 按鈕展開議程列表。
How to create Hello World executable
My program doesn't work, and I don't know whyEnvironment: ubuntu 18.04, gcc 7, linux kernel 4.14
make -p 可以列出預設的規則
CFLAGS="-save-temps" 保留 .i, .o, .s
內容:
兩大部分:資料+程式
section .rodata( read only) string "hello world"
section .text
reference: x86 ABI (Application Binary Interface)
ld --verbose | grep ENTRY
Entry(_start)
csu (C Start up Unit)
在 _start 的 section 內把 main 的程式碼透過 libC 呼叫與執行
init, fini => 在 start_main 前 hook 東西,callback
Runtime
execve system call @ linux/fs/exec.c
Regist_binfmt() 支援不同的 executable 格式
流程圖可以上講者部落格
Keyword
Sections, text, tss, data
ABI
Linker Script
ELF
Binutils
vDSO
ASLR
man proc
補充
malloc
Why use printf(), not write???
簡報 : http://tiny.cc/6fyabz
tags:
COSCUP2019
系統軟體社群議程
IB201