Size: a a a

Ассемблер

2020 September 20

_

__gg in Ассемблер
Спасибо
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
но вот, это уже можно как то тестить. без макросов. онли хардкор, чтоб потом было легче переделывать на другие асмы
;-------МАКРОС-------
macro print fmt*,[arg] {
   common
       pusha
       local szStr
       jmp     @f
       szStr db fmt,0
       @@:
       size@ccall = 0
       if ~ arg eq
   reverse
               push    arg
               size@ccall = size@ccall+2
   common
       end if
       push    szStr
       size@ccall = size@ccall+2
       call    printf
       add     sp,size@ccall
       popa
}

макросик небольшой организовал для быстрого вызова
источник

s

s54816 in Ассемблер
Saenro T
Может стоит регистр флага сохранить вначале, потом настроить его под эту функцию и вернуть в конце? А то получается как в виндовой user.dll, при некоторых "не тех" значениях регистра флага, такие виндовые функции как к примеру MessageBoxA попросту не работают (что уже достало).
Это не баг. Соглашение о вызовах в винде (а возможно и не только в винде) подразумевает сброшенный DF при входе в функцию.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
кайф, как же облегчает контроль
источник
2020 September 21

RS

Rusty Shackleford in Ассемблер
RBX  можно ведь использовать для хранения временного хлама между вызовами ? он же не изменным должен оставаться
источник

RS

Rusty Shackleford in Ассемблер
Регистры RBX, RBP, RDI, RSI, RSP, R12, R13, R14 и R15 считаются энергонезависимыми (с сохранением вызываемого).
источник

RS

Rusty Shackleford in Ассемблер
как и все вышеуказанные получается, ну кроме RBP от него может база отсчитываться для переменных, там где фрейм стека используется
источник

RS

Rusty Shackleford in Ассемблер
верно ?
источник

RS

Rusty Shackleford in Ассемблер
тоесть я понимаю, что их можно использовать для хранения временных значений между вызовами, меня как бы интересует что считается лучшей практикой, в каком обычно хранят tmp значения
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
храни в неиспользуемом/неизменяемом регистре
источник

RS

Rusty Shackleford in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
храни в неиспользуемом/неизменяемом регистре
это само собой, интересно best practice
источник

RS

Rusty Shackleford in Ассемблер
или тут всёравно и каждый что хочет то и использует
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Rusty Shackleford
или тут всёравно и каждый что хочет то и использует
ну да, это же ассемблер, где есть свобода творчества в рамках оговоренных правил
источник

ST

Saenro T in Ассемблер
Пробовали FDBG?
источник

_

__gg in Ассемблер
Привет, ребят. Вопрос касательно шифрования с помощью XOR (a xor b xor b = a). Не совсем понимаю надежность данного шифрования. У меня есть какой-то валиандый пароль, который юзер должен ввести. Чтобы предполагаемый взломщик не смог обнаружить этот валидный пароль, я должен его зашифровать в программе.
Для шифрования нужен какой-то ключ, который я самостоятельно генерирую. Но чет я не понимаю, каким образом это спасет мой валидный пароль от взлома? Я же все равно так или иначе смогу посмотреть на дизассемблерный код и найти там или валидный пароль, или же ключ, по которому я шифрую. К тому же у меня же явно будет сделана проверка if (pass == _pass), например, чтобы войти в систему. И в этом сравнении я смогу увидеть этот истинный пароль.
Тогда какой смысл вообще от этого шифрования?
источник

A

Azrael in Ассемблер
__gg
Привет, ребят. Вопрос касательно шифрования с помощью XOR (a xor b xor b = a). Не совсем понимаю надежность данного шифрования. У меня есть какой-то валиандый пароль, который юзер должен ввести. Чтобы предполагаемый взломщик не смог обнаружить этот валидный пароль, я должен его зашифровать в программе.
Для шифрования нужен какой-то ключ, который я самостоятельно генерирую. Но чет я не понимаю, каким образом это спасет мой валидный пароль от взлома? Я же все равно так или иначе смогу посмотреть на дизассемблерный код и найти там или валидный пароль, или же ключ, по которому я шифрую. К тому же у меня же явно будет сделана проверка if (pass == _pass), например, чтобы войти в систему. И в этом сравнении я смогу увидеть этот истинный пароль.
Тогда какой смысл вообще от этого шифрования?
Никаким образом не спасет, пароль нужно сохранить в виде хеша. Тогда будет толк
источник

_

__gg in Ассемблер
Окей. Я получил хеш. Но у меня ведь все равно будет возможность отследить последовательность преобразования этого хеша в пароль, что позволит мне получить пароль, не так ли?
источник

A

Azrael in Ассемблер
__gg
Окей. Я получил хеш. Но у меня ведь все равно будет возможность отследить последовательность преобразования этого хеша в пароль, что позволит мне получить пароль, не так ли?
Ты должен получить хеш не в своей программе, а извне. И сохранить этот хеш чтобы проверять введённый пароль
источник

_

__gg in Ассемблер
Ну, то есть предполагаемо я отправляю на сервер и получаю от него хеш. Правильно понимаю?
источник

A

Azrael in Ассемблер
__gg
Ну, то есть предполагаемо я отправляю на сервер и получаю от него хеш. Правильно понимаю?
Можешь написать другую программу и получить в ней хеш. Потом хеш сохранить там где тебе нужно и проверять относительно него введённый пароль
источник