VCL Property Viewer |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
這個程式可以用來觀察其他程式的VCL組態、記憶體內容。幫助設計時的runtime debug。 當然也可以用來看別人程式中用了什麼元件、設計了什麼property 功能還不是很齊全,只有做到觀察元件組態的功能。下一步希望能做到動態改變元件的變數 現在只有拿 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=16065051&CC=359289">
附加檔案:51329_CodePeeker.zip
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
請問在 Program Code and Data 中紅色藍色底線表示什麼?
我測試的結果是不是用 BCB6 的看不出來,因為我是用 BCB5,我所開發的,此程式最多只有顯示 TBrush 其他不會出現,大部分在 VCL Tree 都是空白的。 http://www.ViewMove.com 視動自動化科技股份有限公司 ViewMove Technologies, Inc.
------
http://www.ViewMove.com |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
引言: 請問在 Program Code and Data 中紅色藍色底線表示什麼? 我測試的結果是不是用 BCB6 的看不出來,因為我是用 BCB5,我所開發的,此程式最多只有顯示 TBrush 其他不會出現,大部分在 VCL Tree 都是空白的。 http://www.ViewMove.com 視動自動化科技股份有限公司 ViewMove Technologies, Inc.dllee你好: 藍色的底線代表的是一個Global Pointer,紅色代表的是一個TComponent結構。如果在Heap中可以看到不少的紅色線,表示還是有不少的TComponent被抓出來,無法進一步解讀的原因可能是TClassType的結構改了.... 可惜我手邊沒有bcb5的system.hpp檔,有版友方便查一下TClassType的結構嗎?(手邊沒有bcb5...) 以下是bcb6的TClassType結構,是否和bcb5一樣? static const Shortint vmtSelfPtr = 0xffffffb4; static const Shortint vmtIntfTable = 0xffffffb8; static const Shortint vmtAutoTable = 0xffffffbc; static const Shortint vmtInitTable = 0xffffffc0; static const Shortint vmtTypeInfo = 0xffffffc4; static const Shortint vmtFieldTable = 0xffffffc8; static const Shortint vmtMethodTable = 0xffffffcc; static const Shortint vmtDynamicTable = 0xffffffd0; static const Shortint vmtClassName = 0xffffffd4; static const Shortint vmtInstanceSize = 0xffffffd8; static const Shortint vmtParent = 0xffffffdc; static const Shortint vmtSafeCallException = 0xffffffe0; static const Shortint vmtAfterConstruction = 0xffffffe4; static const Shortint vmtBeforeDestruction = 0xffffffe8; static const Shortint vmtDispatch = 0xffffffec; static const Shortint vmtDefaultHandler = 0xfffffff0; static const Shortint vmtNewInstance = 0xfffffff4; static const Shortint vmtFreeInstance = 0xfffffff8; static const Shortint vmtDestroy = 0xfffffffc; static const Shortint vmtQueryInterface = 0x0; static const Shortint vmtAddRef = 0x4; static const Shortint vmtRelease = 0x8; static const Shortint vmtCreateObject = 0xc;另外再重新上傳新的版本,加上了解讀檔頭(pe image)的功能 |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
您所列出來的 static const 在 BCB5 的 system.hpp 也是一樣的內容,並沒有不同。 http://www.ViewMove.com 視動自動化科技股份有限公司 ViewMove Technologies, Inc.
------
http://www.ViewMove.com |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
dllee版友問的問題真的是一針見血 TCustomDockForm的出現我也一直很不解,現在只有看到幾乎每個Control的offset B8都會包含一個TCustomDockForm。猜想可能是TControl的一個成員指標FFloatingDockSiteClass指向TCustomDockForm這個ClassType。然後程式就把他算成一個Component了...應該不能算是真的有這個Component的存在吧… 另外視窗的標題會抓到兩個,好像一個是從TApplication來的,另一個是從Main Form來的。如果說錯了…麻請其他版友指正 最後的GP check是用在統計Gobal pointer是否指向一個非法的位置,這是之前用來debug用的。整個vcl結構中處處都是指標,一不小心就Access violation,所以早先用來查是不是有抓錯指標。後來一直忘了移除這一頁。近期希望寫寫修改的功能… 也感謝
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
http://www.boilsoft.com/
http://www.safer-networking.org/index.php?page=download
http://freehost18.websamba.com/restools/
靜態
再試看看此站軟體 http://www.blong.com/Conferences/BorConUK2001/VCLSourcery/VCLSourcery.htm
http://www.blong.com/ 發表人 - conundrum 於 2004/06/13 05:25:17
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
To pwipwi,
關於 GPCheck 您指的是您所找出的元件內的指標是否亂指嗎?
如果是,那可以保留呀,這樣也方便站友 debug 自己的程式 < >
我只是問那是作什麼用的,不是請您移除它 < >
說實在,您所提供的資訊實在很多,但是我對於您提供的資訊了解太少,所以,到目前為止,只覺得您的工具好像很強,但不知如何好好利用它。 To conundrum,
感謝您提供 PE 的相關資料,讓我能更了解 pwipwi 辛苦努力所提供的資訊
href="http://www.ViewMove.com">http://www.ViewMove.com 視動自動化科技股份有限公司 ViewMove Technologies, Inc.
------
http://www.ViewMove.com |
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
pwipwi 兄
這玩意工具 算上是很強的工具 當然有利有敝
如至 侯傑大師網站 慢慢瀏覽資料 也許能更有收獲 dllee 大仔 我只是po來給大家看看 PE 真的很難攪 不是一般的人知道就會的
不然破解就變的容易多啦 哈ㄏ
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19902
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24453
這也許可看看 雖然很九就看過了 再回味一次 或許 pwipwi 兄可以參考dede的asm方式玩看看
http://delphi.ktop.com.tw/topic.php?topic_id=37405 pwipwi 兄 真的是寫的粉棒 哈哈 發表人 - conundrum 於 2004/06/15 10:44:34
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
http://www.freedownloadscenter.com/Programming/Delphi_Tools_and_Components/index1.html
http://www.vclcomponents.com/x_authors.asp?ID_AUTHOR=8586
http://delphi-jedi.org/Jedi:JCLDOWNLOADS
http://protools.anticrack.de/decompilers.htm
http://www.microgold.com/Stage/ReverseDelphiCode.html BarMenus.zip 不錯的xp元件
http://www.tietovayla.fi/dsp/newl/midxc50f.htm
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
tomtomtom
一般會員 發表:2 回覆:1 積分:0 註冊:2004-05-19 發送簡訊給我 |
這個大作非常了不起,我最近有做一個類似的程式,是讀取指定執行中程式的記憶體內容,光這點我找了好多 API ,sample ... 才完成 您可以分享一下您是如何讀取記憶體的嗎? --- 我的程式如下 1. Use EnumProcesses 列出 DWORD PID
2. Use OpenProcess 將 PID -> HANDLE hProcess
3. Use EnumProcessModules , GetModuleBaseName 列出 ModuleBaseName
4. Use VMQuery 列出 HANDLE hProcess 所有的 memory block
5. Use ReadProcessMemory 將指定之 memory block 讀取 需要 VMQuery.cpp ,來自http://www.binglesite.net/source/win_prog_src.cab
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
引言: 這個大作非常了不起,我最近有做一個類似的程式,是讀取指定執行中程式的記憶體內容,光這點我找了好多 API ,sample ... 才完成 您可以分享一下您是如何讀取記憶體的嗎? --- 我的程式如下 1. Use EnumProcesses 列出 DWORD PID 2. Use OpenProcess 將 PID -> HANDLE hProcess 3. Use EnumProcessModules , GetModuleBaseName 列出 ModuleBaseName 4. Use VMQuery 列出 HANDLE hProcess 所有的 memory block 5. Use ReadProcessMemory 將指定之 memory block 讀取 需要 VMQuery.cpp ,來自http://www.binglesite.net/source/win_prog_src.cabtomtomtom你好: 我也是使用相同的API來讀取記憶體內容,包含你列舉的OpenProcess,ReadProcessMemory,VMQuery中的API。 另外重新上傳改版的程式,加入修改properties的功能。 重做程式介面 發表人 - pwipwi 於 2004/06/25 07:58:07 |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: 再次感謝dllee版大的測試,BOOL值設定後無法改變值是程式的bug。修正的程式後已經重新上傳了!之前我自已試的時候竟都沒發現... >>< face="Verdana, Arial, Helvetica"> ... 我測試新版(檔案日期:04-06-25 22:07:14),還是一樣,我直接對 CodePeeker (TMainForm) 作 Analyze 點選 List View ,按 ClassName 排列,改 bViewCode 的 TButton 的 Top,Left,Width,Height,Visible,... 幾乎都是沒用的,改完按 Apply 點別的元件再點回此 bViewCode 就發現所有的值與修改前相同(等於沒改到),如果您自己已測試 ok,而我不行的話,可能,您的作法與不同的系統會相關。 另外,在作完上述測試無效後,改點選 Codepeeker (TApplication) 按下 Analyze 會發生 Exception: Access violation at address 00470DBC in module'CodePeeker.exe'. Read of address 00000010. Exception 後關閉再重開一次,再選 Codepeeker (TApplication) 一樣對 bViewCode 作修改,還是一樣無效... http://www.ViewMove.com 視動自動化科技股份有限公司 ViewMove Technologies, Inc.
------
http://www.ViewMove.com |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
哇! 又更讚了 < >
如果在 > 加油吧 < > < href="http://www.ViewMove.com" target="blank">視動科技 VMASK - ViewMove Automation Software Kernel 發表人 - dllee 於 2004/07/08 12:39:40
------
http://www.ViewMove.com |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
更新上傳 1.可改變Window Style,如WS_VISIBLE,WS_MINIMIZE.... 2.在Object Inspector中改變屬性,可以立即看到目標視窗的更新
(比如改變Border Style,WindowState,..Top,Left..,可以馬上看到改變) 3.加入解讀Module。這個部份是參考包子大哥的範例,也是很好的教材: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=52970 只可惜Module Entry很多的資訊被微軟列為不使用了,詳細可以參考: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/perfmon/base/moduleentry32_str.asp 4.修正一些bug...與內部的最佳化
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
哇! 更是讚了! AlphaV 也幾乎被您作掉了 < > 下一個是什麼呢? < > 視動科技 VMASK - ViewMove Automation Software Kernel 發表人 - dllee 於 2004/07/14 20:49:57
------
http://www.ViewMove.com |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
再次感謝dllee和conundrum版大的支持與提供資料~ 這個程式有很多地方是由這個論壇上學來的,
像包子大哥的Process List,與dllee版友最早的GetWinAndSubWin2。
還有無數的WinAPI範例…都是很好的教材。
(感謝版大們無私的付出) 有人建議我要不要作成Open Source,我也認真的考慮過,開放Source還可以投去SourceForge,聽起來真是不賴。只是無奈程式裡用了不少third-party component,其中有不少是自已糊亂寫的,要一起都open source的話,只怕這些真的是見笑了…。見笑還好,餵給bcb一些垃圾元件下場可是很慘的。(重灌bcb時一定會罵死我)。維護元件比寫元件來得難上好幾倍。因此最後定位目標在寫一個 >
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
pwipwi 您太謙虛了 (雖然您的ID是 pwipwi(發音應該像是台語的屁屁)意思是有點臭屁) 如果還要再加功能... 我想,下一個可以加的是,類似像 > < href="http://www.ViewMove.com" target="blank">視動科技 VMASK - ViewMove Automation Software Kernel 發表人 - dllee 於 2004/07/16 09:43:02
------
http://www.ViewMove.com |
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |