Форум программистов, компьютерный форум, киберфорум
FASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/48: Рейтинг темы: голосов - 48, средняя оценка - 4.83
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071

Создать exe без сторонних программ

30.12.2019, 16:47. Показов 11039. Ответов 83

Студворк — интернет-сервис помощи студентам
Как создать exe без сторонних программ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2019, 16:47
Ответы с готовыми решениями:

Сканирование QR без использования сторонних программ
Здравствуйте форумчане, такой вопрос. как можно реализовать сканирование qr без сторонних программ? есть какие нибудь библиотеки?

Не грузит страницы + Запуск сторонних программ без ведома пользователя
При попытке входа на сайт ВКонтакте авторизация не проходит по причине бесконечной загрузки, это с браузера Mozilla, при заходе через...

Проигрывание mp3 без использования сторонних программ и АктивХ MediaPlayer
Добрый день, гуру экселя. Помогите решить проблему. На листе - в ячейке B6 - находится ссылка на mp3 файл. Как проиграть файл mp3...

83
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.01.2020, 13:25
Студворк — интернет-сервис помощи студентам
Вот ассемблер:
Assembler
1
2
3
4
5
6
7
8
use16
org 100h
    mov dx, hello
    mov ah, 9
    int 21h
    mov ax, 4C00h
    int 21h
hello db 'Hello, world!$'
А то машинные кода для процессора x86, работающего в 16-битном режиме.

Дизассмеблер: http://shell-storm.org/online/... isassembly (обрати внимание на выбранные 16 бит)
0
Эксперт .NET
 Аватар для Usaga
14745 / 9519 / 1364
Регистрация: 21.01.2016
Сообщений: 35,916
03.01.2020, 15:25
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
то есть это ассемблер?
Нет. Ассемблер - простой язык заменяющий опкоды машинных инструкций их мнемоническими именами. По ссылке это вы можете сами увидеть. Есть команда в человекочитаемом виде и её опкод понятный процессору.
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
09.01.2020, 16:38
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
Где можно
ознакомиться с набором инструкций
На сайте разработчика архитектуры процессора.
Если это что-то древнее, и разработчик ушёл из бизнеса, где-нибудь в Web-архивах обычно можно найти старую документацию.

В отладчике можно посмотреть работу инструкций на практике. Взять, например, одну из реализаций стандартной библиотеки Си и изучать какую-нибудь strend()
0
Заблокирован
09.01.2020, 17:53
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
как дизассемблировать .com?
В IDA.
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
08.02.2020, 13:58  [ТС]
Рыжий Лис, я не понимая логику struct.pack. Что значит >BB и всё эти цифры?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2020, 14:07
https://docs.python.org/3/libr... characters
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
08.02.2020, 14:18  [ТС]
Рыжий Лис, а что значат цифры?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2020, 14:26
Опкоды процессора.
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
08.02.2020, 14:51  [ТС]
Рыжий Лис, а какой сдвиг для 32-битного процессора, 64-битного?

Добавлено через 57 секунд
У 8-битного?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2020, 14:55
Разрядность? 16 бит и архитектура x86, выше сказано.
0
jump
 Аватар для I can
5006 / 4795 / 852
Регистрация: 13.04.2015
Сообщений: 10,042
08.02.2020, 15:03

Не по теме:

Рыжий Лис, Вас это забавляет ?

0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2020, 15:08
ОНО ЖИВОЕ!
Python
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
import re
import struct
 
t = '''\
; use16
org 100h
mov dx, hello
mov ah, 9
int 21h
mov ax, 4C00h
int 21h
hello db 'Hello, world!$'
'''
t = re.sub(r';.*?\n', '\n', t)
 
def toint(i):
    if i.endswith('h'):
        return int(i[:-1], 16)
    return int(i)
 
# машинные кода для процессора x86, работающего в 16-битном режиме.
result = bytearray()
offset = 0
counter = 0
refs = {}
defs = {}
 
# 1) компиляция
for numline, line in enumerate(t.split('\n')):
    line = line.strip()
    if not line:
        continue
    if line.startswith('org '):
        _, val = line.split()
        offset = toint(val)
        continue
    if line.startswith('mov '):
        _, r1, val = re.findall(r'(\w+)', line)
        if r1 == 'ah':
            opcode = struct.pack('<BB', 0xB4, toint(val))
        elif r1 == 'ax':
            opcode = struct.pack('<BH', 0xB8, toint(val))
        elif r1 == 'dx':
            try:
                val = toint(val)
                raise NotImplementedError(val)
            except ValueError:
                refs[counter + 1] = val
                opcode = struct.pack('<BH', 0xBA, 0)
        else:
            raise NotImplementedError(r1)
    elif line.startswith('int '):
        _, val = line.split()
        opcode = struct.pack('<BB', 0xCD, toint(val))
    else:
        if ' db ' in line:
            name, _, val = line.split(' ', 2)
            defs[name] = counter
            opcode = bytes(val[1:-1], encoding='ascii')
        else:
            raise NotImplementedError(line)
    result += opcode
    counter += len(opcode)
        
print(refs)
print(defs)
print(result)
 
# 2) линковка
for addr, name in refs.items():
    opcode = bytes(struct.pack('<H', defs[name] + offset))
    result[addr + 0] = opcode[0]
    result[addr + 1] = opcode[1]
 
print(result)
 
with open('hello4.com', 'wb') as f:
    f.write(result)
Добавлено через 15 секунд

Не по теме:

I can, да :)



Добавлено через 4 минуты
Code
1
2
3
4
{1: 'hello'}
{'hello': 12}
bytearray(b'\xba\x00\x00\xb4\t\xcd!\xb8\x00L\xcd!Hello, world!$')
bytearray(b'\xba\x0c\x01\xb4\t\xcd!\xb8\x00L\xcd!Hello, world!$')
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
08.02.2020, 16:35  [ТС]
Рыжий Лис, а что значит 3-ий аргумент pack?

Добавлено через 1 минуту
Как программно сгенерировать исполняемый файл с GUI?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2020, 16:40
Это не третий, а значение, которое будет упаковываться.
Python
1
2
3
struct.pack('B', 1)  # одно значение
struct.pack('BB', 1, 2)  # 2
struct.pack('BBB', 1, 2, 3)  # 3
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
Как программно сгенерировать исполняемый файл с GUI?
Компилятор пиши! Ну серьёзно, какой ответ ты рассчитываешь услышать?

Между прочим, gui прекрасно создаётся и на ассемблере: Простейшее окно с кнопкой
Кликните здесь для просмотра всего текста
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
.386
.model flat,stdcall
option casemap:none
; #########################################################################
 
;======================
;  Библиотеки и файлы
;======================
include  \masm32\include\windows.inc
include  \masm32\include\user32.inc
include  \masm32\include\kernel32.inc
include  \masm32\include\comctl32.inc
include  \masm32\include\shell32.inc    ; Добавление файла shell32.inc
include  \masm32\include\ole32.inc      ; Добавление файла ole32.inc
include  \MASM32\INCLUDE\comdlg32.inc
include  \MASM32\INCLUDE\masm32.inc
 
includelib  \masm32\lib\comctl32.lib
includelib  \masm32\lib\user32.lib
includelib  \masm32\lib\kernel32.lib
includelib  \masm32\lib\shell32.lib     ; Добавление библиотеки shell32
includelib  \masm32\lib\ole32.lib       ; Добавление библиотеки ole32
includelib  \MASM32\LIB\comdlg32.lib
includelib  \MASM32\LIB\masm32.lib
; #########################################################################
 
;=====================
;  Прототипы функций
;=====================
WinMain proto :DWORD,:DWORD,:DWORD
WinProc proto :DWORD,:DWORD,:DWORD,:DWORD
;ShowFileInfo  proto :DWORD,:DWORD
;FillFileInfo  proto :DWORD
;InsertColumn  proto
;_BrowseFolderCallBack1 proto :DWORD,:DWORD,:DWORD,:DWORD
func1 proto :HWND
func2 proto
; #########################################################################
 
_Year equ 2014
_Month equ 1
_Day equ 1
;========================
;  Идентификаторы кнопок
;========================
bn1_id equ 501
bn2_id equ 502
; #########################################################################
 
;=============
;  Константы
;=============
.const
    szAll db "*.*",0
    empty db " ",0
    Heading1  db "Название файла",0
    Heading2  db "Атрибуты",0
    ListViewClassName  db "SysListView32",0
    szListBox db "LISTBOX",0
    szButton db "BUTTON",0
    szEdit db "EDIT",0
    szStatic db "STATIC",0
    szBn1 db "Обзор...",0
    szBn2 db "Сделать всё хорошо",0
    szClassName db "Class1",0
    szWindowName db "lab4",0
    mescopy db "Файл скопирован",0
    mesmove db "Файл перемещён",0
    format db "Год создания: %d",0
; #########################################################################
 
;===========
;  Макросы
;===========
RGB macro red,green,blue
    xor  eax,eax
    mov  ah,blue
    shl  eax,8
    mov  ah,green
    mov  al,red
endm
m2m MACRO M1, M2
  push M2
  pop M1
ENDM
; #########################################################################
 
;==========
;  Данные
;==========
.data
    szArc db 4 dup(?),0  ;Аттрибут файла
    szFill db "----",0   ;Строка, которая служит за основу для аттрибута
    szSlashB  db "\",0
    bri  BROWSEINFO <>   ; Структура для обзора папок
; неинициализированные переменные:
    hInstance HINSTANCE ? ; идентификатор нашего процесса
    CommandLine LPSTR ? ; командная строка
    hEdit1 HWND ? ; дескриптор окна текстового поля
    hEdit2 HWND ? ; дескриптор окна текстового поля
    hList HWND ? ; дескриптор окна списка
    lpLstBox DWORD ? ; указатель на предыдущую функцию ListBoxProc
    szBuffer db 128 dup(?) ; текстовый буфер
    szFile db 260 dup(?) ; буфер для имени файла
    wYear dw ?
    wMonth dw ?
    wDay dw ?
; #########################################################################
 
;=======
;  Код
;=======
.code
start:
    invoke GetModuleHandle, NULL ; получение идентификатора процесса
    mov hInstance, eax
    invoke GetCommandLine ; получение указателя командной строки
    mov CommandLine, eax
    invoke WinMain,hInstance,NULL,CommandLine ; вызов основной функции
    invoke ExitProcess,eax ; выход из программы (с кодом возврата в eax)
; #########################################################################
 
;=====================
;  Процедура WinMain
;=====================
WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR
    ; локальные переменные:
    LOCAL wc:WNDCLASSEX ; класс окна
    LOCAL msg:MSG       ; структура сообщения
    LOCAL hwnd:HWND     ; дескриптор окна
    ;=================================================
    ; Заполнение и регистрация класса окна WNDCLASSEX
    ;=================================================
    mov wc.cbSize,SIZEOF WNDCLASSEX ; размер структуры 4*12 байтов
    ; стиль окна, предусматривающий перерисовку
    ; при вертикальном и горизонтальном движении
    mov wc.style, CS_HREDRAW or CS_VREDRAW
    mov wc.lpfnWndProc, OFFSET WndProc ; функция-обработчик событий окна
    mov wc.cbClsExtra,NULL ; число дополнительных байтов
    mov wc.cbWndExtra,NULL ; число дополнительных байтов
    push hInst
    pop wc.hInstance ; идентификатор нашего процесса
    mov wc.hbrBackground,COLOR_BTNFACE+1 ; идентификатор кисти (или цвет фона+1)
    mov wc.lpszMenuName,NULL ; ресурс с основным меню
    mov wc.lpszClassName,OFFSET szClassName ; имя класса
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov wc.hIcon,eax ; идентификатор иконки
    mov wc.hIconSm,NULL ; идентификатор маленькой иконки (должен быть 0)
    invoke LoadCursor,NULL,IDC_ARROW
    mov wc.hCursor,eax ; идентификатор курсора
    invoke RegisterClassEx, addr wc ; регистрация класса
    ;===============
    ; Создание окна
    ;===============
    ; Параметры функции CreateWindowEx:
    ; 1. дополнительный стиль (0 - по умолчанию)
    ; 2. наш зарегистрированный класс
    ; 3. заголовок окна
    ; 4. стиль окна (стандартное изменяемое по размеру окно
    ; с системными кнопками)
    ; 5. x-координата (CW_USEDEFAULT - по умолчанию)
    ; 6. y-координата (по умолчанию)
    ; 7. ширина окна
    ; 8. высота окна
    ; 9. идентификатор окна-предка
    ; 10. идентификатор меню или окна-потомка
    ; 11. идентификатор процесса, который будет получать сообщения от окна
    ; 12. адрес структуры CREATESTRUCT (не используется)
    invoke CreateWindowEx, 0, ADDR szClassName, ADDR szWindowName, WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, 500, 400, 0, 0, hInst, 0
    mov hwnd,eax
    ;==================
    ; Отображение окна
    ;==================
    invoke ShowWindow,hwnd,SW_SHOWNORMAL ; показать окно
    invoke UpdateWindow,hwnd ; и послать ему сообщение WM_PAINT
    ;==========================
    ; Цикл обработки сообщений
    ;==========================
    message_loop:
        invoke GetMessage,ADDR msg,0,0,0 ; получить сообщение от окна
        test eax,eax ; если получено WM_QUIT, GetMessage вернет ноль
        jz exit_msg_loop ; выйти
        ; иначе - преобразовать сообщения типа WM_KEYUP
        ; в сообщения типа WM_CHAR
        invoke TranslateMessage,ADDR msg
        invoke DispatchMessage,ADDR msg ; и послать их оконной функции
        jmp short message_loop ; продолжить цикл
    exit_msg_loop:
    mov eax,msg.wParam ; код возврата
    ret
WinMain endp
; #########################################################################
 
;===============================
;  Главная оконная процедура
;===============================
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    LOCAL szbuffer1[256]:BYTE
    .IF uMsg == WM_DESTROY
        invoke PostQuitMessage,0 ; послать WM_QUIT
    .ELSEIF uMsg == WM_CREATE
        ;invoke  CreateWindowEx, NULL, addr ListViewClassName, NULL,
        ;   LVS_REPORT+WS_CHILD+WS_VISIBLE,13,73,450,264,hWnd, NULL, hInstance, NULL
        ;mov  hList, eax
        ;invoke  InsertColumn
        RGB  0,0,0
        invoke  SendMessage,hList,LVM_SETTEXTCOLOR,0,eax
        RGB  255,255,255
        invoke  SendMessage,hList,LVM_SETBKCOLOR,0,eax
        RGB  255,255,255
        invoke  SendMessage,hList,LVM_SETTEXTBKCOLOR,0,eax
        ;===============================
        ; Создание текстового поля Edit
        ;===============================
        ; ES_AUTOHSCROLL - автоматический сдвиг символов влево
        ; при нехватке места для текста,
        ; ES_NOHIDESEL - отключает скрытие выделения при
        ; переходе к другому элементу управления
        ; Текстовое поле 1
        invoke CreateWindowEx,0,ADDR szEdit,0,
            WS_BORDER or WS_VISIBLE or WS_CHILDWINDOW or \
            ES_AUTOHSCROLL or ES_NOHIDESEL,15,15,400,20,
            hWnd, 0,hInstance,0
        mov hEdit1,eax ; дескриптор окна Edit
        ; Текстовое поле 2
        ;~ invoke CreateWindowEx,0,ADDR szEdit,0,
            ;~ WS_BORDER or WS_VISIBLE or WS_CHILDWINDOW or \
            ;~ ES_AUTOHSCROLL or ES_NOHIDESEL,132,45,350,20,
            ;~ hWnd, 0,hInstance,0
        ;~ mov hEdit2,eax ; дескриптор окна Edit
        ;=================
        ; Создание кнопок
        ;=================
        ; Кнопка 1
        invoke CreateWindowEx,0, ADDR szButton,ADDR szBn1,
            WS_CHILD or WS_VISIBLE,420,15,60,20,hWnd,
            bn1_id, hInstance,0
        ; Кнопка 2
        ;~ invoke CreateWindowEx,0, ADDR szButton,ADDR szBn2,
            ;~ WS_CHILD or WS_VISIBLE,15,40,200,20,hWnd,
            ;~ bn2_id, hInstance,0  
    .ELSEIF uMsg == WM_COMMAND
        .IF wParam == bn1_id ;нажата кнопка
            invoke func1, hWnd
        .ELSEIF wParam == bn2_id
            invoke func2
                ;~ invoke SendMessage,hList,LVM_DELETEALLITEMS,0,0; Очищаем содержимое ListBox
                ;~ invoke  SendMessage,hEdit1,WM_GETTEXT,sizeof szbuffer1,addr szbuffer1
                ;~ invoke  lstrcat,addr szbuffer1,addr szSlashB
                ;~ invoke FillFileInfo,addr szbuffer1
        .ENDIF
    .ELSE
        ; для остальных сообщений - обработчик по умолчанию
        invoke DefWindowProc,hWnd,uMsg,wParam,lParam
        ret
    .ENDIF
    xor eax,eax
    ret
WndProc endp
; ######################################################################
 
;==================================================
;  Процедура вызова диалогового окна
;==================================================
func1 proc hWnd:HWND ; Процедура чего-то там...
    LOCAL ofs:OPENFILENAME  ;структура стандартного диалогового окна
    LOCAL t:DWORD;:FILETIME
    LOCAL tt:DWORD;FILETIME
    LOCAL ttt:DWORD;FILETIME
    LOCAL time:SYSTEMTIME  ;время создания файла
    LOCAL time2:SYSTEMTIME  ;время создания файла
    LOCAL buffer[100]:BYTE
    invoke RtlZeroMemory, Addr ofs, SizeOf ofs
    mov ofs.lStructSize,sizeof ofs
    push hWnd
    pop ofs.hwndOwner
    mov ofs.nMaxFile, sizeof szFile
    mov eax, offset szFile
    mov ofs.lpstrFile,eax     
    ;mov ofs.lpstrFileTitle,NULL
    ;mov ofs.nMaxFileTitle,NULL
    ;mov ofs.lpstrInitialDir,NULL
    mov ofs.Flags,OFN_PATHMUSTEXIST or OFN_FILEMUSTEXIST
    invoke GetOpenFileName,addr ofs
    invoke SendMessage,hEdit1,WM_SETTEXT,0,addr szFile
    ;xnj gbcfkjcm c nheljv ljk;yj gjybvfnmcz c nheljv)
    invoke CreateFile, addr szFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
    ;в eax лежит дескриптор
    invoke GetFileTime, eax, t, tt, ttt
    invoke FileTimeToSystemTime, addr t, addr time
    ;invoke SystemTimeToTzSpecificLocalTime, NULL, addr time, addr time2
        
    invoke CloseHandle, eax 
    ;~ m2m wYear, time.wYear
    ;~ m2m wMonth, time.wMonth
    ;~ m2m wDay, time.wDay
    invoke wsprintf, addr buffer, addr format, addr time.wYear
    invoke MessageBox, 0, addr buffer, addr szFile, MB_OK
    ret
 
    .if time.wYear<_Year
        .if time.wMonth<_Month
            .if time.wDay<_Day
                invoke MessageBox, 0, addr mesmove, addr szFile, MB_OK
                ret
            .endif
        .endif
    .endif
    invoke MessageBox, 0, addr mescopy, addr szFile, MB_OK
    ret 
func1 endp 
; ######################################################################
 
func2 proc
    ;~ .if wYear<_wYear && wMonth<_wMonth && wDay<_wDay
        ;~ invoke MessageBox, 0, addr mesmove, addr szFile, MB_OK
    ;~ .else
        ;~ invoke MessageBox, 0, addr mescopy, addr szFile, MB_OK
    ;~ .endif
    ;~ ret 
func2 endp
 
 
end start
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
08.02.2020, 17:02  [ТС]
Рыжий Лис, а как реализовать задержку в милисекундах?
И ввод с клавиатуры?
И переменные?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2020, 17:06
Ты для начала определись с языком, на котором пишешь, а потом создавай темы в отдельном разделе форума.

Для масма переменные вот:
Assembler
1
2
3
4
5
6
7
.data
    szArc db 4 dup(?),0  ;Аттрибут файла
    szFill db "----",0   ;Строка, которая служит за основу для аттрибута
    szSlashB  db "\",0
    bri  BROWSEINFO <>   ; Структура для обзора папок
; неинициализированные переменные:
    hInstance HINSTANCE ? ; идентификатор нашего процесса
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
08.02.2020, 17:25  [ТС]
Рыжий Лис, а как с помощью struct.pack записать
Assembler
1
2
push 1000
call Sleep
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2020, 17:38
Для fasm:
Assembler
1
2
3
    mov dx, 5000
    mov ah, 86h
    int 15h
Машинный код сам ищи:
Code
1
2
3
4
5
BA 13 01 B4 09 CD 21 BA  ��   �!�
88 13 B4 86 CD 15 B8 00  �����
4C CD 21 48 65 6C 6C 6F  L�!Hello
2C 20 77 6F 72 6C 64 21  , world!
24                       $
Добавлено через 2 минуты
http://www.codenet.ru/progr/dos/int_0014.php

86H Ждать. Циклит с разрешенными прерываниями до истечения интервала времени.
вход: CX,DX = сколько микросекунд ждать до возврата к пользователю
0
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
08.02.2020, 17:46  [ТС]
Рыжий Лис, где указывается время задержки? Где 5000?

Добавлено через 3 минуты
Задержки не происходит. Вод код записи:
Python
1
2
3
4
5
import struct
cmd = open('test.exe','wb')
cmd.write(struct.pack('<BH', 0xBA, 5000))
cmd.write(struct.pack('<BB', 0xB4, int('86', 16)))
cmd.write(struct.pack('<BB', 0xCD, int('15', 16)))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2020, 17:47
Я тебе документацию процитировал. В двух регистрах: cx и dx.

Компилировать fasm, запускать в dosbox. Ибо даже приложения в win XP уже не имели доступ к железу. А год вызывает функции биоса.

Добавлено через 28 секунд
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
test.exe
COM файл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2020, 17:47

Отправить данные из Label и TextBox на E-mail без сторонних программ
Всем привет! Перечитал кучу схожих тем и не смог разобраться как реализовать. В программировании я новичок, очень много не знаю. ...

Подключение к MySql по SSH-тоннелю без использования сторонних программ
Приветствую! У nic.ru имеется удаленный доступ к sql только по ssh: Вот текст: Удаленный доступ к базе данных MySQL ...

Загрузка сторонних программ без ведома пользователя, некорректная работа браузера Chrom
Здравствуйте! Пожалуйста помогите очистить систему в ноутбуке от вирусов? Постоянно подгружаются левые программы, которые пока в принципе...

Как направить весь траффик только через VPN без сторонних программ?
Подскажите, если не сложно. Пробовал сделать через cmd: route delete 0.0.0.0 mask 0.0.0.0 route -p 55.55.55.55 mask...

Возможна ли отправка письма с использованием bat-файла без использования сторонних программ?
Добрый день, возможна отправка письма без сторонних программ? в bat через bat файл?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru