Алгоритм генерации домена - Locky
Глядя на DGA под названием Locky, написанную на python. Это какая-то часть этого.
# Shift the dates
modYear = uint32(__ROR4__(modConst1 * (SystemTime.wYear + 0x1BF5), 7))
modYear = uint32(__ROR4__(modConst1 * (modYear + seed + modConst2), 7))
modDay = uint32(__ROR4__(modConst1 * (modYear + (SystemTime.wDay >> 1) + modConst2), 7))
modMonth = uint32(__ROR4__(modConst1 * (modDay + SystemTime.wMonth + modConst3), 7))
# Shift the seed
seed = uint32(__ROL4__(seed, 17))
# Finalize Modifier
modBase = uint32(__ROL4__(pos & 7, 21))
modFinal = uint32(__ROR4__(modConst1 * (modMonth + modBase + seed + modConst2), 7))
modFinal = uint32(modFinal + modConst2)
Я понимаю разные действия, но я немного запутался, почему они делают то, что делают. Чтобы все было как можно более случайным образом, или за каждым сдвигом, умножением и т. Д. Стоит какая-то особая мысль. Все это можно найти здесь: https://github.com/sourcekris/pyLockyDGA
1 ответ
Все эти тактики используются для усложнения обратного проектирования, а также для того, чтобы сделать домены более "непредсказуемыми".
Различные семейства вредоносных программ используют разные такие методы. Этот репозиторий github поможет вам понять DGA, используемые некоторыми из самых популярных вредоносных программ. " https://github.com/baderj/domain_generation_algorithms"