eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: esa_r, mkdev, Rio (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Программирование —› Как открыть файл в system32? win7x64
Посл.ответ Сообщение

Ранг: 36.3 (посетитель)
Статус: Участник

Создано: 9 апреля 2019 08:36 New!
Цитата · Личное сообщение · #1

Столкнулся со странной ошибкой. Есть код, который проверяет наличие определенного файла в папке системы, и считывает его атрибуты (когда был создан). Код простейший, вида:

Code:
  1. {
  2. WIN32_FILE_ATTRIBUTE_DATA lpF;
  3. if (GetFileAttributesExW(L"C:\Windows\System32\vbscript.dll", GetFileExInfoStandard, &lpF))
  4.          {
  5.          что-то делаем
  6.          }


Парадокс в том, что он не может получить доступ к файлу на 64 битной семерке, хотя на 64битной десятке все работает. А на семерке упорно пишет FILE_NOT_FOUND. Другие файлы находит (в плане, по другим путям, вида C:\symbols), проблема лишь с этими. Wow64DisableFsRedirect.. не помогает. Что это может быть и как такое обойти? Цель - просто считать файловый атрибут (время), не удалять что-то ес-но и не патчить.

p.s. в оригинале путь получается через GetSystemDir и прочее, я сократил код, оставив суть проблемы.

Добавлено спустя 3 минуты
p.p.s. форум убрал двойные слеши или потерялись при копипасте, но в коде они есть, дело не в них, если что.


Ранг: 227.9 (наставник)
Статус: Участник

Создано: 9 апреля 2019 08:46 New!
Цитата · Личное сообщение · #2

Cкорей всего потому что файл на самом деле лежит в SysWOW64.

| Сообщение посчитали полезным: BlackCode



Ранг: 539.0 (!)
Статус: Участник
_Вечный_Студент_

Создано: 9 апреля 2019 09:30 · Поправил: plutos New!
Цитата · Личное сообщение · #3

как вариант: использовать FindFirstFileA или FindFirstFileExA чтобы наверное знать где искомый файл?

Ранг: 36.3 (посетитель)
Статус: Участник

Создано: 9 апреля 2019 10:25 New!
Цитата · Личное сообщение · #4

f13nd
странно то, что часть файлов дублируются (system32->syswow64), а часть (некоторые дрова, к примеру) все же нет.
А более странно, что на десятке все работает, а на семерке нет.

plutos
Попробовал, но не нашло искомый файл. Хотя проводник показывает. Удивился, сбилдил 64 битное приложение - и все есть. Значит, дело таки в разрядности (?), хотя странно, что на десятке все работает иначе. Буду копать дальше.

Ранг: 238.9 (наставник)
Статус: Участник

Создано: 9 апреля 2019 10:39 · Поправил: cppasm New!
Цитата · Личное сообщение · #5

Ранг: 44.8 (посетитель)
Статус: Участник

Создано: 9 апреля 2019 10:44 New!
Цитата · Личное сообщение · #6

morgot пишет:
странно то, что часть файлов дублируются (system32->syswow64), а часть (некоторые дрова, к примеру) все же нет.
А более странно, что на десятке все работает, а на семерке нет.

У вас ос то х64, стало быть х86 драйвера там не запустятся

А в целом UAC виртуализирует все енто дело, дровер на l называется который это делоет
Luac.sys хз не помню. Обычный дровер фильтр. А реестр не помню хто виртуализирует. Новерное ядро

Ранг: 131.5 (ветеран)
Статус: Участник

Создано: 9 апреля 2019 12:42 · Поправил: Alchemistry New!
Цитата · Личное сообщение · #7

morgot пишет:
Wow64DisableFsRedirect.. не помогает.

Как ты ее вызвал.
На 10 эта длл есть в двух вариантах.

В твоей 7 венде тоже должно быть в двух вариантах. Удаляй ка аверопарашу.

| Сообщение посчитали полезным: BlackCode



Ранг: 55.6 (постоянный)
Статус: Участник

Создано: 9 апреля 2019 13:53 · Поправил: BlackCode New!
Цитата · Личное сообщение · #8

Alchemistry пишет:
Удаляй ка аверопарашу.

Стопудово у некоторых одновременно 2 антивируса стоит.
Хук на хуке и хуком погоняет
Я юзал Wow64DisableFsRedirect и не раз, под 7 и 10 работает одинаково.

Ранг: 36.3 (посетитель)
Статус: Участник

Создано: 9 апреля 2019 20:59 New!
Цитата · Личное сообщение · #9

Спасибо всем за помощь. Проблему решила Wow64DisableFsRedirect.. , первый раз я ее, видимо, просто неправильно вызывал (передал LPVOID вместо PVOID, а может еще что, не помню). Теперь скопипастил вызов с мсдн, и заработало.
Правда, странно, что на десятке работает без этого, но это уже не так важно.

Ранг: 70.9 (постоянный)
Статус: Участник

Создано: 9 апреля 2019 21:12 New!
Цитата · Личное сообщение · #10

morgot пишет:
скопипастил

Совет: поменьше копипасти..


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 9 апреля 2019 21:26 New!
Цитата · Личное сообщение · #11

morgot

> Проблему решила Wow64DisableFsRedirect..

Я уже давно ничему не удивляюсь..

Ранг: 70.9 (постоянный)
Статус: Участник

Создано: 9 апреля 2019 22:20 New!
Цитата · Личное сообщение · #12

difexacaw пишет:
Я уже давно..

Братиш, ну не твоё..(Wow64DisableFsRedirect function == фу́нкция {женский род})
Переведу на твой(эльфийский) - ты не знаешь ни хрена..

Ранг: 141.4 (ветеран)
Статус: Участник

Создано: 9 апреля 2019 22:42 New!
Цитата · Личное сообщение · #13

morgot пишет:
передал LPVOID вместо PVOID


 eXeL@B —› Программирование —› Как открыть файл в system32? win7x64
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS