Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Открытие работающего файла
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 12 октября 2006 00:08
· Личное сообщение · #1

Есть запущенный процес, я в него внедряю длл, далее узнаю полный путь и когда пытаюсь открыть этот фаил из внедренной длл получаю облом. Кто знает в чем загвоздка и как это обойти?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 12 октября 2006 00:37
· Личное сообщение · #2

Покажи как открываешь, скорее всего дело во флагах...

-----
Yann Tiersen best and do not fuck





Ранг: 105.9 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 12 октября 2006 00:41 · Поправил: seeq
· Личное сообщение · #3

Я сажусь в машину, включаю зажигание, нажимаю на газ, машина не едет! Кто знает в чем загвоздка и как это обойти?

Что значить "пытаюсь открыть этот фаил из внедренной длл" ?
Через CreateFileA ? Для чтения? Для записи? Приведи кусок кода.

3 метода работы с занятыми файлами
http://www.wasm.ru/article.php?article=lockfileswork http://www.wasm.ru/article.php?article=lockfileswork



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 12 октября 2006 00:48 · Поправил: Cigan
· Личное сообщение · #4

[HIGHLIGHT=asm]mov hFile,$invoke(CreateFile,CmdLine,GENERIC_READ or GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0)
.if hFile!=-1
mov FileSize,$invoke(GetFileSize,hFile,0)
mov hFileMap,$invoke(CreateFileMapping,hFile,0,PAGE_READWRITE,0,0,0)
mov FileMapping,$invoke(MapViewOfFile,hFileMap,FILE_MAP_ALL_ACCESS,0,0,0)

mov edi,FileMapping
assume edi:ptr IMAGE_DOS_HEADER
.if [edi].e_magic==IMAGE_DOS_SIGNATURE
add edi,[edi].e_lfanew
assume edi:ptr IMAGE_NT_HEADERS
.if [edi].Signature==IMAGE_NT_SIGNATURE
mov eax,[edi].OptionalHeader.ImageBase
mov ImageBase,eax
mov ax,[edi].FileHeader.NumberOfSections
mov NumberSection,ax
add edi,sizeof IMAGE_NT_HEADERS
mov ecx,sizeof IMAGE_SECTION_HEADER.Name1
mov esi,offset NameSection
repe cmpsb
sub edi,sizeof IMAGE_SECTION_HEADER.Name1
.if zero?
assume edi:ptr IMAGE_SECTION_HEADER
mov eax,[edi].VirtualAddress
mov WarRVA,eax
mov eax,[edi].SizeOfRawData
mov WarSizeOfData,eax
.endif
.endif
.endif
.else
invoke MessageBox,0,$CTA0("Can't open file"),FileName,MB_OK
.endif
ret
[/HIGHLIGHT]


Код без проверок так как смысла пока нет их добовлять из за невозможности получить доступ.
CreateFile возвращает ERROR_SHARING_VIOLITATION



Ранг: 110.7 (ветеран)
Активность: 0.070
Статус: Участник
~ tPORt ~

Создано: 12 октября 2006 01:21
· Личное сообщение · #5

GENERIC_READ or GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE
на чтение только открывай а не на чтение\запись



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 12 октября 2006 03:04
· Личное сообщение · #6

LazzY пишет:
на чтение только открывай

Так он его патчить собрался
Cigan пишет:
как это обойти?

Так просто наверное не получится. Раз файл уже открыт, а ты внутри - ищи хендл и работай через него.
Хотя скорее всего файл открыт на чтение.



Ранг: 16.8 (новичок)
Активность: 0.030
Статус: Участник

Создано: 14 октября 2006 07:40
· Личное сообщение · #7

Посмотри, может это тебе поможет:
www.catch22.net/tuts/selfdel.asp



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 14 октября 2006 09:31
· Личное сообщение · #8

Нет это не подходит.




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 14 октября 2006 23:41
· Личное сообщение · #9

Может тогда сначала прибьешь процесс?
А после работай с файлом как хочешь.



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 15 октября 2006 01:32
· Личное сообщение · #10

Мне нужен именно работающи процесс




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 15 октября 2006 02:18 · Поправил: NIKOLA
· Личное сообщение · #11

Cigan пишет:
Мне нужен именно работающи процесс


А как читеры работают?



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 15 октября 2006 03:23
· Личное сообщение · #12

NIKOLA пишет:
А как читеры работают?
В смысле?



Ранг: 24.2 (новичок)
Активность: 0.010
Статус: Участник

Создано: 15 октября 2006 03:53
· Личное сообщение · #13

Читеры память патчат а не файл на диске



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 15 октября 2006 04:00
· Личное сообщение · #14

Cigan пишет:
Мне нужен именно работающи процесс

Т.к. ты информации не дал, то только один вариант, через хендл этого файла в самом процессе.
А вообще, не задавай вопрос из "середины проблемы" Время съэкономишь.



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 15 октября 2006 04:01
· Личное сообщение · #15

tundra37 пишет:
Т.к. ты информации не дал

Какой именно информации?




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 15 октября 2006 05:25
· Личное сообщение · #16

Cigan пишет:
Какой именно информации?


Тебе вообще что нужно? Сделать патч файла или изменить память процесса? Изъясняйся понятнее!



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 15 октября 2006 05:55 · Поправил: Cigan
· Личное сообщение · #17

Читай первый пост мне там все написано. Если патч то я так бы не извращался если память процеса тоже всеголишь WriteProcessMemory.




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 15 октября 2006 06:03
· Личное сообщение · #18

В голову приходит только одно - писать драйвер, кот. в таблице объектов изменяет shared-status запущенного файла.




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 15 октября 2006 06:44
· Личное сообщение · #19

Cigan пишет:
Читай первый пост мне там все написано.


Читаем

Cigan пишет:
узнаю полный путь и когда пытаюсь открыть этот фаил из внедренной длл получаю облом


Для чего открываеш, что хочеш сделать ?

имхо. такие топики нах закрывать надо, а то, не понятно чего чел хочет.



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 15 октября 2006 07:14 · Поправил: Cigan
· Личное сообщение · #20

NIKOLA пишет:
Для чего открываеш, что хочеш сделать ?

Какая разница для чего??? Это уже мое дело я задал вопрос ни кто не ответил только берд несут. Не знаешь нефиг писать тогда.




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 15 октября 2006 10:14
· Личное сообщение · #21

Cigan

Ну и хрен с тобой, шифруйся, от меня больше слова не добьёшся.



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 15 октября 2006 10:47 · Поправил: Cigan
· Личное сообщение · #22

NIKOLA пишет:
Ну и хрен с тобой, шифруйся

Да че шивроваться то? После внедрения в процесс длл нужно получить все параметры вайла и потом оригинал сохранить, а запущеный фаил полность распаковать и положить на место старого.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 15 октября 2006 19:13
· Личное сообщение · #23

Cigan ты не сможешь писать в файл, если он запущен (залочен). Только если как то на самом низком уровне...

-----
Yann Tiersen best and do not fuck




Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 15 октября 2006 23:30
· Личное сообщение · #24

Но тогда вопрорс поему я этотот фаил могу без прооблем копировать удалять изменять, но только не из моей длл, а из тотала или проводника.




Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 16 октября 2006 01:25
· Личное сообщение · #25

Cigan пишет:
Но тогда вопрорс поему я этотот фаил могу без прооблем копировать удалять изменять, но только не из моей длл, а из тотала или проводника.

Копировать запущеный файл можно (т.к. открывается для чтения при копировании), а вот удалять - нет. Что тотал, что проводник будут ругаться на то, что файл защищен от записи или занят другим приложением.

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




Ранг: 12.9 (новичок)
Активность: 0=0
Статус: Участник

Создано: 16 октября 2006 02:12
· Личное сообщение · #26

На NTFS можно заменить файл, но не удалить.



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 16 октября 2006 02:40
· Личное сообщение · #27

ValdiS пишет:
Копировать запущеный файл можно (т.к. открывается для чтения при копировании), а вот удалять - нет.

Я и удалял этот фаил без проблем. Поэтому и встал вопрос, что я могу сним сделать все что захочу но открыть его из DLL неполучаеться.
P.s. Подчеркиваю что сним могу делать все что мне вздумаеться.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 16 октября 2006 07:18
· Личное сообщение · #28

Cigan пишет:
P.s. Подчеркиваю что сним могу делать все что мне вздумаеться.


ну когда он не запущен, то делай всё что хочешь)))
а помоему всё это бред, "слепой объясняет глухому"

-----
[nice coder and reverser]




Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 16 октября 2006 10:00
· Личное сообщение · #29

Hellspawn пишет:
ну когда он не запущен, то делай всё что хочешь)))

Даже когда он запущен.



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 16 октября 2006 10:04
· Личное сообщение · #30

Cigan пишет:
Даже когда он запущен.

А когда ты его удаляешь при запущеном процессе, процесс остаётся?


. 1 . 2 . >>
 eXeL@B —› Программирование —› Открытие работающего файла
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати