• XSS.stack #1 – первый литературный журнал от юзеров форума

RTEA 256

Crypto Locker

(L3) cache
Забанен
Регистрация
22.10.2019
Сообщения
177
Реакции
116
Пожалуйста, обратите внимание, что пользователь заблокирован
C++:
// зашифровка

for (r=0;r<64;r++)
{
 b+=a+((a<<6)^(a>>8))+ (key[r%8]+r);
 r++;
 a+=b+((b<<6)^(b>>8))+ (key[r%8]+r);
}


// расшифровка

for (r=63;r>=0;r--)
{
 a-=b+((b<<6)^(b>>8))+ (key[r%8]+r);
 r--;
 b-=a+((a<<6)^(a>>8))+ (key[r%8]+r);
}
 
Правда в том что это вы запостили, пусть даже это репост...разве вам не бросилось в глаза? если вы в 3х строчках кода не споткнулись взглядом об это то какая разница откуда репост?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Правда в том что это вы запостили, пусть даже это репост...разве вам не бросилось в глаза? если вы в 3х строчках кода не споткнулись взглядом об это то какая разница откуда репост?
Так, а вот этом я уже не разбираюсь, можешь объяснить что не так, и как нужно было?
 
операцией %8 мы получаем остаток от деления на 8. Деление это одна из самых затратных операций, еще она задействует довольно много регистров. При оптимизировании, деления стараются избежать везде геде только возможно, заменяя его сдвигами а в случае с поиском остака операцией and.
9 % 8 = 1
9 = 0b1001
7 = 0b0111
9 & 7 = 1

32423 / 4 == 32423 >> 2
32423 * 4 == 32423 << 2
ну думаю вы поняли. Логические операции и сдвиги очень быстры, деление и множение очень медленные.

Скорее всего компилятор сам оптимизирует и не станет делать деление, но лучше все же разбираться в вопросе и начинать оптимизацию еще в осмыслении процесса.
 
Кстати еще момент, если кодера не коробит %8, то скорее всего он незнает асм и очень может быть что он на вы с битовыми масками, а если человек на вы с битовыми масками то в случаях когда архитектурные решения требуют работы с флагами он начинает решать байтами там где нужно решать битами и получается аццкий говнокод, а незнание асма в малваре ставит перед кодером много ограничений, да и не только в малваре..посмотреть те же сорцы квейка.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх