線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2217
推到 Plurk!
推到 Facebook!

查看Dll裡的API

 
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-25 21:49:33 IP:218.160.xxx.xxx 未訂閱
各位先進大家好, 最近小弟在查看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;
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
附加檔案:50733_APIView.zip
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-26 10:27:11 IP:210.243.xxx.xxx 未訂閱
引言: 第一. 所取得的Address跟我使用LoadLibrary GetProcAddress索取出來的竟然不同 第二. 找了好久還是無法取得各function的Parameters
剛好有看過一些這方面的資料 >, 感謝侯捷與原作者的分享, 讀通的話應該功力大增 - 去
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-26 11:50:28 IP:61.221.xxx.xxx 未訂閱
pe 部份也可參考一下 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=22599
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-26 20:46:00 IP:218.160.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-27 09:51:58 IP:210.243.xxx.xxx 未訂閱
引言: Hi 各位先進, 其實小弟一開始是看到一個軟體讓我嚇一跳, 才會想辦法去找尋這方面的答案, 這方面的資訊取得沒那麼容易, 目前能力有限, 看來要好好研究這一章要花很大的功夫, 我會再去找資料. 提供一下那個軟體, 裡面有30天試用版大家可以參考看看, 真是太強了 http://www.heaventools.com/scrshots.htm
下載回來玩了 比較特別的是 disassembler 與部份 resource editor 的能力, 其他部份的 JCL 的 PE Viewer 都有了, 也都有 full source 至於取得
redtea258259
一般會員


發表:1
回覆:1
積分:0
註冊:2004-04-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-27 12:42:49 IP:218.247.xxx.xxx 未訂閱
http://www.heaventools.com/scrshots.htm 這個網址上不去呀,直接轉到 hinet.net 了 , 誰能把程式post 上來, 謝謝了......
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-08-11 13:55:56 IP:220.135.xxx.xxx 未訂閱
轉到這邊 http://www.download.com/3000-2352-10052477.html?part=75738&subj=dlpage&tag=button 這是一個產品, 沒有原始碼 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
系統時間:2024-09-09 15:20:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!