Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Возможно ли из приложения x86 попасть в директорию System32 на операционной системе (x64)

24.08.2014, 17:52. Показов 2003. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня прошу подсказки
Возможно ли из приложения написанного под 32 bit платформу попасть в директорию System32 на операционной системе (x64)
При попытке попасть в
Code
1
C:\Windows\System32
происходит перенаправление в
Code
1
C:\Windows\SysWOW64
Среда разработки С++ Builder 6

Нашел информацию о Wow64DisableWow64FsRedirection
но как то не получилось использовать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.08.2014, 17:52
Ответы с готовыми решениями:

Артефакты в видео в операционной системе WInodws 10 x64 LSTB
UN2uKHp_0fU Система :AMD Ryzen 3 2200G Win 10 x64 LTSB В Windows 10 pro таких проблем нет. Как решить?

Возможно ли подключение x86 клиентов к WCF (x64)
Пожалуйста, помогите решить прроблему: Имеется WCF service (.NET4.5), который использует Native (С++) DLL-ки. Из-за этих DLL-ок...

Миграция домена 2003 x86 > 2008 x64 через бекап возможно?
Вообщем в конторе второго сервака нет, нужно переехать, а клиенские компы перезаводить пока желания нет.

12
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 12
24.08.2014, 18:10
Цитата Сообщение от Ddv122 Посмотреть сообщение
как то не получилось использовать
В чем это "не получилось" выражается?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
24.08.2014, 18:21  [ТС]
UI,
Не вышло переписать это на с++, других способов вызова Wow64Disable не нашёл...


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure ExtWow64DisableWow64FsRedirection;
var
  dll : Hwnd;
  func : procedure ; stdcall;
begin
  dll := LoadLibrary('Kernel32.dll');
  @func := GetProcAddress(dll, 'Wow64DisableWow64FsRedirection');
  func;
  FreeLibrary(dll);
end;
 
procedure ExtWow64EnableWow64FsRedirection;
var
  dll : Hwnd;
  func : procedure ; stdcall;
begin
  dll := LoadLibrary('Kernel32.dll');
  @func := GetProcAddress(dll, 'Wow64EnableWow64FsRedirection');
  func;
  FreeLibrary(dll);
end;
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.08.2014, 19:17
http://msdn.microsoft.com/en-u... s.85).aspx

Library Kernel32.lib
1
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
29.08.2014, 12:43
Цитата Сообщение от Ddv122 Посмотреть сообщение
Не вышло переписать это на с++,
Ну и черт с ним.
Сделай эти функции в отдельном pas файле и прицепи его к проекту
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
29.08.2014, 13:08  [ТС]
Avazart,
Просто в Kernel32.lib ( BCB6) - нет этих функций и наверно придется грузить из Kernel32.dll
Code
1
 E2268 Call to undefined function 'Wow64DisableWow64FsRedirection'
krv, спасибо - хорошая мысль
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2014, 13:58
Цитата Сообщение от Ddv122 Посмотреть сообщение
Просто в Kernel32.lib ( BCB6) - нет этих функций и наверно придется грузить из Kernel32.dll
1. Попытаться сделать свой Kernel32.lib с помощью implib для Kernel32.dll
2. Еще раз прочитать Dynamic-Link Library: Теория + Практика и все таки сделать явную загрузку.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
29.08.2014, 14:36  [ТС]
Avazart,
конвертировал я lib через
ImpLib-1.8 (dll2def.exe) + FASM implib.inc
потом привел к виду buildera через coff2omf
подключил к проекту
но ошибка одна и та же E2268 Call to undefined function 'Wow64DisableWow64FsRedirection'
Придется читать про Dynamic-Link Library
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2014, 14:53
Code
1
implib Kernel32-bcb.lib Kernel32.dll
Не сработало?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
29.08.2014, 15:09  [ТС]
Avazart, сработало
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#pragma comment(lib,"Kernel32-bcb.lib")
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 HANDLE hFile = INVALID_HANDLE_VALUE;
    PVOID OldValue = NULL;
 
    //  Disable redirection immediately prior to the native API
    //  function call.
    if( Wow64DisableWow64FsRedirection(&OldValue) )
    {
        //  Any function calls in this block of code should be as concise
        //  and as simple as possible to avoid unintended results.
        hFile = CreateFile(TEXT("C:\\Windows\\System32\\Notepad.exe"),
            GENERIC_READ,
            FILE_SHARE_READ,
            NULL,
            OPEN_EXISTING,
            FILE_ATTRIBUTE_NORMAL,
            NULL);
 
        //  Immediately re-enable redirection. Note that any resources
        //  associated with OldValue are cleaned up by this call.
        if ( FALSE == Wow64RevertWow64FsRedirection(OldValue) )
        {
            //  Failure to re-enable redirection should be considered
            //  a criticial failure and execution aborted.
            return;
        }
    }
 
    //  The handle, if valid, now can be used as usual, and without
    //  leaving redirection disabled.
    if( INVALID_HANDLE_VALUE != hFile )
    {
        // Use the file handle
 
}  }
//---------------------------------------------------------------------------
Но все равно
Code
1
[C++ Error] Unit1.cpp(28): E2268 Call to undefined function 'Wow64DisableWow64FsRedirection'
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2014, 15:34
Убедись что она есть в хедере.

Ну и стоило обратить внимание на
C++
1
2
3
4
5
6
7
8
9
10
11
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0501
 
#ifdef NTDDI_VERSION
#undef NTDDI_VERSION
#endif
#define NTDDI_VERSION 0x05010000
 
#include <Windows.h>
http://msdn.microsoft.com/en-u... 85%29.aspx
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
29.08.2014, 16:10  [ТС]
Avazart,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//---------------------------------------------------------------------------
#include <vcl.h>
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0501
#ifdef NTDDI_VERSION
#undef NTDDI_VERSION
#endif
#define NTDDI_VERSION 0x05010000
#include <Windows.h>
#pragma comment(lib,"Kernel32-bcb.lib")
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
BOOL WINAPI Wow64DisableWow64FsRedirection(
    PVOID *OldValue);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    HANDLE hFile = INVALID_HANDLE_VALUE;
    PVOID OldValue = NULL;
    if( Wow64DisableWow64FsRedirection(&OldValue) )
    {
        hFile = CreateFile(TEXT("C:\\Windows\\System32\\1112.exe"),
            GENERIC_READ,
            FILE_SHARE_READ,
            NULL,
            OPEN_EXISTING,
            FILE_ATTRIBUTE_NORMAL,
            NULL);
   }
 }
//---------------------------------------------------------------------------
Code
1
[Linker Error] Unresolved external '__stdcall Wow64DisableWow64FsRedirection(void * *)' referenced from C:\USERS\DDV122\DESKTOP\11\UNIT1.OBJ

Я вот что подумал -
мне функция эта нужна что бы удалить пару файлов
Проект написан на С++ Builder 6 (x32)
А если я написать dll на Rad XE с функцией Wow64DisableWow64FsRedirection и подключить к моему проекту, будет ли работать ?)
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.08.2014, 15:14
Поищи эту lib в Rad XE и попробуй ее прилинковать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2014, 15:14
Помогаю со студенческими работами здесь

Проект установки приложения для с выбором целевой платформы x86 или x64
Здравствуйте. Microsoft Visual Studio Community 2017 VisualStudio.15.Release/15.3.5+26730.16 Microsoft Visual C# 2017 В...

Возможно ли поставить Windows 7 x86 and Windows x64 одновременно
А возможно поставить Windows 7 x86 and Windows x64 одновременно?

User32.dll на Win x64 - это x86-библиотека, x64 или. и то и другое одновременно?
В проектах .NET функции из нее нормально импортируются при любой разрядности проекта - как x86, так и x64. Как написать такую библиотеку?

Я переустановил винду и вместо x64 поставил x86! А теперь не могу поставить x64 обратно(((
Я переустановил винду и вместо x64 поставил x86! А теперь не могу поставить x64 обратно((( Пишет что &quot;Версия этого файла несовместима...

X86 или x64 под Windows 10/x64
Только начинаю разбираться с написанием драйверов и как обычно уже миллион вопросов. Установлена Windows 10 x64/VS2015/WDK10. Такие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru