level 1
热情的LSET
楼主
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
DOS_Header:PImageDosHeader;//映像文件基地址
nt_header:PImageNtHeaders;
idx:integer;
filename:string;
implementation
uses PE;
{$R *.dfm}
procedure PickIcon(va:PIMAGE_RESOURCE_DIRECTORY;st:cardinal);//va资源类型的指针 st资源表在文件中的位置
var
ImageResourceDirectoryEntry:PIMAGE_RESOURCE_DIRECTORY_ENTRY;
ImageResourceDirectory:PIMAGE_RESOURCE_DIRECTORY;
ImageResourceDataEntry:PIMAGE_RESOURCE_DATA_ENTRY;
v:PIMAGE_RESOURCE_DIRECTORY;
NumberOfName,NumberOfId:word;
i,j:byte;
fs1:TFileStream;
offs:cardinal;
// buf:array[0..1023] of byte;
buf:pointer;
r:cardinal;
PEIconDirEntry:PPEIconDirEntry;
IconDirEntry:PIconDirEntry;
IconDir:PIconDir;
IconDirBuf:PIconDir;
begin
new(IconDirBuf);
new(IconDir);
new(IconDirEntry);
new(PEIconDirEntry);
NumberOfName:=va.NumberOfNamedEntries;
NumberOfId:=va.NumberOfIdEntries;
ImageResourceDirectoryEntry:=PIMAGE_RESOURCE_DIRECTORY_ENTRY(cardinal(va)+SizeOf(_IMAGE_RESOURCE_DIRECTORY));
// IconDirBuf.idreserved:=0;
// IconDirBuf.idtype:=1;
// IconDirBuf.idcount:=1;
for i:=0 to NumberOfName+NumberOfId-1 do
begin
// if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=14) then//最高位为0表是以ID命名,且Name为图标组ID=14
if (Hiword(ImageResourceDirectoryEntry.Name)=0) then//最高位为0表是以ID命名
begin
if ((ImageResourceDirectoryEntry.OffsetToData and $80000000) =0) then
begin
//资源数据块指针
ImageResourceDataEntry:=PIMAGE_RESOURCE_DATA_ENTRY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
fs1:=TFileStream.Create('e:\'+filename+IntToStr(Idx)+'.ico',fmOpenWrite);
offs:=cardinal(DOS_Header) + RVAToOffset(ImageResourceDataEntry.OffsetToData,nt_header);//数据块在文件中的绝对位置
buf:=AllocMem(ImageResourceDataEntry.Size);
ReadProcessMemory(GetCurrentProcess,pointer(offs), buf,ImageResourceDataEntry.Size,r);//读取文件中的数据
fs1.Position:=fs1.Size;
fs1.Write(buf^,ImageResourceDataEntry.Size);
fs1.Free;
inc(idx);
//FreeMemory(buf);
end else
begin
//下一级目录块
v:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
PickIcon(v,st);
end;
end;
inc(ImageResourceDirectoryEntry);
end;
end;
procedure PickGroupIcon(va:PIMAGE_RESOURCE_DIRECTORY;st:cardinal);//va资源类型的指针 st资源表在文件中的位置
var
ImageResourceDirectoryEntry:PIMAGE_RESOURCE_DIRECTORY_ENTRY;
ImageResourceDirectory:PIMAGE_RESOURCE_DIRECTORY;
ImageResourceDataEntry:PIMAGE_RESOURCE_DATA_ENTRY;
v:PIMAGE_RESOURCE_DIRECTORY;
NumberOfName,NumberOfId:word;
i,j:byte;
fs:TFileStream;
offs:cardinal;
buf:array [0..127] of byte;
r:cardinal;
PEIconDirEntry:PPEIconDirEntry;
IconDirEntry:PIconDirEntry;
IconDir:PIconDir;
IconDirBuf:PIconDir;
begin
new(IconDirBuf);
new(IconDir);
new(IconDirEntry);
new(PEIconDirEntry);
NumberOfName:=va.NumberOfNamedEntries;
NumberOfId:=va.NumberOfIdEntries;
ImageResourceDirectoryEntry:=PIMAGE_RESOURCE_DIRECTORY_ENTRY(cardinal(va)+SizeOf(_IMAGE_RESOURCE_DIRECTORY));
IconDirBuf.idreserved:=0;
IconDirBuf.idtype:=1;
IconDirBuf.idcount:=1;
for i:=0 to NumberOfName+NumberOfId-1 do
begin
// if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=14) then//最高位为0表是以ID命名,且Name为图标组ID=14
if (Hiword(ImageResourceDirectoryEntry.Name)=0) then//最高位为0表是以ID命名
begin
if ((ImageResourceDirectoryEntry.OffsetToData and $80000000) =0) then
begin
//资源数据块指针
ImageResourceDataEntry:=PIMAGE_RESOURCE_DATA_ENTRY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
// fs:=TFileStream.Create('e:\'+IntToStr(idx)+'.ico',fmCreate);
offs:=cardinal(DOS_Header) + RVAToOffset(ImageResourceDataEntry.OffsetToData,nt_header);//数据块在文件中的绝对位置
IconDir:=PIconDir(offs);
//ReadProcessMemory(GetCurrentProcess,pointer(offs),@buf,sizeof(ICON_DIR),r);
showmessage(inttostr( IconDir.idcount));
PEIconDirEntry:=PPEIconDirEntry(cardinal(offs)+sizeof(ICON_DIR));
//IconDir:=@buf;
for j:=0 to IconDir.idcount-1 do
begin
fs:=TFileStream.Create('e:\'+filename+IntToStr(PEIconDirEntry.dwImageOffset)+'.ico',fmCreate);
IconDirEntry^.bWidth:=PEIconDirEntry^.bWidth;
IconDirEntry^.bHeight:=PEIconDirEntry^.bHeight;
IconDirEntry^.bColorCount:=PEIconDirEntry^.bColorCount;
IconDirEntry^.bReserved:=PEIconDirEntry^.bReserved;
IconDirEntry^.wPlanes:=PEIconDirEntry^.wPlanes;
IconDirEntry^.wBitCount:=PEIconDirEntry^.wBitCount;
IconDirEntry^.dwBytesInRes:=PEIconDirEntry^.dwBytesInRes;
IconDirEntry^.dwImageOffset:=$16;
// ReadProcessMemory(GetCurrentProcess,pointer(offs), @buf,ImageResourceDataEntry.Size,r);//读取文件中的数据
fs.Write(IconDirBuf^,sizeof(ICON_DIR));
fs.Write(IconDirEntry^,sizeof(ICON_DIR_ENTRY));
fs.Free;
//inc(idx);
inc(PEIconDirEntry);
end;
// ReadProcessMemory(GetCurrentProcess,pointer(offs), @buf,ImageResourceDataEntry.Size,r);//读取文件中的数据
// fs.Write(buf,ImageResourceDataEntry.Size);
// fs.Free;
// inc(idx);
end else
begin
//下一级目录块
v:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
PickGroupIcon(v,st);
end;
end;
inc(ImageResourceDirectoryEntry);
end;
//dispose(IconDirBuf);
//dispose(IconDir);
//dispose(IconDirEntry);
//dispose(PEIconDirEntry);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
st:cardinal;//资源表在文件中的起始位置
ImageResourceDirectory:PIMAGE_RESOURCE_DIRECTORY;
ImageResourceDirectoryEntry:PIMAGE_RESOURCE_DIRECTORY_ENTRY;
ImageResourceDataEntry:PIMAGE_RESOURCE_DATA_ENTRY;
offset:cardinal;//资源表在文件中的偏移
NumberOfName,NumberOfId:word;
i:byte;
begin
OpenDialog1.Execute;
filename:=ExtractFileName(OpenDialog1.FileName);
DOS_Header:=PImageDosHeader(GetStartAddress(PAnsiChar(OpenDialog1.FileName)));//映像文件基地址
nt_header:=PImageNtHeaders( DOS_Header._lfanew + cardinal(DOS_Header) );//NT头
offset:=RVAToOffset(nt_header.OptionalHeader.DataDirectory[2].VirtualAddress, nt_header); //资源表在文件中的偏移
st:=offset+cardinal(DOS_Header);//资源表在文件中的起始位置
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY( offset+cardinal(DOS_Header) );//第一层目录
NumberOfName:=ImageResourceDirectory.NumberOfNamedEntries;
NumberOfId:=ImageResourceDirectory.NumberOfIdEntries;
ImageResourceDirectoryEntry:=PIMAGE_RESOURCE_DIRECTORY_ENTRY(cardinal(ImageResourceDirectory)+SizeOf(_IMAGE_RESOURCE_DIRECTORY));
for i:=0 to NumberOfName+NumberOfId-1 do
begin
if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=14) then//最高位为0,且Name为图标组
begin
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
break;
end;
inc(ImageResourceDirectoryEntry);
end;
PickGroupIcon(ImageResourceDirectory,st);
//idx:=1;
//sleep(1000);
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY( offset+cardinal(DOS_Header) );//第一层目录
NumberOfName:=ImageResourceDirectory.NumberOfNamedEntries;
NumberOfId:=ImageResourceDirectory.NumberOfIdEntries;
ImageResourceDirectoryEntry:=PIMAGE_RESOURCE_DIRECTORY_ENTRY(cardinal(ImageResourceDirectory)+SizeOf(_IMAGE_RESOURCE_DIRECTORY));
for i:=0 to NumberOfName+NumberOfId-1 do
begin
if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=3) then//最高位为0,且Name为图标
begin
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
break;
end;
inc(ImageResourceDirectoryEntry);
end;
PickIcon(ImageResourceDirectory,st);
idx:=1;
{
NumberOfName:=ImageResourceDirectory.NumberOfNamedEntries;
NumberOfId:=ImageResourceDirectory.NumberOfIdEntries;
ImageResourceDirectoryEntry:=ImageResourceDirectory+SizeOf(_IMAGE_RESOURCE_DIRECTORY);
for i:=0 to NumberOfName+NumberOfId-1 do
begin
if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=RT_GROUP_ICON) then//最高位为0,且Name为图标组
begin
if (ImageResourceDirectoryEntry.OffsetToData and $80000000) =0 then
begin
//资源数据块指针
ImageResourceDataEntry:=PIMAGE_RESOURCE_DATA_ENTRY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
end else
begin
//下一级目录块
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
end;
end;
inc(ImageResourceDirectoryEntry);
end;
}
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
idx:=1;
end;
end.
2014年04月28日 13点04分
1
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
DOS_Header:PImageDosHeader;//映像文件基地址
nt_header:PImageNtHeaders;
idx:integer;
filename:string;
implementation
uses PE;
{$R *.dfm}
procedure PickIcon(va:PIMAGE_RESOURCE_DIRECTORY;st:cardinal);//va资源类型的指针 st资源表在文件中的位置
var
ImageResourceDirectoryEntry:PIMAGE_RESOURCE_DIRECTORY_ENTRY;
ImageResourceDirectory:PIMAGE_RESOURCE_DIRECTORY;
ImageResourceDataEntry:PIMAGE_RESOURCE_DATA_ENTRY;
v:PIMAGE_RESOURCE_DIRECTORY;
NumberOfName,NumberOfId:word;
i,j:byte;
fs1:TFileStream;
offs:cardinal;
// buf:array[0..1023] of byte;
buf:pointer;
r:cardinal;
PEIconDirEntry:PPEIconDirEntry;
IconDirEntry:PIconDirEntry;
IconDir:PIconDir;
IconDirBuf:PIconDir;
begin
new(IconDirBuf);
new(IconDir);
new(IconDirEntry);
new(PEIconDirEntry);
NumberOfName:=va.NumberOfNamedEntries;
NumberOfId:=va.NumberOfIdEntries;
ImageResourceDirectoryEntry:=PIMAGE_RESOURCE_DIRECTORY_ENTRY(cardinal(va)+SizeOf(_IMAGE_RESOURCE_DIRECTORY));
// IconDirBuf.idreserved:=0;
// IconDirBuf.idtype:=1;
// IconDirBuf.idcount:=1;
for i:=0 to NumberOfName+NumberOfId-1 do
begin
// if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=14) then//最高位为0表是以ID命名,且Name为图标组ID=14
if (Hiword(ImageResourceDirectoryEntry.Name)=0) then//最高位为0表是以ID命名
begin
if ((ImageResourceDirectoryEntry.OffsetToData and $80000000) =0) then
begin
//资源数据块指针
ImageResourceDataEntry:=PIMAGE_RESOURCE_DATA_ENTRY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
fs1:=TFileStream.Create('e:\'+filename+IntToStr(Idx)+'.ico',fmOpenWrite);
offs:=cardinal(DOS_Header) + RVAToOffset(ImageResourceDataEntry.OffsetToData,nt_header);//数据块在文件中的绝对位置
buf:=AllocMem(ImageResourceDataEntry.Size);
ReadProcessMemory(GetCurrentProcess,pointer(offs), buf,ImageResourceDataEntry.Size,r);//读取文件中的数据
fs1.Position:=fs1.Size;
fs1.Write(buf^,ImageResourceDataEntry.Size);
fs1.Free;
inc(idx);
//FreeMemory(buf);
end else
begin
//下一级目录块
v:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
PickIcon(v,st);
end;
end;
inc(ImageResourceDirectoryEntry);
end;
end;
procedure PickGroupIcon(va:PIMAGE_RESOURCE_DIRECTORY;st:cardinal);//va资源类型的指针 st资源表在文件中的位置
var
ImageResourceDirectoryEntry:PIMAGE_RESOURCE_DIRECTORY_ENTRY;
ImageResourceDirectory:PIMAGE_RESOURCE_DIRECTORY;
ImageResourceDataEntry:PIMAGE_RESOURCE_DATA_ENTRY;
v:PIMAGE_RESOURCE_DIRECTORY;
NumberOfName,NumberOfId:word;
i,j:byte;
fs:TFileStream;
offs:cardinal;
buf:array [0..127] of byte;
r:cardinal;
PEIconDirEntry:PPEIconDirEntry;
IconDirEntry:PIconDirEntry;
IconDir:PIconDir;
IconDirBuf:PIconDir;
begin
new(IconDirBuf);
new(IconDir);
new(IconDirEntry);
new(PEIconDirEntry);
NumberOfName:=va.NumberOfNamedEntries;
NumberOfId:=va.NumberOfIdEntries;
ImageResourceDirectoryEntry:=PIMAGE_RESOURCE_DIRECTORY_ENTRY(cardinal(va)+SizeOf(_IMAGE_RESOURCE_DIRECTORY));
IconDirBuf.idreserved:=0;
IconDirBuf.idtype:=1;
IconDirBuf.idcount:=1;
for i:=0 to NumberOfName+NumberOfId-1 do
begin
// if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=14) then//最高位为0表是以ID命名,且Name为图标组ID=14
if (Hiword(ImageResourceDirectoryEntry.Name)=0) then//最高位为0表是以ID命名
begin
if ((ImageResourceDirectoryEntry.OffsetToData and $80000000) =0) then
begin
//资源数据块指针
ImageResourceDataEntry:=PIMAGE_RESOURCE_DATA_ENTRY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
// fs:=TFileStream.Create('e:\'+IntToStr(idx)+'.ico',fmCreate);
offs:=cardinal(DOS_Header) + RVAToOffset(ImageResourceDataEntry.OffsetToData,nt_header);//数据块在文件中的绝对位置
IconDir:=PIconDir(offs);
//ReadProcessMemory(GetCurrentProcess,pointer(offs),@buf,sizeof(ICON_DIR),r);
showmessage(inttostr( IconDir.idcount));
PEIconDirEntry:=PPEIconDirEntry(cardinal(offs)+sizeof(ICON_DIR));
//IconDir:=@buf;
for j:=0 to IconDir.idcount-1 do
begin
fs:=TFileStream.Create('e:\'+filename+IntToStr(PEIconDirEntry.dwImageOffset)+'.ico',fmCreate);
IconDirEntry^.bWidth:=PEIconDirEntry^.bWidth;
IconDirEntry^.bHeight:=PEIconDirEntry^.bHeight;
IconDirEntry^.bColorCount:=PEIconDirEntry^.bColorCount;
IconDirEntry^.bReserved:=PEIconDirEntry^.bReserved;
IconDirEntry^.wPlanes:=PEIconDirEntry^.wPlanes;
IconDirEntry^.wBitCount:=PEIconDirEntry^.wBitCount;
IconDirEntry^.dwBytesInRes:=PEIconDirEntry^.dwBytesInRes;
IconDirEntry^.dwImageOffset:=$16;
// ReadProcessMemory(GetCurrentProcess,pointer(offs), @buf,ImageResourceDataEntry.Size,r);//读取文件中的数据
fs.Write(IconDirBuf^,sizeof(ICON_DIR));
fs.Write(IconDirEntry^,sizeof(ICON_DIR_ENTRY));
fs.Free;
//inc(idx);
inc(PEIconDirEntry);
end;
// ReadProcessMemory(GetCurrentProcess,pointer(offs), @buf,ImageResourceDataEntry.Size,r);//读取文件中的数据
// fs.Write(buf,ImageResourceDataEntry.Size);
// fs.Free;
// inc(idx);
end else
begin
//下一级目录块
v:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
PickGroupIcon(v,st);
end;
end;
inc(ImageResourceDirectoryEntry);
end;
//dispose(IconDirBuf);
//dispose(IconDir);
//dispose(IconDirEntry);
//dispose(PEIconDirEntry);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
st:cardinal;//资源表在文件中的起始位置
ImageResourceDirectory:PIMAGE_RESOURCE_DIRECTORY;
ImageResourceDirectoryEntry:PIMAGE_RESOURCE_DIRECTORY_ENTRY;
ImageResourceDataEntry:PIMAGE_RESOURCE_DATA_ENTRY;
offset:cardinal;//资源表在文件中的偏移
NumberOfName,NumberOfId:word;
i:byte;
begin
OpenDialog1.Execute;
filename:=ExtractFileName(OpenDialog1.FileName);
DOS_Header:=PImageDosHeader(GetStartAddress(PAnsiChar(OpenDialog1.FileName)));//映像文件基地址
nt_header:=PImageNtHeaders( DOS_Header._lfanew + cardinal(DOS_Header) );//NT头
offset:=RVAToOffset(nt_header.OptionalHeader.DataDirectory[2].VirtualAddress, nt_header); //资源表在文件中的偏移
st:=offset+cardinal(DOS_Header);//资源表在文件中的起始位置
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY( offset+cardinal(DOS_Header) );//第一层目录
NumberOfName:=ImageResourceDirectory.NumberOfNamedEntries;
NumberOfId:=ImageResourceDirectory.NumberOfIdEntries;
ImageResourceDirectoryEntry:=PIMAGE_RESOURCE_DIRECTORY_ENTRY(cardinal(ImageResourceDirectory)+SizeOf(_IMAGE_RESOURCE_DIRECTORY));
for i:=0 to NumberOfName+NumberOfId-1 do
begin
if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=14) then//最高位为0,且Name为图标组
begin
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
break;
end;
inc(ImageResourceDirectoryEntry);
end;
PickGroupIcon(ImageResourceDirectory,st);
//idx:=1;
//sleep(1000);
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY( offset+cardinal(DOS_Header) );//第一层目录
NumberOfName:=ImageResourceDirectory.NumberOfNamedEntries;
NumberOfId:=ImageResourceDirectory.NumberOfIdEntries;
ImageResourceDirectoryEntry:=PIMAGE_RESOURCE_DIRECTORY_ENTRY(cardinal(ImageResourceDirectory)+SizeOf(_IMAGE_RESOURCE_DIRECTORY));
for i:=0 to NumberOfName+NumberOfId-1 do
begin
if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=3) then//最高位为0,且Name为图标
begin
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
break;
end;
inc(ImageResourceDirectoryEntry);
end;
PickIcon(ImageResourceDirectory,st);
idx:=1;
{
NumberOfName:=ImageResourceDirectory.NumberOfNamedEntries;
NumberOfId:=ImageResourceDirectory.NumberOfIdEntries;
ImageResourceDirectoryEntry:=ImageResourceDirectory+SizeOf(_IMAGE_RESOURCE_DIRECTORY);
for i:=0 to NumberOfName+NumberOfId-1 do
begin
if (Hiword(ImageResourceDirectoryEntry.Name)=0) and (ImageResourceDirectoryEntry.Name=RT_GROUP_ICON) then//最高位为0,且Name为图标组
begin
if (ImageResourceDirectoryEntry.OffsetToData and $80000000) =0 then
begin
//资源数据块指针
ImageResourceDataEntry:=PIMAGE_RESOURCE_DATA_ENTRY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
end else
begin
//下一级目录块
ImageResourceDirectory:=PIMAGE_RESOURCE_DIRECTORY(st+(ImageResourceDirectoryEntry.OffsetToData and $7FFFFFFF));
end;
end;
inc(ImageResourceDirectoryEntry);
end;
}
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
idx:=1;
end;
end.