導航:首頁 > 操作系統 > linux常量

linux常量

發布時間:2024-12-31 17:37:37

linux 編譯常量被重復定義了怎麼辦

宏phys定義了你的機器上的地址轉換__virt_to_phys()。這個宏用於把虛擬地址轉換為一個物理地址。通常情況下:
phys = virt - PAGE_OFFSET PHYS_OFFSET 解壓縮器的地址地址。由於當你調用解壓縮器代碼時,通常關閉MMU,因此這里並不討論虛擬地址和物理地址的問題。通常你在這個地址處調用內核,開始引導內核。它不需要在RAM中,只需要位於FLASH或其他只讀或讀/寫的可定址的存儲設備中。
l ZBSSADDR
解壓縮器的初始化為0的工作區的起始地址。必須位於RAM中,解壓縮器會替你把它初始化為0,此外,需要關閉MMU。
l ZRELADDR
解壓縮內核將被寫入的地址和最終的執行地址。必須滿足:
__virt_to_phys(TEXTADDR) == ZRELADDR
內核的開始部分被編碼為與位置無關的代碼。
l INITRD_PHYS
放置初始RAM盤的物理地址。僅當你使用bootpImage時相關(這是一種非常老的param_struct結構)
l INITRD_ⅥRT
初始RAM盤的虛擬地址。必須滿足:
__virt_to_phys(INITRD_ⅥRT) == INITRD_PHYS
l PARAMS_PHYS
param_struct 結構體或tag lis的物理地址,用於給定內核執行環境下的不同參數。 RAM第一個BANK的物理地址地址。
l PAGE_OFFSET
RAM第一個BANK的虛擬地址地址。在內核引導階段,虛擬地址PAGE_OFFSE將被映射為物理地址PHYS_OFFSET,它應該與TASK_SIZE具有相同的值。
l TASK_SIZE
一個用戶進程的最大值,單位為byte。用戶空間的堆棧從這個地址處向下增長。
任何一個低於TASK_SIZE的虛擬地址對用戶進程來說都是不可見的,因此,內核通過進程偏移對每個進行進行動態的管理。我把這叫做用戶段。任何高於TASK_SIZE的對所有進程都是相同的,稱之為內核段。(換句話說,你不能把IO映射放在低於TASK_SIZE和PAGE_OFFSET的位置處。)
l TEXTADDR
內核的虛擬起始地址,通常為PAGE_OFFSET 0x8000。內核映射必須在此結束。
l DATAADDR
內核數據段的虛擬地址,不能在使用解壓縮器的情況下定義。
l VMALLOC_START
l VMALLOC_END
用於限制vmalloc()區域的虛擬地址。此地址必須位於內核段。通常,vmalloc()區域在最後的虛擬RAM地址以上開始VMALLOC_OFFSET位元組。
l VMALLOC_OFFSET
Offset normally incorporated into VMALLOC_START to provide a hole between virtual RAM and the vmalloc area. We do this to allow out of bounds memory accesses (eg,something writing off the end of the mapped memory map) to be caught. Normally set to 8MB. pram——指定了RAM起始的物理地址,必須始終存在,並應等於PHYS_OFFSET。
pio——是供arch/arm/kernel/debug-armv.S中的調試宏使用的,包含IO的8 MB區域的物理地址。
vio——是8MB調試區域的虛擬地址。
這個調試區域將被位於代碼中(通過MAPIO函數)的隨後的構架相關代碼再次進行初始化。
l BOOT_PARAMS
參見 PARAMS_PHYS.
l FⅨUP(func)
機器相關的修正,在存儲子系統被初始化前運行。
l MAPIO(func)
機器相關的函數,用於IO區域的映射(包括上面的調試區)。
l INITIRQ(func)
用於初始化中斷的機器相關的函數 。

② linux c++源代碼,如何隱藏源代碼中的常量字元串使得通過反匯編難以獲取到此字元串。 不使用加殼。

首先,要對這個常量字元串進行加密
然後,加密用的密碼(密鑰)需要進行特殊處理。
比如:要保護字元串123456,用密鑰13579進行加密。
密鑰13579的16進制數組形式為:{0x31, 0x33, 0x35, 0x37, 0x39, 0x00}
你可以對這個數組進行數據干擾。比如:高位亂填數據(因為你知道是3),低位都加/減某數值:
變為了:{ 0xA3, 0xF5, 0x67, 0xD9, 0x3A, 0x00 }
你在代碼中對每一位進行恢復:
*p &= 0x0F, *p |= 0x30, *p -= 0x02,如此得到你的原始密碼:13579;
反匯編看到的你的密鑰串為:0xA3, 0xF5, 0x67, 0xD9, 0x3A, 0x00。
不知道你思路的話,只能碰運氣猜啦。

在上面兩種干擾方法基礎上,你甚至還可以把高低位調換,這樣就又加了一層干擾信息。
別人想破解也得好好猜一會了。

閱讀全文

與linux常量相關的資料

熱點內容
連接oracle資料庫命令 瀏覽:950
網易雲改id伺服器出現錯誤 瀏覽:316
程序員怎樣拿到36萬 瀏覽:11
linuxhttpd服務 瀏覽:568
解壓聲控2017 瀏覽:573
賽歐壓縮比102加幾號油 瀏覽:821
程序員了嗎 瀏覽:7
如何用命令打開本地用戶 瀏覽:708
中望cad分解命令 瀏覽:850
解壓到系統盤找不到了 瀏覽:590
空氣壓縮機電磁閥漏氣 瀏覽:844
mongodbpython教程 瀏覽:590
解壓系列蜘蛛俠救空難飛機 瀏覽:944
java解壓縮軟體下載 瀏覽:512
安卓怎麼用shadowsocksr 瀏覽:90
蘇州市常用的文件加密軟體 瀏覽:585
安卓手機怎麼玩怪物彈珠台服 瀏覽:433
寫小白程序員的一封信 瀏覽:808
數控編程圖紙沒有坐標 瀏覽:880
數控編程絲桿間隙 瀏覽:590