0

查看一个用 python 编写的名为 Locky 的 DGA。这是其中的一部分。

# 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

4

1 回答 1

0

所有这些策略都被用来使逆向工程变得更加困难,并使领域更加“不可预测”。

不同的恶意软件家族采用不同的此类技术。这个 github 存储库将帮助您了解一些最流行的恶意软件使用的 DGA。“ https://github.com/baderj/domain_generation_algorithms

于 2018-04-02T12:08:32.750 回答