Этот знак называется тире. Его постановка после обобщающего слова перед рядом однородных членов — вариант нормы (см. примечание к параграфу 36 полного академического справочника «Правила русской орфографии и пунктуации» под ред. В. В. Лопатина).
Верно: князь тьмы (но в принципе можно писать и с прописных букв, если этим словам придается какое-то торжественное, особенное значение). Правильно без запятой: Было отчего потерять дар речи.
Вместо тире нужно поставить запятую.
Здесь есть некоторая смысловая путаница. Снискать - это "заслужить, добиться". А дар - "то, что дается безвозмездно". Может быть, обрела дар? Но только не "своими трудами". И можно ли говорить о праведности как о том, что подарено, даровано?
Запятая перед чем в этом случае не нужна.