С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
 
pyatrovich
0 / 0 / 0
Регистрация: 23.11.2017
Сообщений: 20
1

Установить скрытый файл, не меняя другие атрибуты (WIN32)

20.03.2018, 15:06. Просмотров 238. Ответов 4
Метки нет (Все метки)

Установить скрытый файл, не меняя другие атрибуты (WIN32). Сейчас программа работает след образом: файл из ReadOnly превращается в скрытый. Надо сделать так, чтобы файл превращался в скрытый, но при этом оставался ReadOnly. (возможно через GetFileAttributes).

Assembler
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
includelib  kernel32.lib
    extrn   GetCommandLineA:near
    extrn   ExitProcess:near
    extrn   GetStdHandle:near
    extrn   WriteConsoleA:near
    extrn   SetFileAttributesA:near
    extrn   GetFileAttributes:near
    extrn   CreateFileA:near
    extrn   WriteFile:near
    GetCommandLine              equ GetCommandLineA
    WriteConsole                equ WriteConsoleA
    SetFileAttributes           equ SetFileAttributesA
    GetFileAttributes           equ GetFileAttributesA
    CreateFile                  equ CreateFileA
    
    STD_OUTPUT_HANDLE           equ -11
    FILE_ATTRIBUTE_READ_ONLY    equ 01h
    FILE_ATTRIBUTE_HIDDEN       equ 02h
    GENERIC_READ                equ 80000000h
    GENERIC_WRITE               equ 40000000h
    OPEN_EXISTING               equ 3
 
.data
    real_num    dq 0
    StrFirstMsg db 'Set Hidden',10,13,0
    FileNamePtr dq ?
    StrFileName db '1.txt',0
    StrError    db 'Something wrong',10,13,0
    StrSuccess  db 'Success!',10,13,0
    numw        dq ?
    hcons       dq ?
    nameout     db 'CONOUT$',0
    
    
.code
start       proc
            sub     rsp, 72     
            mov     rcx, offset nameout
            mov     rdx,GENERIC_READ+GENERIC_WRITE
            mov     r8,0
            mov     r9,0
            mov     qword ptr [rsp+32],OPEN_EXISTING
            mov     qword ptr [rsp+40],0
            mov     qword ptr [rsp+48],0
            call    CreateFile
            cmp     rax,0
            je      Errorr
            mov     hcons,rax
            call    GetCommandLine
            
NextChar:   cmp     byte ptr[rax], 0
            je      StopSkip
            cmp     byte ptr[rax], ' '
            je      NextWord
            inc     rax
            jmp     NextChar
            
NextWord:   cmp     byte ptr[rax], 0
            je      StopSkip
            cmp     byte ptr[rax], ' '
            jne     StopSkip
            inc     rax
            jmp     NextWord
            
StopSkip:   mov     rcx, offset StrFileName
            mov     rcx, rax
            call    SetAttribute
            jmp     Exit
            
Errorr:     mov     rcx, hcons
            mov     rdx, offset StrError
            mov     r8, 17
            mov     r9, offset real_num
            mov     qword ptr [rsp+32],0
            call    WriteFile
            
Exit:       call    ExitProcess
            
            
            
SetAttribute proc
            sub     rsp, 40     ;выделение места в стеке
            mov     FileNamePtr, rcx
            mov     rcx, FileNamePtr
            mov     rdx, FILE_ATTRIBUTE_HIDDEN
            call    SetFileAttributes
            cmp     rax,0
            je      Wrong
            
            mov     rcx,hcons
            mov     rdx,offset StrSuccess
            mov     r8, 10
            mov     r9, offset real_num
            mov     qword ptr [rsp+32],0
            call    WriteFile
            jmp     ExitProc
            
Wrong:      mov     rcx, hcons
            mov     rdx, offset StrError
            mov     r8, 17
            mov     r9, offset real_num
            mov     qword ptr [rsp+32],0
            call    WriteFile
            
ExitProc:   add     rsp, 40
            ret
 
SetAttribute endp
start       endp
end
0
Вложения
Тип файла: zip 5.zip (676.4 Кб, 2 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2018, 15:06
Ответы с готовыми решениями:

Установить во всех файлах указанной папки свойство «скрытый»
Установить во всех файлах указанной папки свойство «скрытый». Masm WinAPI32....

Как, не меняя и не переставляя главный EXE-файл, при его запуске запускать другие программы?
Здравствуйте! Задачка такая. Есть у меня файл, скажем...

на флешке плодятся ярлыки и файлам ставятся атрибуты скрытый
на флешке плодятся ярлыки и файлам ставятся атрибуты скрытый

Win32 скрытый запуск
Есть консольное приложение Win32 сответственно при запуске открывается консоль...

Найти XML элемент по значению атрибута и изменить другие атрибуты
Здравствуйте, документ состоит из объектов с тегом <object>. Мне необходимо...

4
Ethereal
4858 / 1878 / 245
Регистрация: 17.02.2013
Сообщений: 2,795
20.03.2018, 16:44 2
Assembler
1
2
3
4
call GetFileAttributes
cmp rax, INVALID_FILE_ATTRIBUTES
je Wrong
or rax, FILE_ATTRIBUTE_HIDDEN
и атрибуты из регистра rax выставить. Видимо так.
Цитата Сообщение от pyatrovich Посмотреть сообщение
Установить скрытый файл, не меняя другие атрибуты (WIN32).
А регистры в исходнике от 64-х разрядного режима.
0
pyatrovich
0 / 0 / 0
Регистрация: 23.11.2017
Сообщений: 20
20.03.2018, 22:02  [ТС] 3
У меня почему - то не сработало, может я что - то неверно делаю. Могли бы вы вставить всё в код и скинуть заново.

Добавлено через 1 минуту
У меня почему - то не сработало, может я что - то неверно делаю. Могли бы вы вставить всё в код и скинуть заново.
0
Ethereal
4858 / 1878 / 245
Регистрация: 17.02.2013
Сообщений: 2,795
20.03.2018, 23:50 4
Так тебе надо для 32-разрядной винды или 64-разрядной ?

Добавлено через 19 минут
Для 32-разрядной вот такой фрагмент кода выставляет у файла атрибут "скрытый".
Код
		push	offset FileName
		call	GetFileAttributes
		or	eax, FILE_ATTRIBUTE_HIDDEN
		push	eax
		push	offset FileName
		call	SetFileAttributes
Что в этих шести строчках можно сделать неверно ?
0
Жирик
0 / 0 / 0
Регистрация: 21.03.2018
Сообщений: 5
21.03.2018, 12:52 5
он не знает куда их сунуть бедняжка
вместо вот этой парнушки адназначна! %)
Assembler
1
2
3
4
            mov     FileNamePtr, rcx
            mov     rcx, FileNamePtr
            mov     rdx, FILE_ATTRIBUTE_HIDDEN
            call    SetFileAttributes
0
21.03.2018, 12:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2018, 12:52

Установить скрытый checkbox в true
Здравствуйте, есть следующий код: <form action="" method="post"> ...

Как установить атрибуты Summary?
When you right click on file and select properties option, some files have...

Переписать файл в другой файл, меняя последовательность
Переписать файл в другой файл, меняя последовательность(Например, было privet,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru