elf檔案中程式碼段有絕對地址但重定位表中無.text.rel
#include
int main()
{
printf("hello\n");
return 0;
}
[email protected]:~/elffun.d$ readelf -S helloWorld.o
共有 30 個節頭,從偏移量 0x1800 開始:
節頭:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048154 000154 000013 00 A 0 0 1
[ 2] .note.ABI-tag NOTE 08048168 000168 000020 00 A 0 0 4
[ 3] .note.gnu.build-i NOTE 08048188 000188 000024 00 A 0 0 4
[ 4] .gnu.hash GNU_HASH 080481ac 0001ac 000020 04 A 5 0 4
[ 5] .dynsym DYNSYM 080481cc 0001cc 000050 10 A 6 1 4
[ 6] .dynstr STRTAB 0804821c 00021c 00004a 00 A 0 0 1
[ 7] .gnu.version VERSYM 08048266 000266 00000a 02 A 5 0 2
[ 8] .gnu.version_r VERNEED 08048270 000270 000020 00 A 6 1 4
[ 9] .rel.dyn REL 08048290 000290 000008 08 A 5 0 4
[10] .rel.plt REL 08048298 000298 000018 08 AI 5 12 4
[11] .init PROGBITS 080482b0 0002b0 000023 00 AX 0 0 4
[12] .plt PROGBITS 080482e0 0002e0 000040 04 AX 0 0 16
[13] .text PROGBITS 08048320 000320 000192 00 AX 0 0 16
[14] .fini PROGBITS 080484b4 0004b4 000014 00 AX 0 0 4
[15] .rodata PROGBITS 080484c8 0004c8 00000e 00 A 0 0 4
[16] .eh_frame_hdr PROGBITS 080484d8 0004d8 00002c 00 A 0 0 4
[17] .eh_frame PROGBITS 08048504 000504 0000cc 00 A 0 0 4
[18] .init_array INIT_ARRAY 08049f08 000f08 000004 00 WA 0 0 4
[19] .fini_array FINI_ARRAY 08049f0c 000f0c 000004 00 WA 0 0 4
[20] .jcr PROGBITS 08049f10 000f10 000004 00 WA 0 0 4
[21] .dynamic DYNAMIC 08049f14 000f14 0000e8 08 WA 6 0 4
[22] .got PROGBITS 08049ffc 000ffc 000004 04 WA 0 0 4
[23] .got.plt PROGBITS 0804a000 001000 000018 04 WA 0 0 4
[24] .data PROGBITS 0804a018 001018 000008 00 WA 0 0 4
[25] .bss NOBITS 0804a020 001020 000004 00 WA 0 0 1
[26] .comment PROGBITS 00000000 001020 000052 01 MS 0 0 1
[27] .shstrtab STRTAB 00000000 001072 000106 00 0 0 1
[28] .symtab SYMTAB 00000000 001178 000430 10 29 45 4
[29] .strtab STRTAB 00000000 0015a8 000255 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
[email protected]:~/elffun.d$ gcc helloWorld.c -o helloWorld.o
相關推薦
elf檔案中程式碼段有絕對地址但重定位表中無.text.rel
#include int main() { printf("hello\n"); return 0; }
PE檔案格式學習(八):基址重定位表
1.簡介 基址重定位表位於資料目錄表中的第六個,它位於安全表的後面。 這個表的作用是用來索引那些需要重定位的資料的。當系統發現DLL的真實載入基址跟PE檔案中的ImageBase中的值不一樣時,就會啟用基址重定位表修復一些資料的地址。我們知道一個程式中可能包含多個DLL,因此有可
C# 檔案操作程式碼段儲存
C# 檔案操作大全 1.建立資料夾 //using System.IO; Directory.CreateDirectory(%%1); 2.建立檔案 //using System.IO; File.Create(%%1); 3.刪除檔案 //using System.
c#檔案操作程式碼段儲存
1.建立資料夾 //using System.IO; Directory.CreateDirectory(%%1); 2.建立檔案 //using System.IO; File.Create(%%1); 3.刪除檔案 //using System.IO; File.
數據庫中字段的數據類型與JAVA中數據類型的對應關系
enter mes bigint mat datetime all double float style 類型名稱 顯示長度 數據庫類型 JAVA類型 JDBC類型索引(int) 描述 VARCHAR L+N VARCHAR java.
如何實現一個表字段資料變化,另一張表中資料隨著變化
資料表1(db_integrityevent): 資料表2:(db_corporatecreditscore): navicat觸發器寫法: 可以實現表中相關資料變化,表中其他跟隨這變化。 mysql命令列寫法: delimiter $$ for each row B
將兩個表中查出的兩列信息放在同一個表中
i++ trade ear .cn select 一行 gdi record 企業 String sql_gd = "select * from TAX_INFO_GD where ID=‘"+gdid+"‘"; Record gdRecord = Db
如何把excel中的資料匯入到oracle資料已有的表中
操作步驟如下: 準備資料:在excel中構造出需要的資料 2.將excel中的資料另存為文字檔案(有製表符分隔的) 3.將新儲存到文字檔案中的資料匯入到pl*sql中 &nb
Oracle 將一個表中幾個欄位更新到另一個表中
UPDATE TEST_TABLE1 T1 SET (T1.AA, T1.BB, T1.CC) =  
Excel中Vlookup與index+match再另一個工作表中的使用方法
在同一個excel中,有一個工作表名為test,資料為上面圖片的格式,現在需要把資訊表增加銷量列,員工銷量需要匹配業績表中的銷量,通過Vlookupyuindex+match函式匹配出並且在另一個工作表中: 新建一個工作表,複製test工作表中資訊表的資料,在增加兩列銷量,通過工號匹配
Sql Server儲存過程從一個表中抓取資料填充到另一張表中
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: <alex,,Name> -- Create
PE檔案解析-輸入表、輸出表與重定位表
一、 輸入表 1、輸入表地址定位 PE檔案頭可選映像頭中資料目錄表的第二成員指向輸入表,輸入表以一個 IAMGE_IMPORT_DESCRITPTOR 陣列開始,每個被PE檔案隱式地連結進來的DLL都有一個IID,在這個陣列中沒有欄位指出該結構陣列的項數,但他最後一
[Scripts]一個表中存在但另外一個表中不存在的SQL
一個表中存在但另外一個表中不存在的SQL,兩種寫法:NOT EXISTSSELECT ipFROM login_log lWHERE NOT EXISTS ( SELECT 1 -- it is mostly irrelevant what you put here FR
PE檔案學習筆記(四):重定位表(Relocation Table)解析
1、重定位表的作用 重定位表(Relocation Table)用於在程式載入到記憶體中時,進行記憶體地址的修正。為什麼要進行記憶體地址的修正?我們舉個例子來說:test.exe可執行程式需要三個動態連結庫dll(a.dll,b.dll,c.dll),假設te
淺談sql server把一個表中查詢出來的資料插入到另外一個表中
1、 insertintoA([id], ids,[name], type, time) select[id],null,[name],'dd',getdate()fromBwheretype='dd' 2、 DECLARE @num int,@i int; SET @
PL\SQL如何將從一張表中選出的資料插入到另一張表中
今天在做資料庫操作的時候,有一個需求是將A表中的前500000條資料查出來,然後插入到表B中.表A與表B具有同樣的欄位型別,資料庫為Oracle 10g,資料庫管理工具用的PL\SQL,由於資料庫不是特別的熟,於是在網上查到如下語法: insert into B se
利用SQL語句中的case、when、sum實現將表中的一列變為多列
一、原表status的結構如圖所示:展示的主要欄位有addtime1(丟失時間)、addtime2(撿到時間)、status(狀態)1,表示成功;2 表示認領中;0表示未認領;二、現在報表設計的需求是統計一個月之內成功認領的個數、兩個月之內成功認領的個數、三個月之內成功認領以
用oracle查詢一個表中的一個欄位內容包含另一個表中的某個欄位的值
select * from table1 where exists (select 1 from table2 where table1.columA like '%' || table2.columB || '%')
SQL中union的常用用法~~解決資料拼湊、表中兩列合併等問題
強大的union 和union all的方法,具體可檢視強大的W3SCHOOL裡的說明 union 博主只知道可以拿來拼資料,在二次開發資料來源中,經常在下拉框選項值時,比如 select '是' id,'是' label from dual u
從一張表中復制數據到另一張表中
server reat clas into 復制 from insert sqlserve rom 分為兩種情況,一種是目標表不存在,另一種是目標表已存在,語法是不同的。 分別以sqlserver和oracle為例,兩者略有不同。 sqlserver中,如果目標表不存在