🦥Alex Fails
🦥Alex Fails
🦥Alex Fails
Я б еще sse2 прифигачил
🦥Alex Fails
Ну и авх
Andrew
ну я просто вообще вспоминал асм, уже год его не трогал)
Andrew
ну вроде похоже на ZeroMemory
Artem
ну не очень похоже на функцию, если честно
Artem
функция обычно бывает с аргументами, а не с данными в .data
Artem
и получает свои аргументы по какому-нибудь соглашению вызовов, например, cdecl
Andrew
ну не очень похоже на функцию, если честно
нуу если надо функцию то
.model flat,stdcall
ZeroMemory PROTO :DWORD,:DWORD
.code
ZeroMemory proc uses edi ecx edx ebx loc:DWORD, len:DWORD
mov edi, loc
mov edx, len
xor eax, eax
mov ecx, edx
shr ecx, 2
mov ebx, ecx
shl ebx, 2
sub edx, ebx
rep stosd
mov ecx, edx
rep stosb
ret
ZeroMemory endp
end
Andrew
так вроде больше похоже но возможно ошибся где
Andrew
писал не проверяя код
Berkus
my_len => len
my_lo => loc
Berkus
в принципе, вполне себе zeromemory если слишком быстро не надо
Berkus
ключики обычно до 256 байт длиной, скорость не так важна
Andrew
кстати есть тут кто кто умеет расшифровывать трафик?
Berkus
mitm proxy могут
Berkus
https://www.charlesproxy.com
Andrew
а кто знаком c l2phx?
просто когда-то читерил чет там понимал
сейчас забил чет а уже весь трафик у всех шифрованый
Andrew
Alexey
Alexey
на винде есть Fiddler (http://www.telerik.com/fiddler)
Крылатый
Годная шняга, кстати
Alexey
а кроссплатформенное OWASP ZAP (https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project)
Alexey
они оба хороши
Berkus
они все хороши
Алдар
🦥Alex Fails
Я вайршарком ебал
Kirill
Stanislav
берешь вайршарк, если неизвестный трафик, начинаешь писсать диссектор на луа)
Surreal
void process_message(int x)
{
switch (x)
default:
if (valid_command_message(x))
case CMD1: case CMD2: case CMD3: case CMD4:
process_command_msg(x);
else if (valid_status_message(x))
case STATUS1: case STATUS2: case STATUS3:
process_status_msg(x);
else
report_error(x);
}
Забавно.
https://blog.feabhas.com/2017/02/abusing-c-switch-statement-beauty-eye-beholder/
Vladislav
Surreal
Запутанный код легко читается тестами.
Vladislav
иногда код читают чтобы внести в него изменения
Surreal
О, это да. Реликт, написанный черной ручкой на черной бумаге в темноте, который дописывали черной краской широкой кистью и выдерживали затем в угольной шахте, представляет собой шикарный образец наследия, оставленного нам нашими предками - первобытными программистами.
Vladislav
Surreal
Проблема в том, что часто приходится дополнять подобные артефакты своим пером. Каким бы изящным не был почерк, это все те же черные чернила поверх черной бумаги. Далеко не все готовы тратить время на то, чтобы разобраться и переписать все нормально. Да и из песни слов не выкинешь: перепишешь, а что-нибудь где-нибудь поломается; вернешь все обратно и останется только жалеть о потраченном времени.
Vladislav
Andrei
Andrei
Есть другая. Называется код производит сайд-эффекты.
Andrei
Надо явно указать что все сайд эффекты кода должы быть вычилены к такой-то точке.
Vladislav
в виндах есть SecureZeroMemory
Vladislav
а еще memset_s http://en.cppreference.com/w/c/string/byte/memset
Vladislav
"This optimization is prohibited for memset_s: it is guaranteed to perform the memory write."
Berkus
воот!
Berkus
и оно появилось только в с11, потому что секьюрный мемсет на сях невозможен
Berkus
> memset_s is only guaranteed to be available if __STDC_LIB_EXT1__ is defined by the implementation and if the user defines __STDC_WANT_LIB_EXT1__ to the integer constant 1 before including string.h.
#takoe
Vladislav
а c11 - это уже не c?
Dr. Friedrich
Он имеет в виду, что секурный мемсет невозможен в C без явной договорённости между библиотекой и компилятором.
Dr. Friedrich
Ну т.е. любой мемсет, который ты напишешь, будет априори несекурным.
Dr. Friedrich
А если авторы компилятора написали — тогда норм.
Berkus
именно это я и имею в виду, спасибо!
Andrey
HR?
✙ Fatum ✙
а у vallarray есть методы копирования из одного valarray в другой? а то я циклом все делаю по старинке
Max
help
Кто собирал на винде буст пайтон?
Max
тыкаю следущее
b2 --build-type=complete --with-python stage
получаю следущее
Performing configuration checks:
-32 bit : yes
Max
Директории stage с либами соотвественно нету
Max
path к пайтону указан
Berkus
Artem
std::copy скорее всего сведется в реализации к тому же циклу, нет?
Berkus
ага, только не ручками. ну и там зависит дальше, std у тебя или parallel_std или вообще какой-нибудь amp
Artem
ну хотя если вопрос про наличие метода, то да.
Berkus
ну не хуже ручного цикла будет всяко
Berkus
там скорее всего будет оптимизация до memcpy для PODs
✙ Fatum ✙
Stanislav
In practice, implementations of std::copy avoid multiple assignments and use bulk copy functions such as std::memmove if the value type is TriviallyCopyable
Artem
будет ли?
Artem
а
Artem
хорошо
Berkus
вот выше читай, будет
Surreal
А есть ли смысл в std::copy, когда есть:
valarray<T>& operator=( const valarray<T>& other );
Artem
Andrey
valarray и итераторов-то своих не имеет
✙ Fatum ✙
Andrey
кроме как в 11 std::begin и std::end юзать
Andrey