查看Dll裡的API |
|
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
各位先進大家好, 最近小弟在查看Windows API發現在網路找還真是茫茫大海, 所以就寫了一隻小程式可以觀看Dll裡面有哪些function, 目前小弟還有兩個問題,
第一. 所取得的Address跟我使用LoadLibrary GetProcAddress索取出來的竟然不同
第二. 找了好久還是無法取得各function的Parameters
參考文章
http://delphi.ktop.com.tw/topic.php?topic_id=22399
http://www.swissdelphicenter.ch/torry/showcode.php?id=1133
畫面
Uses ImageHlp; procedure TForm1.Button1Click(Sender: TObject); type TDWordArray = array [0..$FFFFF] of DWORD; var imageinfo: LoadedImage; pExportDirectory: PImageExportDirectory; dirsize: Cardinal; pDummy: PImageSectionHeader; i: Cardinal; pNameRVAs, pAddressRVAs: ^TDWordArray; Name: string; MItem : TListItem; begin //List.Clear; if MapAndLoad(PChar('C:\WINDOWSP\SYSTEM32\Kernel32.dll'), nil, @imageinfo, True, True) then begin try pExportDirectory := ImageDirectoryEntryToData(imageinfo.MappedAddress, False, IMAGE_DIRECTORY_ENTRY_EXPORT, dirsize); if (pExportDirectory <> nil) then begin pNameRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress, DWORD(pExportDirectory^.AddressOfNames), pDummy); pAddressRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress, DWORD(pExportDirectory.AddressOfFunctions), pDummy); for i := 0 to pExportDirectory^.NumberOfNames - 1 do begin //Name := ; MItem := ListView1.Items.Add; MItem.Caption := IntToStr(i); MItem.SubItems.Add(PChar(ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress, pNameRVAs^[i], pDummy))); MItem.SubItems.Add(Format('%p',[Pointer(imageinfo.MappedAddress+pAddressRVAs^[i])])); //List.Add(Name); end; end; finally UnMapAndLoad(@imageinfo); end; end; ListView1.Column[0].Width := 60; ListView1.Column[1].Width := 300; ListView1.Column[2].Width := 100; end;我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. ![]() |
shaofu
高階會員 ![]() ![]() ![]() ![]() 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
|
conundrum
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi 各位先進, 其實小弟一開始是看到一個軟體讓我嚇一跳, 才會想辦法去找尋這方面的答案, 這方面的資訊取得沒那麼容易, 目前能力有限, 看來要好好研究這一章要花很大的功夫, 我會再去找資料.
提供一下那個軟體, 裡面有30天試用版大家可以參考看看, 真是太強了
http://www.heaventools.com/scrshots.htm 我不是高手, 高手是正在銀幕前微笑的人. 發表人 - miles 於 2004/05/26 20:48:29 發表人 - miles 於 2004/05/26 20:53:09
------
我不是高手, 高手是正在銀幕前微笑的人. |
shaofu
高階會員 ![]() ![]() ![]() ![]() 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
引言: Hi 各位先進, 其實小弟一開始是看到一個軟體讓我嚇一跳, 才會想辦法去找尋這方面的答案, 這方面的資訊取得沒那麼容易, 目前能力有限, 看來要好好研究這一章要花很大的功夫, 我會再去找資料. 提供一下那個軟體, 裡面有30天試用版大家可以參考看看, 真是太強了 http://www.heaventools.com/scrshots.htm下載回來玩了 比較特別的是 disassembler 與部份 resource editor 的能力, 其他部份的 JCL 的 PE Viewer 都有了, 也都有 full source |
redtea258259
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2004-04-11 發送簡訊給我 |
|
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
轉到這邊
http://www.download.com/3000-2352-10052477.html?part=75738&subj=dlpage&tag=button 這是一個產品, 沒有原始碼 我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |