Вопрос № 98004: Здравствуйте. Имеется программа, представляющая из себя единственный exe-файл. Нужно сделать контроль целостности этого файла (или хотя бы той его части, которая содержит исполняемый код и некоторые данные) по какой-нибудь хеш-функции. Сама функция п...Вопрос № 98016: Здравствуйте уважаемые эксперты. Подскажите пожалуйста, какой функцией можно реализовать преобразование из типа string в 8-миричную систему счисления. Пример:
"строка" -> "F1 F2 F0 EE EA E0".
Заранее спасибо....Вопрос № 98018: Здравствуйте.
Имеется простенькое приложение, написанное на Delphi, в основном окне которого находятся несколько скрытых Label и Edit.
Задача заключается в том, чтобы из стороннего приложения (написанного на том-же Delphi) сделать эти объекты...Вопрос № 98055: Здравствуйте!
Необходимо чтобы в листбокс заносились все сетевые интерфейсы и для каждого из них можно было бы изменить ip-адрес и маску подсети.
Менять - с помощью SetAdapterIPAddress. А вот как получить информацию об интерфесах.
Спасиб...
Вопрос № 98.004
Здравствуйте. Имеется программа, представляющая из себя единственный exe-файл. Нужно сделать контроль целостности этого файла (или хотя бы той его части, которая содержит исполняемый код и некоторые данные) по какой-нибудь хеш-функции. Сама функция проверки должна располагаться в этом же exe. Результат прямо открытым текстом выводится в окне программы, как это делается в NOD32. Там обычно пишется CRC exe - OK или что-то в этом духе. Но NOD32 проверяет exe скорее всего из dll, а мне желательно из самого exe.
Как это лучше сделать? Желательно с примером кода, особенно по доступу к exe и хранению результата хеш-функции (как его хранить и где конкретно). Если сложно, то просто дайте ссылки на статьи или компоненты Delphi, реализующие эту проверку. А вообще я видел на wasm теорию по написанию самоудаляющегося exe-файла, так что это возможно.
P. S. Думаю, что если бы все программы делались таким образом, то некоторые виды вирусов не смогли бы распространиться.
Отправлен: 11.08.2007, 01:00
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 11.08.2007, 05:37 Оценка за ответ: 5
Отвечает: Архангельский Андрей Германович
Здравствуйте, Blackie!
Вообще то функция может храниться в самом .exe файле и вызываться из него же. В таких случаях в самом файле имеется константа, которая содержит дополнение до хэш-функции. В результате чего хэш-функция всего файла (включая саму хэш-функцию и ее вызов) дает 0, что легко детектируется
--------- Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Здравствуйте уважаемые эксперты. Подскажите пожалуйста, какой функцией можно реализовать преобразование из типа string в 8-миричную систему счисления. Пример: "строка" -> "F1 F2 F0 EE EA E0".
Заранее спасибо.
Отправлен: 11.08.2007, 06:32
Вопрос задал: T1000 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Coupler
Здравствуйте, T1000!
Вообще-то, то, что Вы написали - это преобразование каждого символа в шестнадцатеричную систему счисления: ord(с)=241=F1h. В приложении функция, осуществляющая это преобразование и пример ее использования.
Приложение:
Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 11.08.2007, 06:58
Отвечает: Виктор Пырлик
Здравствуйте, T1000!
То что вы показали - "F1 F2 F0 EE EA E0" шестнадцатиричная запись, для этого достаточно использовать функцию Format: HexString := Format('%0x',[DecValue]);
или HexString := IntToHex( [DecValue] , [MinDigits] );
Ну а для восьмиричной записи (т.е. там, где числа от 0 до 7) дан код в приложении.
Приложение:
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 11.08.2007, 14:37
Вопрос № 98.018
Здравствуйте.
Имеется простенькое приложение, написанное на Delphi, в основном окне которого находятся несколько скрытых Label и Edit.
Задача заключается в том, чтобы из стороннего приложения (написанного на том-же Delphi) сделать эти объекты видимыми или получить их текст.
ID окна я нахожу по фиксированному заголовку с помощью FindWindow.
А вот что дальше - запамятовал, может быть использовать WM_NEXTDLGCTL? Раньше занимался Delphi & WinAPI, но это было несколько лет назад.
Спасибо.
Отправлен: 11.08.2007, 07:47
Вопрос задал: Mind (статус: Студент)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Градов Юрий Михайлович
Здравствуйте, Mind!
Воспользуйтесь функций из приложения, она по сути должна найти хэндл Edit (Label), но можно поковыряться утилитой Restorator
Приложение:
--------- Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 11.08.2007, 13:44 Оценка за ответ: 5
Отвечает: Mishell
Здравствуйте, Mind!
можно использовать функцию EnumChildWindows
Ее описание:
function EnumChildWindows(WndParent: HWnd; EnumFunc: TFarProc; lparam: Longint): Bool;
Пеpечисляет дочеpние окна указанного pодителя, пеpедавая дочеpний описатель и lParam функции обpатного вызова. Пеpечисление заканчивается, если функция обpатного вызова
возвpащает нуль или если пеpечисляется последний дочеpний элемент.
Паpаметpы:
WndParent: Родительское окно пеpечисляемых дочеpних окон.
EnumFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
lParam: Значение, пеpеданное функции обpатного вызова.
Возвpащаемое значение:
Не нуль, если пеpечислены все дочеpние окна; 0 - в пpотивном случае.
Как работы с этой функцией можете посмотреть в этой статье:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=432
Ответ отправил: Mishell (статус: 5-ый класс)
Ответ отправлен: 13.08.2007, 11:32 Оценка за ответ: 5 Комментарий оценки: спасибо. помогло
Отвечает: Примак Руслан Николаевич
Здравствуйте, Mind!
Поскольку контроля формы - это тоже окна, хэндлы на них могут быть получены через EnumChildWindows.
Текст можно получить функцией GetWindowText, которая получает заголовок - если окно - форма и содержание - если контрол. "The GetWindowText function copies the text of the specified window's title bar (if it has one) into a buffer. If the specified window is a control, the text of the control is copied. "
В приложении я использую функции для построения дерева окон, посмотрите примеры использования этих функций.
Приложение:
Ответ отправил: Примак Руслан Николаевич (статус: 3-ий класс)
Ответ отправлен: 13.08.2007, 12:11 Оценка за ответ: 5
Вопрос № 98.055
Здравствуйте!
Необходимо чтобы в листбокс заносились все сетевые интерфейсы и для каждого из них можно было бы изменить ip-адрес и маску подсети.
Менять - с помощью SetAdapterIPAddress. А вот как получить информацию об интерфесах.
Спасибо!
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 11.08.2007, 16:01 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! Буду разбираться.