· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.UNIX —› [at&t] создание зашифрованной строки.

Посл.отвђт Сообщенiе


Дата: Июл 7, 2004 15:49:23

Приветствую!
У меня вопросик о том как с помощью xor`а зашифровать строку?
Давным-давно, во времена dos`а это можно было сделать так:
crypt db 'c'xor 03, 'r'xor 03, 'y'xor 03, 'p' xor 03, 't' xor 03, 'e' xor 03, 'd' xor 03,13,10
Подскажите пожалуйста, а как проделать аналогичное, но для FreeBSD и с at&t синтаксисом :)
Заранее спасибо за ответы :)
p.s. да, ссылки на дополнительную литературу всегда приветствуются!!!


Дата: Июл 7, 2004 16:41:36 · Поправил: Anonimka

Аналог твоей строчки для GNU Assembler -
crypt: .byte 'c'^3, 'r'^3 и т.д.

Upd: А вообще, руководство читать надо. Даже на форуме (UNIX->GAS FAQ) ссылки есть.


Дата: Июл 8, 2004 10:20:23

Большое спасибо за ответ. Все получилось :-)


Дата: Июл 8, 2004 20:15:49

А, вообще-то, советую не извращаться так, т. к. если объем текста большой - за... ну, того, а написать рядом маленький криптер и не знать проблем. Ну, а в рантайме строки шифровать, я думаю, ты и сам сумеешь...


Дата: Июл 8, 2004 23:37:35

Не знаю, как в AT&T, а в масме можно сделать макрос и шифровать целые строки. Для xor так точно можно.


Дата: Июл 9, 2004 10:25:24

2 diver - я толко учусь поэтому сам поку немогу написать маленький криптор. И примеров я тоже нигде не нашел.


Дата: Июл 9, 2004 21:01:54 · Поправил: diver

„2 diver - я толко учусь поэтому сам поку немогу написать маленький криптор. И примеров я тоже нигде не нашел.“
Ну, если тебя интересует сама процедура, то я могу привести маленький пример... Только я пишу на асмах intel'овского синтаксиса.
Вот, накатал примерчик... Наверное не очень оптимизированно, но все же.
crypt:
; в bl ключ
; в edi указатель на шифруемую строку
; строка должна содержать по крайней мере 1 символ, нет, вру - не должна :)
	mov esi, edi
loop_crypt:
	lodsb	; IA-32 SDM: Load byte at address DS:(E)SI into AL.
	test al, al
	jz near exit_crypt
	xor al, bl
	stosb	; IA-32 SDM: Store AL at address ES:(E)DI.
	inc edi
	inc esi
	jmp near loop_crypt
exit_crypt:
	retn

Написано на nasm. Хотя, тут пофиг...


Дата: Июл 9, 2004 21:13:24

Нечто похожее, но на масме:
; A fastcall subroutine
; EAX == input string
; EDX == length
; ---------------------
@@XOR:
   xor DWORD PTR [eax],XOR_MASK
   add eax,DWORD
   dec edx
   jnz @@XOR
   retn


Дата: Июл 12, 2004 11:33:38

Большое спасибо!
Буду рзбираться.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.110