[問題] 如何知道程式所使用記憶體位址的起迄範圍?

看板ASM (組合語言)作者 (123)時間15年前 (2009/07/03 00:53), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串1/1
本來目的是想試做一個類似遊戲修改程式中搜尋修改記憶體的程式 不過對我來說還太早了點 所以想說先試試比較基本的功能,對特定的程式 只要給個資料就能搜尋出含有該資料的記憶體位址有哪些 對已知小範圍的搜尋我已經了解 如果範圍很大應該有比較有效率的演算法去搜尋吧? (演算法的事以後再考慮好了 或是有大大可以先提供個方向 我再自己去找書來看看研究) 但不知隨便指定的程式,要從哪開始搜尋? 假設有一個程式運行中 要如何得知該程式使用了哪段記憶體 以節位址:節內位址的方式表示 像是從 0012EF00 到 3B1252BA (隨便舉的例子) 還是只能得到絕對位址,要自己想辦法解成分節位址?   能知道精確的範圍嗎? 還是只能得到大概的範圍? 有個想法不知對不對,是不是用FindWindows找到的視窗的位址就是該程式的起始位置? 但我用FindWindows找特定視窗後 存在EAX裡面都只有5位(例 : eax = a03df) 這是巧合嗎?還是FindWindows只能記錄絕對位址? 如果該程式沒有視窗,是在背後運行,那有辦法查嗎? 目前看了2、3本有關組語的書,在這方面介紹都沒很多 實在不知該從何著手 不知這類的知識有沒有推薦的書可以查閱? 謝謝^ ^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.90.242

07/03 04:25, , 1F
往作業系統和計算機組織的部分找資料吧
07/03 04:25, 1F

07/03 04:40, , 2F
你MSDN上找 EnumProcessModules 來研究看看就知道了
07/03 04:40, 2F

07/03 23:05, , 3F
你不該看組語的除非你在dos下 不然找win32的書吧
07/03 23:05, 3F

07/04 01:43, , 4F
本來以為是組語有關,弄錯方向了,謝謝大大們的建議
07/04 01:43, 4F

07/04 01:44, , 5F
我再找書來研究研究>"<
07/04 01:44, 5F
文章代碼(AID): #1AJEOVtt (ASM)
文章代碼(AID): #1AJEOVtt (ASM)