Anonymous
Такое происходит с x64dbg, и вроде в OllyDbg. А у IDA Pro ломается режим графа
xor eax, eax
Там делают что-то вроде call, потом pop reg и модификация reg
Anonymous
Ну это из раздела мусора в коде. Его убрать можно. А вообще, тут всё ограничивается только фантазией. Но руками тут точно не обойтись. Ну как минимум макросы написать, которые будут сами шифровать, ломать строчки кода, вставлять мусор посреди каждой строчки и т.д. Но на ЯВУ такое вряд ли прокатит.. Тут полюбому писать утилиту нужно будет, морочиться с PE форматами, патчить файл отдельно, после компиляции и т.д
Eugene
jmp @f db 0xf2, 0xEF, 0x99, 0xB1 @@:
Это детский сад, защита от лохов, ты ж понимаешь :)
disba1ancer
В винде нет ред зоны.
про винду точно не знаю
disba1ancer
я вообще не вижу смысла в защите кода, поскольку для выполнения, он должен быть расшифрован на месте, значит такое шифрование легко сломать поскольку все ключи будут известны
Eugene
я вообще не вижу смысла в защите кода, поскольку для выполнения, он должен быть расшифрован на месте, значит такое шифрование легко сломать поскольку все ключи будут известны
Любой код ломаем. Вопрос в квалификации ломающего, в потраченных усилиях и времени и исходящей из этого целесообразности взлома. Поэтому, чем сложнее защищён код, тем меньше будет людей которые будут пытаться его взломать и ещё меньше тех, кто это в итоге сделает.
Lo
tstring strItemName = pItem->pDisplayInfo->szName; TCHAR szText[X_LONG_NAME]; TCHAR szBuff[X_LONG_NAME]; INT16 n16Num = pEvent->n16Num; if( n16Num>=1 ) { _stprintf(szBuff, g_StrTable[_T("CombatForChat15")], strItemName.c_str()); CombatSysUtil::Inst()->ShowCombatMsg(szBuff); _stprintf(szText, _T("%s%d"), _T("GetItem"),pEvent->nQuality);
Lo
мне нужна функция подсчета и от нее взять метод в строку, и пихнуть как выше дополнительный _stprintf
Lo
вот как сейчас выглядит на примере
Lo
помогите систему научить считать хД
Lo
Читы пилишь?
Нет,у меня исходный код игрухи.Там сложный исходный код,но на нем можно тренировать свои знания)
Lo
И приводить их в практику.Уже разобрался,подключил функцию Сount.
Lo
Lo
Anonymous
Это детский сад, защита от лохов, ты ж понимаешь :)
Это ломает дизассемблер, я написал
Eugene
Это ломает дизассемблер, я написал
Перешёл к нужному адресу, и всё снова выстроилась как надо.
Eugene
Ну или заменил байты на нопы.
Lo
Идеальной защиты не существует,верно?)
Anonymous
Перешёл к нужному адресу, и всё снова выстроилась как надо.
Это если только одна такая ловушка. А если через каждую инструкцию? Дизассемблер превратит код в набор неопределённых инструкций, и из-за таких вот неопределённых байтов, ломаются последующие инструкции, потому что он думает, что это - продолжение какой-либо инструкции
Anonymous
Дизассемблер линейно дизассемблирует, он не предсказывает, что какие-то инструкции выполняться не будут.
Anonymous
Да и в любом случае, это же только один из методов антиотладки. В идеале для получения хорошей защиты, использовать нужно сразу всё. От самых простых, для лохов, до самых сложных, смешав всё в кучу.
Anonymous
cmp eax, 1033 je @f db '1dhjc19i2hcoiz12-=' @@: add eax, 50000 push edx IDA Pro не прожевал, и весь код далее превратился просто в db, а потом и вовсе в ?
Anonymous
Eugene
И там нельзя переключить в режим кода?
Lo
Какие есть варианты защитить свои консольные приложения от DDos на которые подключаются люди?Сервера стоят на Windows server.
Anonymous
Какие есть варианты защитить свои консольные приложения от DDos на которые подключаются люди?Сервера стоят на Windows server.
Можно написать передачу и генерацию ключей по какому-нибудь алгоритму, будет что-то вроде капчи или отпечатка
Андрей
кто-нибудь на at&t пишет?
Eugene
кто-нибудь на at&t пишет?
Иногда пишет, хоть и не любит :)
threadedstream
Не знаю, почему его так не любят :)
threadedstream
В принципе, если почаще работать с gcc и не менять ассемблерный синтаксис, то потихоньку начинаешь не любить интеловский.
Eugene
Не знаю, почему его так не любят :)
Потому что привыкли к другому.
Eugene
В принципе, если почаще работать с gcc и не менять ассемблерный синтаксис, то потихоньку начинаешь не любить интеловский.
Это всё вопрос привычки. Удобство в нём только одно: суффиксы (не надо писать word (ptr) и т.п.). А всякие там проценты перед регистрами, доллары перед числами — зачем? Изменение логики инструкций типа subrp и subp на противоположную — что за тупость вообще (subrp работает в стиле sub, а subp — в стиле subr)? А как насчёт 10(%eax,%ebx,4) — это реально кому-то больше нравится, чем [eax+ebx*4+10] ???
Eugene
ИМХО, конечно.
M
Ну типп
M
Это же at&t, сильный бренд,они художники - они так видят.
M
Это же вечный холивар в имплиментации чего угодно - изобретать велосипед наоборот, так как он тоже имеет право на существование или проникнуться парадигмой разработчика работающего велосипеда.
Aiwan \ (•◡•) / _bot
Это всё вопрос привычки. Удобство в нём только одно: суффиксы (не надо писать word (ptr) и т.п.). А всякие там проценты перед регистрами, доллары перед числами — зачем? Изменение логики инструкций типа subrp и subp на противоположную — что за тупость вообще (subrp работает в стиле sub, а subp — в стиле subr)? А как насчёт 10(%eax,%ebx,4) — это реально кому-то больше нравится, чем [eax+ebx*4+10] ???
10(%eax,%ebx,4) - такая конструкция требует дополнительныз знаний, "что есть что" и в какой последовательности выполняются действия. [eax+ebx*4+10] - здесь тоже нужны знания, но эти знания по крайней мере закладываются с дества и уже находятся на интуитивном уровне (это плюс, это умножение итд)
Aiwan \ (•◡•) / _bot
я за интел синтаксис
Андрей
Кто-нибудь имеет ссылку или файлик с фундаментальным гайдом по ассемблеру?
threadedstream
https://godbolt.org/
threadedstream
Бесценный ресурс
threadedstream
Но это не гайд
threadedstream
Что-то типа "практического интродакшна в ассемблер"
Eugene
Кто-нибудь имеет ссылку или файлик с фундаментальным гайдом по ассемблеру?
xk8.ru/inteldoc – фундаментальный гайд. xk8.ru/asmlinks – сылки на книги и доки по разным асмам (даже на русском есть).
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
есть еще от amd, но им не пользуюсь, хотя говорят что некоторые вещи там более интересней расписаны
threadedstream
Aiwan \ (•◡•) / _bot
Ну это уже для advanced левела
просили фундамент, вот он. все книги, учебные материалы основаны на том что находится на этом ресурсе
Aiwan \ (•◡•) / _bot
Ну это уже для advanced левела
для какого левела?
threadedstream
для какого левела?
Ну, для уже шарящих в ассемблере.
threadedstream
Впрочем, я бы отметил главу про организацию памяти
Anonymous
Ну, для уже шарящих в ассемблере.
Достаточно будет просто не знать абстракций (ЯВУ)
Eugene
Ну, для уже шарящих в ассемблере.
Почему шарящих? Там как раз архитектуру с нуля описывают. А дальше ассемблер. Затем продвинутый уровень. 3 тома.
Андрей
vpgatherqq кидает segfault на GCC, а на msvc нет. Выравнивание вроде везде сделал по 32. В чем может быть дело?
Aiwan \ (•◡•) / _bot
Ошибка в 17-й строке.
по мне так чуть раньше. повнимательней посмотри, на этом обычно все спотыкаются
Максим
Всем привет! тут делают задачи за вознаграждение ?
­
Нет.
Андрей
Не пойму табличку перформанс, на какой архитектуре быстрее?
Eugene
Latency - зажержка, Throughput - пропускная способность.
Eugene
Но вообще странно, если Icelake и Skylake медленнее, чем Ivy Bridge...
Anonymous
Неправильная таблица
Андрей
Откуда таблица?
Intel intrinsic guide
Андрей
IceLake: Lat.=0, Recip.throughput=0.2
Где ты смотришь?
Anonymous
Где ты смотришь?
Agner Fog Instruction tests speed table
Eugene
IceLake: Lat.=0, Recip.throughput=0.2
Recip. throughout, вероятно, немного другое. Хотя хз.
Константин
Может кто нибудь знает как в дизассемблере (конкретно x32dbg) найти участки кода где при запуске зараженной программой управление передается вирусу и он выполняет свои деструктивные функции?
Константин
понял,спасибо
Anonymous
на последней страница как правило, да
Anonymous
но если вирусописатель довольно изощрен то может быть в любом месте )
Anonymous
Может кто нибудь знает как в дизассемблере (конкретно x32dbg) найти участки кода где при запуске зараженной программой управление передается вирусу и он выполняет свои деструктивные функции?
Так в отладчик закиньте, и вот вам точка входа - и есть код вируса)) Но если написано на ассемблере, то тут уже ничего не поделать, автор может сделать всё, что угодно. Да хоть переписать ближний call относительно оригинальной точки входа на вызов кода вируса, и уже не определить с первого раза, и уж точно если код вируса был внедрён в пустую область секции с оригинальным кодом, вместо создания новой (в этом случае будет большой виртуальный адрес, что довольно подозрительно)
threadedstream
Актуальна ли статья Ульриха Дреппера о памяти на сегодняшний день?