Сейчас на форуме: (+8 невидимых)

 eXeL@B —› Крэки, обсуждения —› Помогите плиз с asm
Посл.ответ Сообщение

Ранг: 65.7 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 05 января 2005 19:50
· Личное сообщение · #1

pushad
lea edi,sizeof(key)
.................
mov ebx,$2
start:
mov eax, dword ptr name
movzx eax, byte ptr [eax+ebx-$2]
mov edx,dword ptr name
movzx edx, byte ptr [edx+ebx-$1]
add eax, edx
mov ecx, $A
xor edx, edx
div ecx
add edx, $30
mov [edi+ebx],dl //!!!!!!!!!!!!!!!! ошибка
inc ebx
dec esi
jne start
mov byte ptr [edi+ebx],0
inc edi
mov key,dword ptr edi
popad
Звиняюсь но без листинга никак
Вылетат runtime error 216 команда по адресу 0x8 обратилась к памяти по адресу 0X8
если заремарить строку с ошибкой все ок работает в чем ошибка?? Голову уже сломал подскажите плз.
Могу выложить exe файл + исходники на delphi 7(40 кб)
да еще, key и name - string
PS просьба сильно не пинать



Ранг: 8.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 05 января 2005 21:36 · Поправил: geRC
· Личное сообщение · #2

Указатель в edi на строку, в которой будет на выходе лежать серийник, спасёт гиганта мысли ;D т.е. надо вместе с name объявить строчку serial (или если key - строка, то оставить её) и в начале процедуры вместо
lea edi,sizeof(key)
написать
mov edi, dword ptr serial




Ранг: 8.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 05 января 2005 21:38
· Личное сообщение · #3

Да, кстати, лучше всё-таки юзать инлайн-асм из MSVC ;)

ЗЫ. Что-то глючит флуд-контроль - написано, что 4 секунды, но даже через минуту сообщение не получается отредактировать.




Ранг: 260.3 (наставник), 2thx
Активность: 0.120
Статус: Участник
PPC-PROTECT author

Создано: 05 января 2005 22:22
· Личное сообщение · #4

geRC пишет:
Да, кстати, лучше всё-таки юзать инлайн-асм из MSVC ;)

еще бы посоветывал на асме писать... зачем такие советы =)

-----
Пиво, сиськи, транс




Ранг: 65.7 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 06 января 2005 07:26
· Личное сообщение · #5

geRC В том то вся и хрень что если дать такую команду
mov edi, dword ptr serial
то в edi окажется что-то типа 6C000000 при попытке записи- acsess violation Да чую сразу на чистом асме вышло бы гораздо быстрее Делфа ..ть ее



Ранг: 8.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 06 января 2005 07:54 · Поправил: geRC
· Личное сообщение · #6

Halt Это почему это будет access violation? Ведь ты сказал, что если убрать строчку
mov [edi+ebx],dl //!!!!!!!!!!!!!!!! ошибка
то всё работает нормально. Это значит, что инструкции
mov eax, dword ptr name 
movzx eax, byte ptr [eax+ebx-$2]
у тебя выполняются нормально. Но ведь в них такое же использование указателя, только вместо указателя на серийник - указатель на имя. Так что всё должно работать.



Ранг: 65.7 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 06 января 2005 16:04
· Личное сообщение · #7

Ну дык и я про тоже ! Что вроде все правильно Есть вообщето подозрение что что-то затираю в памяти при записи
mov [edi+ebx],dl
- но хз чего ему надо Ладно, пойду перепишу чисто на masm (или на делф) и посмотрю, будет ошибка или нет. Спасибо



Ранг: 65.7 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 06 января 2005 16:35
· Личное сообщение · #8

Усе пасиба огромное переписал на делфях усе работает.
PS тему можно закрыввать.


 eXeL@B —› Крэки, обсуждения —› Помогите плиз с asm
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати