Вопрос № 61169: Здраствуйте, подскажите пожалуйста как сделать поиск в строке:
то есть:
1 поддержка ? и *
2 независимость от регистра
у меня есть функция позволяющее (1) я ее взял с DelphiWorld. Но как в нее добавить(2)? Заранее спасибо.
зы я са...Вопрос № 61211: Обьясните, плз, как происходит применение функций типа OR, NOT, XOR и т.д. к числовым переменным? Для чего они могут применятся на практике?...Вопрос № 61216: Добрый день. Вопрос деликатный. Как мне написать программу чтобы она вставляла какойто код в другой ексешник. Вроде внедрения вируса, но С МИРНЫМЫ ЦЕЛЯМИ! Пожалуйста, помогите!...
Вопрос № 61.169
Здраствуйте, подскажите пожалуйста как сделать поиск в строке:
то есть:
1 поддержка ? и *
2 независимость от регистра
у меня есть функция позволяющее (1) я ее взял с DelphiWorld. Но как в нее добавить(2)? Заранее спасибо.
зы я сам не очень хорошо владею работой с указателями
Приложение:
Отправлен: 03.11.2006, 18:01
Вопрос задал: Yujin (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Yujin!
Что-то я не вижу, где у вас тут идет сравнение символов - вы весь код положили в приложение? Замените функцию сравнения своей, которая будет игнорировать регистр (см. приложение)
Или приспособьте стандартную функцию AnsiLowerCase (AnsiUpperCase)
А самым правильным было бы взять готовый компонент/библиотеку для поддержки регулярных выражений в Delphi.
Приложение:
--------- Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Практикант)
Ответ отправлен: 03.11.2006, 18:47 Оценка за ответ: 3 Комментарий оценки: просто я взял эту функцию, попробовал она работает. но я не понял КАК она работает + ваша функция не поддрживает "*" и "?"
Вопрос № 61.211
Обьясните, плз, как происходит применение функций типа OR, NOT, XOR и т.д. к числовым переменным? Для чего они могут применятся на практике?
Отправлен: 03.11.2006, 23:02
Вопрос задал: Keraberas (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Melamed
Здравствуйте, Keraberas!
Вы спрашиваете про битные операции OR, NOT, XOR, AND
Операция or применяется для установки отделных битов в числе, например, $07 OR $10 = $17
Операция AND применяется для выделения определенных битов из числа, например, &03 AND $1A = $02. Данная
опирация применяется для проверки установлен ли данный бит или нет
Операция NOT инвертирует биты числа, то есть бит который в исходном числе был установлен
в 1 сбрасывается в 0 и наоборот. Например NOT $17 = $E8
Операция XOR устанавливает в единицу бит если соответсвующие биты не совподают у аргументов.
Например, $1A OR $03 = &19.
Ответ отправил: Melamed (статус: 7-ой класс)
Ответ отправлен: 03.11.2006, 23:43
Отвечает: sir henry
Здравствуйте, Keraberas!
То, что Вы перечислили, это не функции, а побитовые операции над числами. Т.е. каждый бит заданного Вами числа проходит обработку в соответствии с заданной Вами операцией (OR, NOT, XOR, AND).
Небольшой пример практического применения. XOR
Эта операция может применяться для простейшего алгоритма шифрования. Допустим у Вас есть текстовый файл, содержимое которого Вам надо скрыть от чьих-то любопытных глаз. Это можно сделать, применив к коду каждого символа файла операцию XOR с каким-либо ключом. Дешифрация происходит точно так-же, т.е. к каждому зашифрованому символу применяется операция XOR с тем же самым ключом.
См. пример 1 в приложении. NOT
Эта операция применяется, когда нужно проверять, не произошло ли то или иное событие. Например считывание символов из файла идет до тех пор, пока не наступил конец файла. См. пример 1 в приложении. AND
Эту оперцию можно применить, например когда Вы ищете файлы по заданной маске и среди найденного Вам надо отобрать только каталоги. См. пример 2 в приложении.
Приложение:
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 04.11.2006, 06:33
Отвечает: Monah
Здравствуйте, Keraberas!
Эти операции могут применятся в основном для работы с отдельными битами. по таким правилам - смотрите приложение.
Также эти операции применяются при работе с логическими операциями IF/Case/FOR/WHILE/Repeat по тойже логике если принять true = 1 а false = 0
например if a<>b можно представить как if not(a=b) только необходимо учитывать что приоритет этих операций самый низкий поэтому запись if not a=b эквивалентна if (not a)=b
Приложение:
--------- festina lente
Ответ отправил: Monah (статус: 7-ой класс)
Ответ отправлен: 04.11.2006, 18:45
Отвечает: Mo-skin
Здравствуйте, Keraberas!
Функции побитового сравнения:
//или
$01 or $01 = $01
$01 or $00 = $01
$00 or $10 = $10
//и
$01 and $01 = $01
$01 and $00 = $00
$10 and $01 = 00
$10 and $10 = $10
--------- Чем больше женщину мы меньше, тем больше меньше мы ее!
Ответ отправил: Mo-skin (статус: 2-ой класс)
Ответ отправлен: 04.11.2006, 21:36
Вопрос № 61.216
Добрый день. Вопрос деликатный. Как мне написать программу чтобы она вставляла какойто код в другой ексешник. Вроде внедрения вируса, но С МИРНЫМЫ ЦЕЛЯМИ! Пожалуйста, помогите!
Отправлен: 04.11.2006, 00:03
Вопрос задал: Dector@ (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Олекса aka SoW
Здравствуйте, Dector@!
Самый распространенный способ заражения ЕХЕ-файлов такой: в конец файла дописывается тело вируса, а заголовок корректируется (с сохране- нием оригинального) так, чтобы при запуске инфицированного файла управление получал вирус. После окончания работы вирус берет из сохраненного заголовка оригинальный адрес запуска программы, прибав- ляет к его сегментной компоненте значение регистра DS или ES (полученное при старте вируса) и передает управление на полученный адрес.
Следующий способ - внедрение вируса в начало файла со сдвигом кода программы. Механизм заражения такой: тело инфицируемой программы считывается в память, на ее место записывается вирусный код, а после него - код инфицируемой программы. Таким образом, код программы как бы "сдвигается" в файле на длину кода вируса. При запуске инфицированного файла вирус заражает еще один или несколько файлов. После этого он считывает в память код программы, записывает его в специально созданный на диске временный файл
с расширением исполняемого файла (СОМ или ЕХЕ), и затем исполняет этот файл. Когда программа закончила работу, временный файл удаляется.
Также очень хорошая статья на ету тему здесь: http://hi-tech.nsys.by/23/#2
В ней все вопросы рассмотрены более подробно
--------- Вiк живи - вiк учись.
Ответ отправил: Олекса aka SoW (статус: 2-ой класс)
Ответ отправлен: 04.11.2006, 07:02 Оценка за ответ: 4 Комментарий оценки: да, система тоже интересная и статья обширная, но я хотел бы конкретный пример на Делфи, мне нужно только, чтобы мой вирус внедрялся в мой же файл напр 1234.exe и в процессе работы менял заголовок. Вот и все.
Отвечает: PaVeL_Ekt
Здравствуйте, Dector@!
Просто делай так
Var f: text; Mem: TMemoryStream;
Buf: Array [1..1024] of byte;
// с помощью blockwrite можно записать данные хоть в начало (перед repeat) или после экзешного файла, если после, то экзешник будет работать как ни в чем не бывало
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 07.11.2006, 07:25 Оценка за ответ: 5 Комментарий оценки: Отлично - я обезательно испытаю! Спасибо!