Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2015, 13:29   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста )
Удачи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.09.2015, 14:30   #12
kotov-zhenja
Пользователь
 
Регистрация: 03.07.2010
Сообщений: 38
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
   List: TStrings;
   i: Integer;
   s: string;
 begin
   List := TStringList.Create;
   try
     ListDLLExports('c:\windows\system32\shell32.dll', List);
     ShowMessage(IntToStr(list.Count) + ' functions in dll');
     s := 'List of functions:';
     for i := 0 to List.Count - 1 do
       s := s + #13#10+List[i];
     ShowMessage(S);
   finally
     List.Free
   end;
 end;

procedure TForm1.ListDLLExports(const FileName: string; List: TStrings);
type
   TDWordArray = array [0..$FFFFF] of DWORD;
 var
   imageinfo: LoadedImage;
   pExportDirectory: PImageExportDirectory;
   dirsize: Cardinal;
   pDummy: PImageSectionHeader;
   i: Cardinal;
   pNameRVAs: ^TDWordArray;
   Name: string;
 begin
   List.Clear;
   if MapAndLoad(PansiChar(FileName), 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^.AddressOfFunctions), pDummy);
         for i := 0 to pExportDirectory^.NumberOfFunctions - 1 do
         begin
           Name := PChar(ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,
             pNameRVAs^[i], pDummy));
           List.Add(Name);
         end;
       end;
     finally
       UnMapAndLoad(@imageinfo);
     end;
   end;
 end;
Работает только почему то всегда нули
kotov-zhenja вне форума Ответить с цитированием
Старый 17.09.2015, 17:28   #13
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Вместо NumberOfFunctions нужно NumberOfNames
ДралсяСошибками вне форума Ответить с цитированием
Старый 17.09.2015, 17:32   #14
kotov-zhenja
Пользователь
 
Регистрация: 03.07.2010
Сообщений: 38
По умолчанию

У меня хоть и так и этак все одно. А У Вас?
kotov-zhenja вне форума Ответить с цитированием
Старый 17.09.2015, 19:18   #15
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

А у нас, такой результат:
Код:
1	AppCompat_RunDLLW
2	AssocCreateForClasses
3	AssocGetDetailsOfPropKey
4	CDefFolderMenu_Create2
5	CIDLData_CreateFromIDArray
6	CheckEscapesW
7	CommandLineToArgvW
8	Control_RunDLL
9	Control_RunDLLA
10	Control_RunDLLAsUserW
11	Control_RunDLLW
12	DAD_AutoScroll
13	DAD_DragEnterEx
14	DAD_DragEnterEx2
15	DAD_DragLeave
16	DAD_DragMove
17	DAD_SetDragImage
18	DAD_ShowDragImage
19	DllCanUnloadNow
20	DllGetClassObject
21	DllGetVersion
22	DllInstall
23	DllRegisterServer
24	DllUnregisterServer
25	DoEnvironmentSubstA
26	DoEnvironmentSubstW
27	DragAcceptFiles
28	DragFinish
29	DragQueryFile
30	DragQueryFileA
31	DragQueryFileAorW
32	DragQueryFileW
33	DragQueryPoint
34	DriveType
35	DuplicateIcon
36	ExtractAssociatedIconA
37	ExtractAssociatedIconExA
38	ExtractAssociatedIconExW
39	ExtractAssociatedIconW
40	ExtractIconA
41	ExtractIconEx
42	ExtractIconExA
43	ExtractIconExW
44	ExtractIconW
45	FindExecutableA
46	FindExecutableW
47	FreeIconList
48	GetCurrentProcessExplicitAppUserModelID
49	GetFileNameFromBrowse
50	ILAppendID
51	ILClone
52	ILCloneFirst
53	ILCombine
54	ILCreateFromPath
55	ILCreateFromPathA
56	ILCreateFromPathW
57	ILFindChild
58	ILFindLastID
59	ILFree
60	ILGetNext
61	ILGetSize
62	ILIsEqual
63	ILIsParent
64	ILLoadFromStreamEx
65	ILRemoveLastID
66	ILSaveToStream
67	InitNetworkAddressControl
68	InternalExtractIconListA
69	InternalExtractIconListW
70	IsLFNDrive
71	IsLFNDriveA
72	IsLFNDriveW
73	IsNetDrive
74	IsUserAnAdmin
75	LaunchMSHelp_RunDLLW
76	OpenAs_RunDLL
77	OpenAs_RunDLLA
78	OpenAs_RunDLLW
79	OpenRegStream
80	Options_RunDLL
81	Options_RunDLLA
82	Options_RunDLLW
83	PathCleanupSpec
84	PathGetShortPath
85	PathIsExe
86	PathIsSlowA
87	PathIsSlowW
88	PathMakeUniqueName
89	PathQualify
90	PathResolve
91	PathYetAnotherMakeUniqueName
92	PickIconDlg
93	PifMgr_CloseProperties
94	PifMgr_GetProperties
95	PifMgr_OpenProperties
96	PifMgr_SetProperties
97	PrepareDiscForBurnRunDllW
98	PrintersGetCommand_RunDLL
99	PrintersGetCommand_RunDLLA
100	PrintersGetCommand_RunDLLW
101	ReadCabinetState
102	RealDriveType
103	RealShellExecuteA
104	RealShellExecuteExA
105	RealShellExecuteExW
106	RealShellExecuteW
107	RegenerateUserEnvironment
108	RestartDialog
109	RestartDialogEx
110	RunAsNewUser_RunDLLW
111	SHAddDefaultPropertiesByExt
112	SHAddFromPropSheetExtArray
113	SHAddToRecentDocs
114	SHAlloc
115	SHAppBarMessage
116	SHAssocEnumHandlers
117	SHAssocEnumHandlersForProtocolByApplication
118	SHBindToFolderIDListParent
119	SHBindToFolderIDListParentEx
120	SHBindToObject
121	SHBindToParent
122	SHBrowseForFolder
123	SHBrowseForFolderA
124	SHBrowseForFolderW
125	SHCLSIDFromString
126	SHChangeNotification_Lock
127	SHChangeNotification_Unlock
128	SHChangeNotify
129	SHChangeNotifyDeregister
130	SHChangeNotifyRegister
131	SHChangeNotifyRegisterThread
132	SHChangeNotifySuspendResume
133	SHCloneSpecialIDList
134	SHCoCreateInstance
135	SHCreateAssociationRegistration
136	SHCreateDataObject
137	SHCreateDefaultContextMenu
138	SHCreateDefaultExtractIcon
139	SHCreateDefaultPropertiesOp
140	SHCreateDirectory
141	SHCreateDirectoryExA
142	SHCreateDirectoryExW
143	SHCreateFileExtractIconW
144	SHCreateItemFromIDList
145	SHCreateItemFromParsingName
146	SHCreateItemFromRelativeName
147	SHCreateItemInKnownFolder
148	SHCreateItemWithParent
149	SHCreateLocalServerRunDll
150	SHCreateProcessAsUserW
151	SHCreatePropSheetExtArray
152	SHCreateQueryCancelAutoPlayMoniker
153	SHCreateShellFolderView
154	SHCreateShellFolderViewEx
155	SHCreateShellItem
156	SHCreateShellItemArray
157	SHCreateShellItemArrayFromDataObject
158	SHCreateShellItemArrayFromIDLists
159	SHCreateShellItemArrayFromShellItem
160	SHCreateStdEnumFmtEtc
161	SHDefExtractIconA
162	SHDefExtractIconW
163	SHDestroyPropSheetExtArray
164	SHDoDragDrop
165	SHEmptyRecycleBinA
166	SHEmptyRecycleBinW
167	SHEnableServiceObject
168	SHEnumerateUnreadMailAccountsW
169	SHEvaluateSystemCommandTemplate
170	SHExtractIconsW
171	SHFileOperation
172	SHFileOperationA
173	SHFileOperationW
174	SHFindFiles
175	SHFind_InitMenuPopup
176	SHFlushSFCache
177	SHFormatDrive
178	SHFree
179	SHFreeNameMappings
180	SHGetAttributesFromDataObject
181	SHGetDataFromIDListA
182	SHGetDataFromIDListW
183	SHGetDesktopFolder
184	SHGetDiskFreeSpaceA
185	SHGetDiskFreeSpaceExA
186	SHGetDiskFreeSpaceExW
187	SHGetDriveMedia
188	SHGetFileInfo
189	SHGetFileInfoA
190	SHGetFileInfoW
191	SHGetFolderLocation
192	SHGetFolderPathA
193	SHGetFolderPathAndSubDirA
194	SHGetFolderPathAndSubDirW
195	SHGetFolderPathEx
196	SHGetFolderPathW
197	SHGetIDListFromObject
198	SHGetIconOverlayIndexA
199	SHGetIconOverlayIndexW
200	SHGetImageList
.....
333	WriteCabinetState
ДралсяСошибками вне форума Ответить с цитированием
Старый 18.09.2015, 08:35   #16
kotov-zhenja
Пользователь
 
Регистрация: 03.07.2010
Сообщений: 38
По умолчанию

Не пойму дальше этой строки не проходит
Код:
if MapAndLoad(PansiChar(FileName), nil, @imageinfo, True, True) then
kotov-zhenja вне форума Ответить с цитированием
Старый 18.09.2015, 12:16   #17
kotov-zhenja
Пользователь
 
Регистрация: 03.07.2010
Сообщений: 38
По умолчанию

Разобрался,
Код:
if MapAndLoad(PansiChar('catsrvps.dll'),PansiChar('c:\windows\system32\'), @imageinfo, True, True) then
но если так то опять нули

Код:
if MapAndLoad(PansiChar(Edit1.Text),PansiChar(Edit2.Text), @imageinfo, True, True) then
kotov-zhenja вне форума Ответить с цитированием
Старый 18.09.2015, 12:28   #18
kotov-zhenja
Пользователь
 
Регистрация: 03.07.2010
Сообщений: 38
По умолчанию

решил
Код:
if MapAndLoad(PansiChar(AnsiString(Edit1.Text)),PansiChar(AnsiString(Edit2.Text)), @imageinfo, True, True) then
kotov-zhenja вне форума Ответить с цитированием
Старый 18.09.2015, 13:21   #19
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

kotov-zhenja, зачем делать двойное преобразование? Должно так работать тогда:
Код:
if MapAndLoad(PChar(Edit1.Text),PChar(Edit2.Text), @imageinfo, True, True) then
FaTaL вне форума Ответить с цитированием
Старый 18.09.2015, 13:35   #20
kotov-zhenja
Пользователь
 
Регистрация: 03.07.2010
Сообщений: 38
По умолчанию

[dcc32 Error] Unit1.pas(112): E2010 Incompatible types: 'PAnsiChar' and 'PWideChar'
kotov-zhenja вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано 10 вещественных чисел. Определить количество элементов, которые меньше последнего ( Паскаль ) студент96 Помощь студентам 9 16.06.2014 17:21
Pascal ABC. Даны три массивы. Определить общее количество элементов массивов, значение которых лежат в интервале (подпрограмма) MarsLoveMoon Паскаль, Turbo Pascal, PascalABC.NET 6 24.04.2014 19:28
определить количество четных чисел и количество нечетных чисел массива, которые вводятся в МЕМО, вывести в поле компонента Edit. Pyxy Помощь студентам 2 21.03.2012 23:24
В строке определить количество слов, которые содержат букву «а» (Delphi) Dark Raven Помощь студентам 2 19.01.2012 16:56
Как определить количество слов, которые содержат ровно три буквы JegorX Паскаль, Turbo Pascal, PascalABC.NET 1 15.11.2011 15:52