|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.09.2007, 23:34 | #1 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
DLL и DRKB
здравствуйте!!
в DRKB есть статья Системные функции и WInApi-Windows-DLL-аналог DumpBin я всё переписал захожу в командную строку и ввожу что написано и у меня выдаёт сообщение о ошибке в части ImageBase := GetModuleHandle(PChar(cmdline)); if (ImageBase = 0) thenbegin MessageBox(0, 'Error Load ModuleQ', 'Error', MB_OK); halt(0); end; помогите!!!
ICQ-465033557
WINDOWS CE THE BEST |
08.09.2007, 00:45 | #2 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Выложи код полностью че ты там написал
|
08.09.2007, 08:03 | #3 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
program ExpDump;
uses windows; var ImageBase : DWord; DosHeader : PImageDosHeader; PeHeader : PImageNtHeaders; PExport : PImageExportDirectory; pname : PDWord; name : PChar; i : Integer; cmdline : string; function Dump(const log: PChar): boolean; Var hFile : THandle; dwError : DWord; dwWritten : DWord; buffer : PChar; begin hFile := CreateFile(PChar(cmdline + '_fexport.txt'), GENERIC_WRITE, 0, nil, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); dwError := SetFilePointer(hFile, 0, nil, FILE_END); buffer := PChar(log + #13#10); WriteFile(hFile, buffer^, length(buffer), dwWritten, nil); end; begin if (ParamCount < 1) then halt(0) else cmdline := ParamStr(1); ImageBase := GetModuleHandle(PChar(cmdline)); DosHeader := PImageDosHeader(ImageBase); PEHeader := PImageNtHeaders(DWord(ImageBase) + DWord(DosHeader^._lfanew)); PExport := PImageExportDirectory(ImageBase + DWord(PEHeader^.OptionalHeader.Data Directory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress)); pname := PDWord(ImageBase + DWord(PExport^.AddressOfNames)); Dump(PChar('Programm ExpDump =)')); Dump(PChar(cmdline + ' functions:')); Dump(PChar(#13#10)); For i := 0to PExport^.NumberOfNames - 1dobegin name := PChar(PDWord(DWord(ImageBase) + PDword(pname)^)); if (not Dump(name)) then halt(0); inc(pname); end; end.
ICQ-465033557
WINDOWS CE THE BEST |
11.09.2007, 06:54 | #4 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Заметь что у тебя функиця Dump(const log: PChar): boolean; невозвращает результата а здесь
Код:
Попробуй так: Код:
Последний раз редактировалось Ring0Sn; 11.09.2007 в 06:58. |
11.09.2007, 06:54 | #5 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Прикрепил полностью исходник подправленный:
|
11.09.2007, 15:45 | #6 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
все равно не работает захожу в командную строку ввожу имя ехе а потом DLL
и пишет ошибку и ничего в файл не записывается
ICQ-465033557
WINDOWS CE THE BEST |
11.09.2007, 18:51 | #7 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
код твой для всех рабоать и несобирался изначально ! для user32.dll, kernel32.dll, .. работать должен
Последний раз редактировалось Ring0Sn; 11.09.2007 в 18:56. |
11.09.2007, 19:01 | #8 | |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Смотри что пишут
Цитата:
|
|
11.09.2007, 19:23 | #9 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
ну не знаю у меня не работает проверь у себя
ICQ-465033557
WINDOWS CE THE BEST |
11.09.2007, 20:42 | #10 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Я бы нестал говорить тебе что БУДЕТ РАБОТАТЬ непроверив у себя ))
Думаю с путями что то нето делаешь пробуй тошто ниже тогда Распакуй просто архив и запусти батник |