ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

19.02.2010, 17:54
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
DiffiT
Код:
unit ....;
uses
windows;
.......
function GetWindowDC(Wnd: HWnd): hDC;
stdcall; extenal 'user32.dll' name 'GetWindowDC';
function GetModuleFileNameEx(hProcess: THandle; hModule: HINST;
lpFilename: PChar; nSize: DWORD): DWORD; stdcall; external 'psapi.dll'
name 'GetModuleFileNameExA';
function EnumProcessModules(hProcess: THandle; lphModule: LPDWORD; cb: DWORD;
Var lpcbNeeded: DWORD): BOOL Stdcall; external 'psapi.dll'
name 'EnumProcessModules';
implementation
....
end.
в модуле должно выглядеть примерно так
если ты объявляешь функцию так же как она в библиотеке названа то имя
Код:
name 'GetModuleFileNameExA';
можно не писать..
Последний раз редактировалось transserg; 19.02.2010 в 17:57..
|
|
|

19.02.2010, 18:11
|
|
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
Провел на форуме: 287634
Репутация:
16
|
|
Сообщение от transserg
DiffiT
Код:
unit ....;
uses
windows;
.......
function GetWindowDC(Wnd: HWnd): hDC;
stdcall; extenal 'user32.dll' name 'GetWindowDC';
function GetModuleFileNameEx(hProcess: THandle; hModule: HINST;
lpFilename: PChar; nSize: DWORD): DWORD; stdcall; external 'psapi.dll'
name 'GetModuleFileNameExA';
function EnumProcessModules(hProcess: THandle; lphModule: LPDWORD; cb: DWORD;
Var lpcbNeeded: DWORD): BOOL Stdcall; external 'psapi.dll'
name 'EnumProcessModules';
implementation
....
end.
в модуле должно выглядеть примерно так
если ты объявляешь функцию так же как она в библиотеке названа то имя
Код:
name 'GetModuleFileNameExA';
можно не писать..
вроде, так и делаю.. =) щас ещё раз попробую 
|
|
|

19.02.2010, 18:17
|
|
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
Провел на форуме: 287634
Репутация:
16
|
|
 спасибо, заработало)))) не туда писал, как оказалось)))) Пробовал писать в type, как функцию формы, пробовал в public и в private  щас вкурил, зачем там end был))))
|
|
|

19.02.2010, 18:21
|
|
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
Провел на форуме: 287634
Репутация:
16
|
|
а по поводу реестра, у кого-нить есть рабочий исходник? А то я офигеваю с типов PAnsiChar и Cardinal 
Всё никак с параметрами угадать не могу))))
Последний раз редактировалось DiffiT; 19.02.2010 в 18:23..
|
|
|

19.02.2010, 18:28
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
DiffiT что именно хочешь с реестром делать. пример чтения и поиска есть... записать написать не сложно
Последний раз редактировалось transserg; 19.02.2010 в 18:34..
|
|
|

19.02.2010, 18:54
|
|
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
Провел на форуме: 287634
Репутация:
16
|
|
Сообщение от transserg
DiffiT что именно хочешь с реестром делать. пример чтения и поиска есть... записать написать не сложно
мне простейщие операции чтение\запись))) функции уже до меня объявлены, а с параметрами борода 
|
|
|

19.02.2010, 18:49
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
Код:
Procedure ScanRegistry(RootKey:HKEY;SubKey:String);
var
hSubKey:HKEY;
NumKey,NumValue:DWORD;
NameKey:Pointer;
NameValue:Pointer;
BufSize:DWORD;
KeyError,ValueError:integer;
begin
NumKey:=0;
NumValue:=0;
BufSize:=2048;
if ThreadExit then
exit;
GetMem(NameValue,BufSize);
GetMem(NameKey,BufSize);
try
if RegOpenKeyEx(RootKey, PChar(SubKey),0,KEY_ALL_ACCESS,hSubKey)=ERROR_SUCCESS then
begin
ValueError:=RegEnumValue(hSubKey,NumValue,NameValue,BufSize, nil, nil, nil, nil);
if PChar(NameValue)<>'' then
begin
ResultAnalize(RootKey,PChar(SubKey),NameValue);
end;
inc(NumValue);
while ValueError=ERROR_SUCCESS do
begin
BufSize:=2048;
try
ValueError:=RegEnumValue(hSubKey,NumValue,NameValue,BufSize, nil, nil, nil, nil);
if ValueError=ERROR_SUCCESS then
if PChar(NameValue)<>'' then
begin
ResultAnalize(RootKey,PChar(SubKey),NameValue);
inc(TotalValue);
end;
finally
inc(NumValue);
end;
end;
Sleep(2);
KeyError:=ERROR_SUCCESS;
while KeyError=ERROR_SUCCESS do
begin
BufSize:=2024;
KeyError:=RegEnumKeyEx(hSubKey,NumKey,NameKey,BufSize,nil,nil,nil,nil);
inc(TotalKeys);
if KeyError=ERROR_SUCCESS then
if SubKey='' then
ScanRegistry(RootKey,PChar(Concat(SubKey,PChar(NameKey))))
else
ScanRegistry(RootKey,PChar(Concat(SubKey,'\',PChar(NameKey))));
inc(NumKey);
end;
end;
finally
FreeMem(NameKey);
FreeMem(NameValue);
RegCloseKey(hSubKey);
end;
end;
процедура обхода дерева реестра
первый параметр подраздел один из
Код:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
второй параметр это ключ с которого начнется перебор если пустой то будет перебирать с корня под раздела
Код:
ResultAnalize(RootKey,PChar(SubKey),NameValue);
процедура анализа в которой ты собственно и удовлетворяют ли считанные данные условию поиска
|
|
|

19.02.2010, 18:53
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
вот часть кода на чтение значения
Код:
var
hSubKey : HKEY;
MyValType : DWORD;
BufSize : DWORD;
Buf: Pointer;
.....
if RegOpenKey(RootKey, SubKey,hSubKey) = ERROR_SUCCESS then
try
if RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, nil, @BufSize) =ERROR_SUCCESS then
begin
GetMem(Buf, BufSize);
try
if RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, Buf, @BufSize) =ERROR_SUCCESS then
begin
end;
......
SubKey "путь" до ключа в реестре
ValueName имя параметра
Buf указатель на значение параметра
|
|
|

19.02.2010, 18:55
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме: 1035284
Репутация:
52
|
|
DiffiT стукни в асю =)
|
|
|

19.02.2010, 18:57
|
|
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
Провел на форуме: 287634
Репутация:
16
|
|
RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, nil, @BufSize)
вот в этих сцабаках наверное и есть проблема 
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Литература Delphi
|
Sams |
С/С++, C#, Delphi, .NET, Asm |
2 |
19.03.2010 19:46 |
|
Скачать Delphi 7, помощь.
|
_casper_ |
С/С++, C#, Delphi, .NET, Asm |
20 |
08.12.2009 04:54 |
|
Virus.Win32.Induc.a – новый вирус для Delphi
|
ErrorNeo |
Уязвимости |
37 |
26.08.2009 00:33 |
|
Virus.Win32.Induc.a или "Снова записки новичка"
|
_=(mac)=_ |
Защита ОС: вирусы, антивирусы, файрволы. |
5 |
24.08.2009 23:34 |
|
Помогите с WinAPI в Delphi
|
EST a1ien |
С/С++, C#, Delphi, .NET, Asm |
13 |
12.10.2006 11:06 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|