Size: a a a

Ассемблер

2020 June 14

ВК

Владимир Кузнецов... in Ассемблер
получается, вам надо сделать что-то аналогичное вместо строк vandps xmm2,xmm1,oword [AbsMaskF32] и vandpd xmm2,xmm1,oword [AbsMaskF64]
поместить адрес в какой-нибудь регистр конструкцией lea и из него по адресу получить значение, типа так
    lea rsi, [rel AbsMaskF32]
   vandps xmm2,xmm1, [rsi]
...
   lea rsi, [rel AbsMaskF64]
   vandpd xmm2,xmm1, [rsi]

попробовать
источник

s

s54816 in Ассемблер
Владимир Кузнецов
получается, вам надо сделать что-то аналогичное вместо строк vandps xmm2,xmm1,oword [AbsMaskF32] и vandpd xmm2,xmm1,oword [AbsMaskF64]
поместить адрес в какой-нибудь регистр конструкцией lea и из него по адресу получить значение, типа так
    lea rsi, [rel AbsMaskF32]
   vandps xmm2,xmm1, [rsi]
...
   lea rsi, [rel AbsMaskF64]
   vandpd xmm2,xmm1, [rsi]

попробовать
Но зачем? vandps xmm2,xmm1,oword [rel AbsMaskF32] итд.
источник

ВК

Владимир Кузнецов... in Ассемблер
s54816
А зачем через lea? Оно должно сразу работать mov rsi,[rel hello_world]
да, и правда, я наврал, можно и без lea
источник

D

Denis in Ассемблер
Loren White
а почему при линковке через g++ .o файла сделанного NASM выдается такая ошибка ? и как насмом сделать позиционно независимый код ?

foo.o: relocation R_X86_64_32S against '.rdata' can not be used when making a PIE object; recompile with -fPIE
Компилировать тоже с -fPIE надо
источник

LW

Loren White in Ассемблер
какое в майкрософтовском компиле по дефолту соглашение о вызове ?
источник

s

s54816 in Ассемблер
Loren White
какое в майкрософтовском компиле по дефолту соглашение о вызове ?
fastcall в 64-битном коде, cdecl/thiscall в 32-битном.
источник

LW

Loren White in Ассемблер
а у g++ для x86_64 ?
источник

s

s54816 in Ассемблер
Loren White
а у g++ для x86_64 ?
Тоже сорт fastcall, отличается используемыми регистрами слегка.
источник

Д

Дима in Ассемблер
s54816
Тоже сорт fastcall, отличается используемыми регистрами слегка.
Как о траве говоришь..
источник

LW

Loren White in Ассемблер
s54816
Тоже сорт fastcall, отличается используемыми регистрами слегка.
вот на это я и наткнулся, как оно различается ? )
источник

s

s54816 in Ассемблер
Loren White
вот на это я и наткнулся, как оно различается ? )
rdi/rsi/rdx/rcx/r8/r9 у gcc и rcx/rdx/r8/r9 у ms.
источник

LW

Loren White in Ассемблер
а команды по типу scasb работают с тем же списком регистров ?
источник

LW

Loren White in Ассемблер
в gcc
источник

s

s54816 in Ассемблер
Loren White
а команды по типу scasb работают с тем же списком регистров ?
Да, конечно. При чём тут gcc вообще? Это инструкция процессора.
источник

LW

Loren White in Ассемблер
а, затупил :D
источник
2020 June 15

楽園松本 in Ассемблер
Дима
Как о траве говоришь..
:)
источник

ST

Saenro T in Ассемблер
На счёт Trial period:
Передумал я где-то прятать счётчик запусков.
Да и вообще решил ничего не прятать.
По умолчанию экзешник работает как незарегистрированный и на 50% своих возможностей — отключено несколько опций.
Регистрация означает приобретение лицензионного ключа. Если последней файл имеется в том же каталоге что и экзешник, прога активирует все опции и начинает работать на 100% своих возможностей.
Ключ в свою очередь зашифрован и содержит информацию, которую вводил пользователь при регистрации + привязку к его железу.
Таким образом ключ бесполезен на других PC.
Но самое забавное, что ломанув сам экзешник, можно активировать все опции и без ключа). Это я уже понял когда оценил степень надёжности ключа в сравнении с надёжностью экзешника.
источник

D

Denis in Ассемблер
Saenro T
На счёт Trial period:
Передумал я где-то прятать счётчик запусков.
Да и вообще решил ничего не прятать.
По умолчанию экзешник работает как незарегистрированный и на 50% своих возможностей — отключено несколько опций.
Регистрация означает приобретение лицензионного ключа. Если последней файл имеется в том же каталоге что и экзешник, прога активирует все опции и начинает работать на 100% своих возможностей.
Ключ в свою очередь зашифрован и содержит информацию, которую вводил пользователь при регистрации + привязку к его железу.
Таким образом ключ бесполезен на других PC.
Но самое забавное, что ломанув сам экзешник, можно активировать все опции и без ключа). Это я уже понял когда оценил степень надёжности ключа в сравнении с надёжностью экзешника.
Задача в принципе не решаемая, можно только усложнять жизнь
источник

A

Aleksandr in Ассемблер
можно не поставлять полный экзешник до покупки. а после покупки поставлять с жестко зашитым ключем
источник

A

Aleksandr in Ассемблер
потом можно будет и утечку отследить
источник