![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Гость_suvor |
|
|||
Unregistered |
Попробовал я тут запустив программу, открыть файл содержащий ее же код и кое-что поменять. Widows не разрешил. Хотя казалось бы -какое ему дело? Можно ли это дело обойти? -Не ну я понимаю, что можно запустить другую прогу, потом закрыть первую. и сделать что надо. Но как-то это неэстетично. Спасиба. Suvor
|
|||
|
||||
Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
можно только очень осторожно. 1. Надо узнать контрольную сумму файла .exe 2. Взять в RAM все сожержимое exe-шника 3. Добавить кусок, который тебе надо (текст RTF например) 4. Сохранить из RAM с новой CRC, узнав ее, по какому принципу ее создает VB6. Не вырежи только кусок жизенно важный для твоей проги. А вообще меня тоже интересовал подобный вопрос: добавить в мой файл сторонний .exe, типа кнопочка - "вшить файл в программу". Нада функция вычисляющая CRC в VB - с нее все надо начинать. ![]() Это сообщение отредактировал(а) Voldemar2004 - 3.5.2005, 21:12 -------------------- i_i (';') (V) ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Этого сделать нельзя - Windows использует тело программы на диске как статическую область swap.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Ну а по какому ж тогда принципу работает вирус, когда вшивает свое тело в прогу?
-------------------- i_i (';') (V) ![]() |
|||
|
||||
Guest |
|
|||
Unregistered |
Что до первого ответа, то я типа что-то понял, но наверно это много сложнее чем как я делаю (через shell). Что до второго, то я как бы понял что нельязя, но не понял почему, а жисть учит что если непонятно почему нельзя, то потом всегда оказывается, что вроде и можно. Вот в чем вопрос ребром! Но все равно всем спасибо. Suvor
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Блокирование производится на уровне информативного сегмента (как ты думаешь, почему в РЕ-ЕХЕ сегменты не урезаются?) - так что одни сегменты допускают правку, другие нет... скажем на РЕ-ЕХЕ возможно заражение кучей методов, но в принципе невозможен сплайсинг. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
А зачем? В принципе, если ты имеешь в виду программно (из vb6), то можно юзать функции библиотеки vba6.dll, как-то так... и там есть функция, исполняющая (динамически) нужный тебе код (VB - интерпретар ведь). Напишу, если будет время... |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
А нет.. она работает только в design-time.
Lthmvj, уж извините ![]() |
|||
|
||||
Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Можно!
Но очень сложно! 1)Создаем отдельный процесс, гасим текущий; 2)Отображаем ехе в память. 3)Редактируем; 4)Сохраняем; 5)Запускаем; 6)Выгружаем промежуточный процесс; Сам не писал, но видел такую хрень в работе! |
|||
|
||||
Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Я видел подобное в исходниках на C++ - но блин не помню на каком сайте, увы. ![]() Я даж помню, что начиналась прога с подсчета контрольной суммы CRC, и далее шла работа с RAM. А так мне кажется что возможно. -------------------- i_i (';') (V) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |