Понедельник, 07.10.2024, 07:49 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Neo, xXxSh@dowxXx  
[asm] Помогите переписать процедуру под x64
dolphinДата: Среда, 03.04.2013, 21:12 | Сообщение # 1
Администратор
Сообщений: 906
Статус: Offline
Есть процедура
Доступно только для пользователей

Проблема в том что на х64 она не работает, кто поможет с этим вопросом?


Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
Волк-1024Дата: Четверг, 04.04.2013, 00:08 | Сообщение # 2
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Код прекрасно работает на Windows 8 Professional x64. Всё шифруется и дешифруется.

Доступно только для пользователей
В чем собственно заключается проблема? smile


Pascal, C\C++, Assembler, Python

Сообщение отредактировал Волк-1024 - Четверг, 04.04.2013, 00:13
 
Don_DiegoДата: Четверг, 04.04.2013, 01:17 | Сообщение # 3
Продвинутый
Зарегистрирован: 16.04.2012
Группа: Пользователи
Сообщений: 253
Статус: Offline
Offtop
 
Волк-1024Дата: Четверг, 04.04.2013, 01:21 | Сообщение # 4
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
У меня тоже самое...

Pascal, C\C++, Assembler, Python
 
dolphinДата: Четверг, 04.04.2013, 01:34 | Сообщение # 5
Администратор
Сообщений: 906
Статус: Offline
Волк-1024, Проблеме в том что на 64-битном компиляторе не хочет компилироваться. На простой так же всё нормально. Просто наверно немного не так вопрос поставил happy

По теме синтаксиса


Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
Волк-1024Дата: Четверг, 04.04.2013, 01:47 | Сообщение # 6
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Эмммм. под рукой нет x64 компилятора, но могу предположить, что нужно заменить регистры EAX, EDX на RAX и RDX, а
Код
procedure EncryptPass(SrcBuf: Pointer; BufLen: LongWord); assembler;
заменить на
Код
procedure EncryptPass(SrcBuf: PInt64; BufLen: Int64); assembler;
Не знаю, что насчет регистра CL(ECX)... Т.к на x64 ассемблере я почти не кодил...


Pascal, C\C++, Assembler, Python

Сообщение отредактировал Волк-1024 - Четверг, 04.04.2013, 01:50
 
dolphinДата: Четверг, 04.04.2013, 01:59 | Сообщение # 7
Администратор
Сообщений: 906
Статус: Offline
Волк-1024, и на том спасибо, буду пробовать

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
dolphinДата: Пятница, 03.05.2013, 11:01 | Сообщение # 8
Администратор
Сообщений: 906
Статус: Offline
Актуально!

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
Волк-1024Дата: Пятница, 03.05.2013, 16:36 | Сообщение # 9
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
Спокойно компилируется в Lazarus'е x64, если добавить перед asm деррективу {$ASMMODE intel}

--------------------------------------------------------------------------
Ан нет. Там же ведь идет смешение 32 и 16 битного кода...
Еще кстати функция не будет шифровать правильно данные, если длина ключа больше чем размер данных в TXorData
Я думаю, чтобы не заморачиваться на asm лучше написать это дело на Delphi...


Pascal, C\C++, Assembler, Python

Сообщение отредактировал Волк-1024 - Пятница, 03.05.2013, 17:33
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz