$ dos2unix <file>
2017年12月28日 星期四
Linux下移除^M符號問題 dos2unix
在Linux下,有機會用vim來編輯windows下的文件,會發現文件每行結尾都為^M符號,
這是因為Linux編輯器和DOS編輯器的換行符號不同所導致,以下可以移除^M符號。
將檔案從stage移除
1. 在提交檔案時會有兩個步驟git add 將檔案從unstage變為stage git commit 將檔案寫入repository2. 當git add後,發現加錯檔案,想將檔案從stage變回unstage,有兩個方式。 2.1 當檔案不在repository內git rm --cached2.2 當檔案已經在repository內 git reset HEAD3. 參考來源 http://oomusou.io/git/git-remove-stage/
2017年12月13日 星期三
ELF header解析
1. ELF base type/* 32-bit ELF base types. */ typedef __u32 Elf32_Addr; typedef __u16 Elf32_Half; typedef __u32 Elf32_Off; typedef __s32 Elf32_Sword; typedef __u32 Elf32_Word; /* 64-bit ELF base types. */ typedef __u64 Elf64_Addr; typedef __u16 Elf64_Half; typedef __s16 Elf64_SHalf; typedef __u64 Elf64_Off; typedef __s32 Elf64_Sword; typedef __u32 Elf64_Word; typedef __u64 Elf64_Xword; typedef __s64 Elf64_Sxword;2. ELF headertypedef struct elf32_hdr{ unsigned char e_ident[EI_NIDENT]; Elf32_Half e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; /* Entry point */ Elf32_Off e_phoff; Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; } Elf32_Ehdr;可用"readelf -h"命令dump出ELF header 3. Program headertypedef struct elf32_phdr{ Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Word p_filesz; Elf32_Word p_memsz; Elf32_Word p_flags; Elf32_Word p_align; } Elf32_Phdr;可用"readelf -l"命令dump出Program header 4. Section headertypedef struct elf32_shdr { Elf32_Word sh_name; Elf32_Word sh_type; Elf32_Word sh_flags; Elf32_Addr sh_addr; Elf32_Off sh_offset; Elf32_Word sh_size; Elf32_Word sh_link; Elf32_Word sh_info; Elf32_Word sh_addralign; Elf32_Word sh_entsize; } Elf32_Shdr;可用"readelf -S"命令dump出Section header,sh_name可由第e_shstrndx取得,e_shstrndx指向[27] .shstrta。 5. Symbol talbetypedef struct elf32_sym{ Elf32_Word st_name; Elf32_Addr st_value; Elf32_Word st_size; unsigned char st_info; unsigned char st_other; Elf32_Half st_shndx; } Elf32_Sym;可用"readelf -s"命令dump出Symbol table,st_name可由[28] .symtab的sh_link取得,sh_link指向[29] .strtab。 6. 參考來源 http://www.cirosantilli.com/elf-hello-world/ https://ctf-wiki.github.io/ctf-wiki/executable/elf/elf_structure.html
2017年12月9日 星期六
srTCM 介紹
1. srTCM介紹 流量控制叫作"Single Rate Three Color Marker",裡頭有三大陣營,分別是紅色、黃色、綠色。 這三個陣營會在入會條件成立的時候,將封包納為自己的成員。 三個顏色陣營管轄範圍如下(紅框部份): 綠色: Conforming Action 黃色: Partial Conforming Action 紅色: Non-Conforming Action 三個陣營會分別替自己的成員打上 DSCP Mark 1、2、3(紅框部份)。 而這三個陣營有一個共識,可接受的平均速度(Committed Rate)等於10Mbps。並且訂出加入各陣營的條件(灰框部份)。 以這個共識為前提,當經過入會條件判別體積(Committed Burst Size)小於1kByte的時候,會被綠色陣營接管,加上DSCP Mark 1。 體積(Committed Burst Size)大於1kByte且小於最大能容忍的體積(Excess Burst Size)2kBytes的時候,會被黃色陣營接管,加上DSCP Mark 2。 但是當瞬間湧入體積大於2kBytes且打破三陣營共識(Committed Rate = 10Mbps)的時候,會被紅色陣營接管,加上DSCP Mark 3。 2. srTCM測試環境 三個陣營的條件和行動方針,明定列於ebtables –t nat公佈欄上。 重點來了,要如何知道三色陣營有按照規矩做事? LAN PC - Router - WAN PC (10.1.1.100) 稽核工具:hping3。目的為設定封包大小,且可設定1s送出多少封包。 以下動作由稽核人員(LAN PC)執行。 綠色確認:hping3 10.1.1.100 –S -1 –p 888 –d 900 => 在WAN PC抓封包可以看到DSCP = 1 黃色確認:hping3 10.1.1.100 –S -1 –p 888 –d 1200 => 在WAN PC抓封包可以看到DSCP =2 紅色確認:hping3 10.1.1.100 –S -1 –p 888 -i u10 –d 2200 => 1s送出10個封包,在WAN PC上可以看到DSCP = 2 和 DSCP = 3 3. 參考來源 http://blog.xuite.net/ian11832/blogg/197448684
訂閱:
文章 (Atom)