看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux C 問題(Question): 請問一下 在C中 可不可以自訂function的記憶體起始位置?? 目前我是想把functione固定在一個記憶體區塊 比如說 fun1 放在 0x0065FDF6 fun2 放在 0x00788AB2 這樣可行嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.40.229
diabloevagto:那是os在做的吧? 11/01 00:23
james732:我記得 linker script 似乎有這樣的選項 (不確定) 11/01 00:27
ckvir:所以不能在程式階段指定嗎?? 11/01 00:27
james732:程式內應該有難度吧,頂多是在編譯與連結的時候指定 11/01 00:30
james732:畢竟決定載入到哪的並不是程式本身 11/01 00:30
tropical72:查一下 linux 有沒有類似 WriteProcessMemory 的東西. 11/01 00:32
tropical72:M$ keyword : PIMAGE_IMPORT_DESCRIPTOR , good luck. 11/01 00:33
tropical72:補一下好了,目前大多是在 dll import 進來後,再重新以 11/01 00:36
tropical72:WriteProcessMemory 方式,重新定義 name / address. 11/01 00:36
tropical72:要一開始直接初始化到指定位址,應就不是在 RT 時才動作 11/01 00:37
tropical72:找到一份觀念不錯的code http://ppt.cc/whCJ for Win. 11/01 00:40
angleevil:如果L大和V大在的話,應該會對樓上的講法有些意見 11/01 11:35
james732:樓上的意見指的是? 11/01 11:36
angleevil:標準的c/c++無法做到指定memory位置.至少我也是這樣想 11/01 11:39
angleevil:gcc雖然也有動態lib觀念.但是也沒有函式可以指令(沒記) 11/01 11:40
james732:不過這篇文章的要求,本來就沒辦法由C/C++的標準做到了 11/01 11:40
angleevil:等等我發現原po會問一些很有趣的問題 11/01 11:45
diabloevagto:我比較好奇的是原po怎麼會有這種需求? 11/01 12:17
tropical72:oh,我發表有誤的話很歡迎不吝指正 ^^ , linux 下不知 11/01 21:58
tropical72:ptrace 有沒有用 . 11/01 21:58
angleevil:其實沒這個意思啦.只是也不是寫組語.一定要放心思在這邊 11/01 22:00
angleevil:應該是很累的事情. vc/gcc也創造很多非標準的東西 11/01 22:01
purpose:標準都是浮雲 11/01 22:03