Форум программистов, компьютерный форум, киберфорум
FASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/33: Рейтинг темы: голосов - 33, средняя оценка - 4.76
41 / 37 / 15
Регистрация: 22.03.2013
Сообщений: 293
FASM

Шифрование методом XOR (расшифровать текст из файла)

10.09.2013, 20:02. Показов 7037. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Получил задание:Дан бинарный файл в него записан зашифрованный по xor текст.
В машинных кодах написать прогу, которая будет открывать этот файл, начиная с определенной строки считывать зашифрованное сообщение и расшифровать его. Можете привести такой файл на ассемблере? Или мб привести какой-нить пример в машинных кодах. Ибо полный профан,а сроки поджимают.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2013, 20:02
Ответы с готовыми решениями:

Шифрование файла методом XOR
Помогите с исходником для шифрования файла методом xor. Заранее благодарен.

Шифрование любого файла методом XOR
Подскажите пожалуйста, я никак не могу понять, как сделать так, чтобы зашифровать файл методом XOR по ключу, который вводиться с...

Шифрование методом XOR
Всем привет. Доделываю курсовую и застопорился((( что нужно: сделать программу для шифрации методом ХОР на андроид(java) и Win(c++) с...

3
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
10.09.2013, 21:57
Допиливайте: https://www.cyberforum.ru/asse... 36829.html
И да, rep xorb пока не работает.
0
41 / 37 / 15
Регистрация: 22.03.2013
Сообщений: 293
11.09.2013, 15:58  [ТС]
Собственно вот исходник Открываю файл, считываю в буфер содержимое.
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
use16                       ;Генерировать 16-битный код
org 100h                    ;Программа начинается с адреса 100h
    jmp start               ;Перепрыгнуть данные
;-------------------------------------------------------------------------------
; Данные
file_name db 'injkode.bin',0
s_error   db 'Error!',13,10,'$'
s_pak     db 'exit...$'
buffer    rb 81             ;80 + 1 байт для символа конца строки '$'
 
handle    rw 1              ;Дескриптор файла
endline   db 13,10,'$'
hoq db 19
;-------------------------------------------------------------------------------
; Код
start:
    mov ah,3Dh              ;Функция DOS 3Dh (открытие файла)
    xor al,al               ;Режим открытия - только чтение
    mov dx,file_name        ;Имя файла
    xor cx,cx               ;Нет атрибутов - обычный файл
    int 21h                 ;Обращение к функции DOS
    jnc @F                  ;Если нет ошибки, то продолжаем
    call error_msg          ;Иначе вывод сообщения об ошибке
    jmp exit                ;Выход из программы
    
    
@@: mov [handle],ax         ;Сохранение дескриптора файла
 
    mov bx,ax               ;Дескриптор файла
    mov ah,3Fh              ;Функция DOS 3Fh (чтение из файла)
    mov dx,buffer           ;Адрес буфера для данных
    mov cx,80               ;Максимальное кол-во читаемых байтов
    int 21h                 ;Обращение к функции DOS
    jnc @F                  ;Если нет ошибки, то продолжаем
    call error_msg          ;Вывод сообщения об ошибке
    jmp close_file          ;Закрыть файл и выйти из программы
 
@@: mov bx,buffer
    add bx,ax               ;В AX количество прочитанных байтов
    mov byte[bx],'$'        ;Добавление символа '$'
 
;КУДА-ТО СЮДА НАДО ЗАСУНУТЬ ШИФРОВАНИЕ.
    ;int 21h                 ;Вывод содержимого файла             
    mov dx,endline
    int 21h
 
close_file:
    mov ah,3Eh              ;Функция DOS 3Eh (закрытие файла)
    mov bx,[handle]         ;Дескриптор
    int 21h                 ;Обращение к функции DOS
    jnc exit                ;Если нет ошибки, то выход из программы
    call error_msg          ;Вывод сообщения об ошибке
 
exit:
    mov ah,9
    mov dx,s_pak
    int 21h                 ;Вывод строки 'Press any key...'
    mov ah,8                ;\
    int 21h                 ;/ Ввод символа без эха
    mov ax,4C00h            ;\
    int 21h                 ;/ Завершение программы
 
;-------------------------------------------------------------------------------
; Процедура вывода сообщения об ошибке
error_msg:
    mov ah,9
    mov dx,s_error
    int 21h                 ;Вывод сообщения об ошибке
    ret
Подсобите исходничком, с меня пиво-_^. Ключ число на которое нужно сдвинуть.
0
41 / 37 / 15
Регистрация: 22.03.2013
Сообщений: 293
13.09.2013, 21:30  [ТС]
Лучший ответ Сообщение было отмечено ФедосеевПавел как решение

Решение

Мб кому-то пригодится
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
use16
org 100h
mov ah,3Dh              ;Функция DOS 3Dh (открытие файла)
xor al,al               ;Режим открытия - только чтение
    mov dx,file_name        ;Имя файла
    xor cx,cx               ;Нет атрибутов - обычный файл
    int 21h                 ;Обращение к функции DOS
    jnc @F                  ;Если нет ошибки, то продолжаем
    call error_msg          ;Иначе вывод сообщения об ошибке
    jmp exit 
@@: mov [handle],ax         ;Сохранение дескриптора файла
 
    mov bx,ax               ;Дескриптор файла
    mov ah,3Fh              ;Функция DOS 3Fh (чтение из файла)
    mov dx,text           ;Адрес буфера для данных
    mov cx,80               ;Максимальное кол-во читаемых байтов
    int 21h                 ;Обращение к функции DOS
    jnc @F                  ;Если нет ошибки, то продолжаем
    call error_msg          ;Вывод сообщения об ошибке
    jmp close_file         
@@: mov bx,text
    add bx,ax               ;В AX количество прочитанных байтов
    mov byte[bx],'$'        ;Добавление символа '$'
      
 
mov ah,9
mov dx,text
int 21h          ;выводим исходный текст
mov ah,9
mov dx,endline
int 21h
 
mov  si,text
mov  di,result
call crypt       ;кодируем текст и выводим на экран
  
xor ax,ax
int 16h          ;ожидание нажатия клавиши
ret              ;выход
EOF:
        mov ah,3Eh
        int 21h
;процедура шифрования
crypt:
  ;mov ecx,keylen
  @@:lodsb                     ;берём исходный символ
     xor   al,[key] ;шифруем ключом
     stosb                     ;сохраняем результат
     cmp   di,result+textlen
  loopne @b                    ;если ключ или текст не закончился - продолжаем
  jne crypt                    ;если ключ закончился, а текст нет - просматриваем ключ сначала
 
  mov ah,9
  mov dx,result
  int 21h                      ;выводим результат на экран
ret
close_file:
    mov ah,3Eh              ;Функция DOS 3Eh (закрытие файла)
    mov bx,[handle]         ;Дескриптор
    int 21h                 ;Обращение к функции DOS
    jnc exit                ;Если нет ошибки, то выход из программы
    call error_msg          ;Вывод сообщения об ошибке
 
exit:
    mov ah,9
    mov dx,s_pak
    int 21h                 ;Вывод строки 'Press any key...'
    mov ah,8                ;\
    int 21h                 ;/ Ввод символа без эха
    mov ax,4C00h            ;\
    int 21h                 ;/ Завершение программы
 
;-------------------------------------------------------------------------------
; Процедура вывода сообщения об ошибке
error_msg:
    mov ah,9
    mov dx,s_error
    int 21h                 ;Вывод сообщения об ошибке
    ret
;--------------------
s_error   db 'Error!',13,10,'$'
s_pak     db 'Press any key...$'
endline   db 13,10,'$'
handle    rw 1
text    rb 19  ;исходный текст
textlen=19         ;длина текста
        db 13,10,'$'   ;переход на новую строку и символ завершения строки
key     db 2      ;ключ шифрования
keylen =1          ;длина ключа
result  rb textlen     ;результат
        db 13,10,'$'   ;переход на новую строку и символ завершения строки
_err:   int 20h
 
file_name   db  "injcode.bin",0
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.09.2013, 21:30
Помогаю со студенческими работами здесь

Шифрование методом xor
Написал простую программу для шифрования текста из файла ключом введенным с клавиатуры, зашифрованная строка записывается в файл, при...

Шифрование методом Xor
Написать консольное приложение, реализующее один из простейших методов шифрования/дешифрования произвольного файла с использованием ключа...

Шифрование методом гаммирования (XOR)
Добрый вечер. Нужна помощь с правильным выводом результат кода при шифровании. В общем, ввожу открытый текст: abc Ввожу ключ: def ...

Шифрование перестановкой - расшифровать текст
program Project2; {$APPTYPE CONSOLE} Uses SysUtils,windows; Var n,kolsimvolov,i,j,akey : Integer; text,textkey,key...

XOR шифрование с сохранением файла
Здраствуйте уважаемые форумчане. У меня встала задача в следующем, мне нужно чтобы при вводе текста в поле и нажатию кнопки генерировать,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru