討論區快速選單
知識庫快速選單
討論區最近新進100則主題 網路投保旅行平安險 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
找程式開啟的記憶體位置
更改我的閱讀文章字型大小
作者 : x890311x(腦殘)
[ 貼文 5 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/5 下午 11:45:47
http://imgur.com/a/Ela7E

如圖

小弟我要改程式裡的某個位置的值
但是程式每次重開位置就會跑掉
我想要算偏移量
可是我沒有起始位置

敢問各位大大有誰麼方法可以找到起始位置
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/6 上午 09:01:43
To find the starting address of function is not difficult if you code the function in C/C++ .
for example , a function in C as below :

int add(int a, int b)
{
/*
some codes
*/

return sum ;

}

this is a function which owns two inputs (parameters) and a return (sum of them) . you can use a pointer which points a function with two parameters and one return value with integer. Such likes int (*fun_ptr) (int , int ) ; [it should be a declaration which declares a pointer which points to a function ]
And then use a statement to get the address of function you want. Such likes fun_ptr = & add ; add is function name and also is an address of it.
you can print its value via using printf() with a specific format , such likes %x (hex format).

But function was compiled to assembly codes and translated into object file (0/1 binary format ) in memory . if you want to get its size , you should use some tools on specific platforms , such like pe and its official site is http://www.pe-explorer.com/ , http://www.smidgeonsoft.prohosting.com/pebrowse-pro-file-viewer.html , objectdump - http://ftp.gnu.org/gnu/binutils/ (it is one of them) , http://www.dllfixis.com/readelf.exe.html (readelf) and nm (it is also a tool in binutils).
and its tutor as following url.
http://whatsdjgpp.github.io/2013/11/01/GNU%E7%9A%84obj%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E7%9A%84%E4%BD%BF%E7%94%A8(nm,objdump)%20/
have fun :-)

 
   
作者 : wallace_tsou(Wallace) 貼文超過200則
[ 貼文 244 | 人氣 314 | 評價 960 | 評價/貼文 3.93 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/6 上午 09:35:21
改程式碼內的值。
程式碼在記憶體內以機器碼存在,所以是要修改機器碼,這是極高段程式技術,你確定你會組語?
若是改變數,用指標就可以了。
其實函式也是可以取得其指標。
十年前寫過修改機器碼的程式,之後就沒有看過別人使用此等技術。
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/6 上午 11:23:29
an example - x86 assembly instructions - opcode mapping
http://sparksandflames.com/files/x86InstructionChart.html
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/6 上午 11:26:05
http://ref.x86asm.net/

there are x86 assembly & opcode mappings.
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/6 下午 04:33:18
http://www.youhua.com/
作者 : cxxlman(CxxlMan) C++優秀好手貼文超過1000則
[ 貼文 1003 | 人氣 3227 | 評價 1260 | 評價/貼文 1.26 | 送出評價 27 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/8 上午 10:09:46

>http://imgur.com/a/Ela7E
>
>如圖
>
>小弟我要改程式裡的某個位置的值
>但是程式每次重開位置就會跑掉
>我想要算偏移量
>可是我沒有起始位置
>
>敢問各位大大有誰麼方法可以找到起始位置
>

你要先說你的程式是哪種平台,以現在的作業系統來說,程式被載入記憶體是非常
底層的工作,你是如何取得它的位置


作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/9 上午 09:06:05
due to program was loaded in memory dynamically , the address of is different .

https://msdn.microsoft.com/en-us/library/ms809762.aspx , PE/COFF

http://www.pediy.com/kssd/pediy10/61498/430062/12572.pdf


if your executable image is PE/COFF format , you should explore its format.
have fun :-)
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/9 上午 09:09:51
or ELF format on linux /unix - http://www.skyfree.org/linux/references/ELF_Format.pdf ,
mach-o on macOS and its tool for viewing its forma t architecture , https://sourceforge.net/projects/machoview/
http://math-atlas.sourceforge.net/devel/assembly/MachORuntime.pdf , mach-o format
have fun :-)

作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/9 上午 10:15:07
http://tc.wangchao.net.cn/bbs/detail_28339.html
how to calculate the physical address of PE in storage on windows platform.
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/10 上午 10:26:56
https://www.google.com.tw/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&cad=rja&uact=8&ved=0ahUKEwiXko_OwrbRAhUKxLwKHXApDGkQFghAMAY&url=http%3A%2F%2Fdebut.cis.nctu.edu.tw%2F~ching%2FCourse%2FAdvancedC%2B%2BCourse%2F__Page%2FSlides%2F20%2520DLL_Injection%2F03%2520PEFormat.ppt&usg=AFQjCNHbWWYjvcAO2lYjSFKYxOBn2ZU9pg&sig2=GiDj4xdo9W-Hco7RJviNjw

or this is an explanation about portable execution file (PE) format in Traditional Chinese. you should find these useful information in it. have fun :-)

作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/18 下午 04:09:00
https://en.wikibooks.org/wiki/X86_Disassembly/Windows_Executable_Files#PE_Header
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/18 下午 04:38:59
>http://imgur.com/a/Ela7E
>
>如圖
>
>小弟我要改程式裡的某個位置的值
>但是程式每次重開位置就會跑掉
>我想要算偏移量
>可是我沒有起始位置
>
>敢問各位大大有誰麼方法可以找到起始位置
>

>> http://www.vijaymukhi.com/security/windows/pefile.htm

some codes can get some info you wanted
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/1/20 下午 03:34:00
Alternatively , using C# is easier to get the address of application you launched . the way as following
https://msdn.microsoft.com/en-us/library/system.diagnostics.process.id(v=vs.110).aspx , to launch the application you wanted
and then , to get starting address and ending address via the example , http://stackoverflow.com/questions/8086705/how-to-find-the-starting-address-of-an-application-for-memory-editing-a-process
作者 : lionx(LionX)
[ 貼文 95 | 人氣 0 | 評價 270 | 評價/貼文 2.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/2/9 下午 01:46:20
這看起來是想要監控現有程式的的某個值對吧 (笑...
首先就如同以上大大說的 你要告知大家程式所執行的平台
不同的平台有不同的執行檔格式
linux=ELF window=PE
再者 你確定得知程式的起始位置對你的需求是有幫助的?
你要知道的是
只有global變數所在的位置才會是固定的
(static 變數、物件 未宣告在任何function內變數、物件)
而且通常來說 如果執行檔未變更或加殼
起始位置每次執行都是一樣的
你會看到該變數每次出現的記憶體位置都不一樣
這就表示他並不是global變數
你必須要用其他方式來取得他實際位置才對
不過這個過程就比較複雜 你必須看得懂組合語言+熟悉一點機器碼基礎
作者 : lionx(LionX)
[ 貼文 95 | 人氣 0 | 評價 270 | 評價/貼文 2.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/2/9 下午 01:48:05
抱歉 沒去看貼圖 剛看了發現說的跟版主要的是不一樣的東西 Orz...
作者 : lionx(LionX)
[ 貼文 95 | 人氣 0 | 評價 270 | 評價/貼文 2.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/2/9 下午 01:51:28
不過這裡補充一下
如果你說的程式是運行在window linux等這些平台上
你看到的記憶體位置
都是所謂的虛擬記憶體位置 而不是實體記憶體真正位置
虛擬記憶體位置不會有你圖上所表示的
[A程式區塊][目標程式區塊][B程式區塊]... 這樣的分佈
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4465 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/2/10 上午 09:20:35
https://blogs.msdn.microsoft.com/ntdebugging/2010/02/05/understanding-pte-part-1-lets-get-physical/
 板主 : simula
 > C++ - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - C++ - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
C++
1 Raymond 13050 
2 青衫 4760 
3 simula 4690 
4 coco 4030 
5 白老鼠(Gary) 3670 
6 ozzy 2540 
7 Ben 2250 
8 Anderson 1960 
9 windblown 1650 
10 Kenny 1560 
C++
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.1875