📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ImageHlp;
type
TForm1 = class(TForm)
ListView1: TListView;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
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;
procedure TForm1.Button2Click(Sender: TObject);
var aHandle : Cardinal;
p : Pointer;
begin
aHandle := LoadLibrary(PChar('C:\WINDOWSP\SYSTEM32\Kernel32.dll'));
p := GetProcAddress(aHandle, 'AddAtomA');
ShowMessage(format('%p',[p]));
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -