怎样显示Exe和DLL调用了那些API函数?????????????(100分)

  • 主题发起人 主题发起人 anydelphi
  • 开始时间 开始时间
A

anydelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
请给出详细代码!!!!谢谢了!!
最好能象Windows优化大师里面“进程管理”的API解析功能!
 
要用TLhelp32里的一些函数
 
我这只显示了所有的进程,要看具体用了什么DLL,就要用其他函数
要在USER里填入我上面说的单元
procedure ListPro; //显示到一个TMemo里去 得到当前的进程名和ID
var FSnap:Thandle;
PE:TprocessEntry32;
PPE:PProcessEntry32;
begin
if FSnap>0 then closeHandle(FSnap);
FSnap:=createtoolhelp32Snapshot(TH32CS_SNAPALL,0);
if FSnap=-1 then
raise Exception.create('Windows发生致命错误即将关闭!');
PE.dwsize:=sizeof(PE);
if Process32first(FSnap,PE) then
repeat
New(PPE);
PPE^:=PE;
Memo.lines.add(inttostr(PPE.Th32processID)+' '+PPE.szExeFile);
until Not Process32next(FSnap,PE);
closeHandle(FSnap);
end;
 
靠!我需要AIP函数解析,而不是进程列表
 
用winexec试试
 
这需要了解PE文件格式,在PE文件的 .idata段可以列举出所以调用的API函数,所以用到的
DLL.有好多病毒就是通过修改PE文件的引入表(IMAGEDESCRIPTOR结构)的相关函数的转向地址
而实现的,最现实的例子就是金山词霸,通过把TEXTOUT等函数的转向地址修改成转向自己的
函数的地址,截获TEXTOUT函数的字符串,从而达到屏幕取词的目的.
 
用tdump.exe可以查看,还有个EXESCAN,可以查看一个EXE调用了哪些dll。
 
有源代码嘛??????????
 
sorry,没有!
 
看看PE文件格式就会了。可惜我只有C语言的。
 
那个dumpbin /imports filename可以列出用了哪些api
 
俺要源代码:)
 
Delphi自带的例子里有一个读取EXE和DLL里资源的例子,其中有读取调用俩那些DLL的部分。
在[red]ResXplor[/red]目录里
 
你在开玩笑吧??
apispy都还要注册呢,你这里想100分要源代码?
 
靠!!!大烂人,我要公开源程序!!!!!
中国人就是小气和吝啬!!
这是我看到程序,只是有点小问题!!
相信会搞好的。

uses Himagehlp;

function ListDLLExports(FileName:string):TStringList;
type
TDWordArray of :array[0..$FFFFF] of DWORD;
var
imageinfo:PoadedImage;
pExportDirectory:PImageExportDirectory;
dirsize:Cardinal;
pDummy:ImageSectionHeader;
i:Cardinal;
pNameRVAs:TDWordArray;
Name:string;
begin
Result:=TStringList.Create;
if MapAndLoad(PChar(FileName),nil,imageinfo,True,True)>0 then
begin
try
ExportDirectory?=營mageDirectoryEntryToData(imageinfo.MappedAddress,
False,IMAGE_DIRECTORY_ENTRY_EXPORT,dirsize);
if (pExportDirectory<>>nil)then
begin
pNameRVAs:=ImageRvaToVa(imageinfo.FileHeader,Imageinfo.MappedAddress,
DWORD(pExportDirectory^.AddressOfNames),Dummy);
for i:=b topExportDirectory^.NumberOfNames???b>do
begin
Name:=PChar(ImageRvaToVa(imageinfo.FileHeader,Imageinfo.MappedAddress,
pNameRVAs^,Dummy));
Result.Add(Name);
end;
end;
finally
UnMapAndLoad(@imageinfo);
end;
end;
 
有1万多分了不起呀!人品不行照样是烂人,
你以为你真的水平高呀*****
就不说你了,守财奴一个,跟你的分分睡觉去吧!
 
anydelphi:
估计bubble的意思是这种源码难搞到手,他有的话我想会给你的,为这事伤和气,不必吧。
 
呵呵,我给C的代码行吗?
http://nowcan.yeah.net
找一找吧。编程技术-》BCB-》系统
 
后退
顶部