HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 08.06.2008, 01:00
BlackSun
Познавший АНТИЧАТ
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме:
10046345

Репутация: 4589


По умолчанию

Цитата:
mov eax,str[ecx]
Че за .. ?)))

Чтобы прохорить байт:
mov eax, offset
xor byte ptr [eax], you_key
 
Ответить с цитированием

  #2  
Старый 08.06.2008, 03:06
zl0y
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме:
2869410

Репутация: 925


По умолчанию

procedure encrypt(str:pchar; len:integer;key:byte);
asm
pushad
mov ebx,str
mov ecx,len
mov eax,key
@cycle:
xor byte[ebx],al
inc eax
loop @cycle
popad
end;
 
Ответить с цитированием

  #3  
Старый 08.06.2008, 10:55
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Цитата:
Сообщение от zl0y  
procedure encrypt(strchar; len:integer;key:byte);
asm
pushad
mov ebx,str
mov ecx,len
mov eax,key
@cycle:
xor byte[ebx],al
inc eax
loop @cycle
popad
end;
По-моему, там какая-то ботва была передаваемыми параметрами... В делфе не помню, но в BP7.0 точно надо было пиать
типа так:
Код:
function ttt(a, b:integer);
var
  a1, b1: integer;
begin
  a1 := a;
  b1 := b;
  //а в асме уже с а1 и б1 работать...
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #4  
Старый 08.06.2008, 13:29
0verbreaK
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме:
379101

Репутация: 136
По умолчанию

Надо знать почему и как что возникает, попробуй скомпилировать пример своего кода:

Код:
 function encrypt(str:pchar; len,key:integer):pchar;assembler; 
  asm 
  mov ecx,0 
  @loop: 
  mov eax,str[ecx] 
  xor eax,key 
  mov str[ecx],eax 
  inc ecx 
  cmp ecx,len 
  jne @loop 
   
  end;
И потрасировать код посмотрев на значения регистров, отладка поможет тебе определить, что правильно, что нет, используй её в будущем, и когда ты научишся грамотно использовать отладчик, и работать в нем, ты сможешь находить ответы на вопросы, а также более серьезные вещи отлаживать.
Научись использовать отладчик. например: дельта-смещение, ну это уже вирусы...

А под ДОС (имхо) надо программировать, и отладчик поюзать типа TASM+TD, хорошо развивает, на примере: Калашникова - уроков 10-12 и все.

Последний раз редактировалось 0verbreaK; 08.06.2008 в 13:31..
 
Ответить с цитированием

  #5  
Старый 08.06.2008, 15:01
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Цитата:
Сообщение от 0verbreaK  
Надо знать почему и как что возникает, попробуй скомпилировать пример своего кода:

Код:
 function encrypt(str:pchar; len,key:integer):pchar;assembler; 
  asm 
  mov ecx,0 
  @loop: 
  mov eax,str[ecx] 
  xor eax,key 
  mov str[ecx],eax 
  inc ecx 
  cmp ecx,len 
  jne @loop 
   
  end;
И потрасировать код посмотрев на значения регистров, отладка поможет тебе определить, что правильно, что нет, используй её в будущем, и когда ты научишся грамотно использовать отладчик, и работать в нем, ты сможешь находить ответы на вопросы, а также более серьезные вещи отлаживать.
Научись использовать отладчик. например: дельта-смещение, ну это уже вирусы...

А под ДОС (имхо) надо программировать, и отладчик поюзать типа TASM+TD, хорошо развивает, на примере: Калашникова - уроков 10-12 и все.
а дельта-то тут причём??
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #6  
Старый 08.06.2008, 21:54
0verbreaK
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме:
379101

Репутация: 136
По умолчанию

Цитата:
а дельта-то тут причём??
Я кусок сообщения удалил, а это оставил.

PS. По твоему для дельты не нужен отладчик? Я имел ввиду, что для всего оссобенно для работы со стеком нужно использовать отладчик.


Код:
start:
          Call    _Delta
          
_Delta:
          sub dword ptr [esp], offset _Delta
 
Ответить с цитированием

  #7  
Старый 14.06.2008, 22:01
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

mov ah,09h
mov dx,mesag
int 21h
mov ah,07h
int 21h
mov ah,4ch
int 21h
int 20h

mesag db 'OMG$'

Мне выводит
♦V☺4♦4♦☺☺☺ ☻***************H♣ц*Т♣¶ ↑ Т♣**** ♣ ═!╦
┤ ║◄ ═!┤═!┤L═!═ OMG
где ошибка?
 
Ответить с цитированием

  #8  
Старый 14.06.2008, 22:28
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

lea dx,mesag


mesag db 'OMG$',0
 
Ответить с цитированием

  #9  
Старый 14.06.2008, 23:22
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

Цитата:
Сообщение от Delimiter  
lea dx,mesag


mesag db 'OMG$',0
или mov dx, offset mesag
 
Ответить с цитированием

  #10  
Старый 14.06.2008, 23:34
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

2 zo1b
угу! 8)))
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы для новичков! (faq) PEPSICOLA С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 92 14.05.2010 17:59
ОС с нуля z01b С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 36 03.07.2008 15:30



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.