PB命令列——查看DLL匯出函數

來源:互聯網
上載者:User

作者:wogoyixikexie@gliet

To run DUMPBIN, use the following syntax:

DUMPBIN [options] files...

Specify one or more binary files, along with options required to control the information.

DUMPBIN displays the information to standard output. You can redirect it to a file or use the /OUT option to specify a file name for the output.

When you run DUMPBIN on a file without specifying an option, DUMPBIN displays the /SUMMARY output.

When you type the command dumpbin without other command-line input, DUMPBIN displays a usage statement that summarizes its options.

——看來DUMPBIN 可以查看好多檔案的資訊,不止DLL。

 

 在PB菜單裡開啟Build OS-->Open Release Directory的CMD視窗裡用dumpbin /exports XXX.dll

 

——————————————————————————————————————————————————————

現在來看看這個圖片中的一些東西的意義。

text段在記憶體中被映射為唯讀,但.data和.bss是可寫的。
bss是英文Block Started by Symbol的簡稱,通常是指用來存放程式中未初始化的全域變數的一塊記憶體地區,在程式載入時由核心清0。BSS段屬於靜態記憶體配置。它的初始值也是由使用者自己定義的串連定位檔案所確定,使用者應該將它定義在可讀寫的RAM區內,來源程式中使用malloc分配的記憶體就是這一塊,它不是根據data大小確定,主要由程式中同時分配記憶體最大值所確定,不過如果超出了範圍,也就是分配失敗,可以等空間釋放之後再分配。
text段是程式碼段,在AT91庫中是表示程式段的大小,它是由編譯器在編譯串連時自動計算的,當你在連結定位檔案中將該符號放置在程式碼片段後,那麼該符號表示的值就是程式碼片段大小,編譯串連時,該符號所代表的值會自動代入到來源程式中。
data包含靜態初始化的資料,所以有初值的全域變數和static變數在data區。段的起始位置也是由串連定位檔案所確定,大小在編譯串連時自動分配,它和你的程式大小沒有關係,但和程式使用到的全域變數,常量數量相關。
stack/heap:
棧(stack)儲存函數的局部變數和參數。是一種“後進先出”(Last In First Out,LIFO)的資料結構,這意味著最後放到棧上的資料,將會是第一個從棧上移走的資料。對於哪些暫時存貯的資訊,和不需要長時間儲存的資訊來說,LIFO這種資料結構非常理想。在調用函數或過程後,系統通常會清除棧上儲存的局部變數、函數調用資訊及其它的資訊。棧另外一個重要的特徵是,它的地址空間“向下減少”,即當棧上儲存的資料越多,棧的地址就越低。棧(stack)的頂部在可讀寫的RAM區的最後。
堆(heap)儲存函數內部動態分配記憶體,是另外一種用來儲存程式資訊的資料結構,更準確的說是儲存程式的動態變數。堆是“先進先出”(First In first Out,FIFO)資料結構。它只允許在堆的一端插入資料,在另一端移走資料。堆的地址空間“向上增加”,即當堆上儲存的資料越多,堆的地址就越高。

———————————在部落格園一個高手那裡找到RVA,哎總之和PE檔案格式相關了,現在還沒有能力深入分析這些。

參考翻譯

PE格式經常使用術語RVA(相對虛擬位址,Relative Virtual Address)。RVA是將某一項載入到記憶體之後的地址,減去鏡像檔案的基地址得到的值(也就是從檔案載入到記憶體之後的基地址開始的位移量)。一個項的RVA通常與其在磁碟檔案中的位置不一樣。要計算一個RVA為r的項在檔案中的位置,首先搜尋PE檔案中的所有節(section),找到一個RVA為s,長度為l的節,滿足s ≤ r < s+l;假設該節的檔案位置為p,則項的檔案位置可以由p+(r-s)給出。

 

 轉載請標明:作者wogoyixikexie@gliet.桂林電子科技大學一系科協,原文地址:http://blog.csdn.net/gooogleman——如有錯誤,希望能夠留言指出;如果你有更加好的方法,也請在部落格後面留言,我會感激你的批評和分享。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.