Да. Железо это вообще очень не просто. Эмулировать серийные номера ssd и hdd, серийный номер матплаты uuid, и например время исполнения одиночной команды 2 умножить на 2 (это самое сложное). Вам, чтобы запустить такое приложение, придётся изобразить полностью идентичный компьютер, что цену взлома задирает в небеса.
На любой платформе, где приложения имеют доступ к файловой системе и оперативной памяти (пусть даже непривилегированного пользователя), от хранения сессий (разумеется, в открытом виде, соль используется совсем для другого) никуда не деться. Они хранятся в файловой системе для того, чтобы было удобно — при повторном запуске не нужно снова вводить пароль. Можно сделать менее удобно и хранить в оперативе, тогда пароль нужно будет вводить при каждом запуске. С т.з. безопасности это не даст ничего — малварь, запущенная с привилегиями этого же пользователя, запросто считает сессионные данные из памяти, разве что придётся повисеть в памяти и подождать запуска TDesktop, если он ещё не запущен. Если же не хранить сессию вообще, то аутентификацию придётся производить вообще при каждом запросе к серверу — что заведомо неудобно.
Привязки к аппаратной конфигурации не дадут ничего, потому что ничто не мешает считать необходимые параметры и просто подставить их при формировании ответа к серверу. Эмулировать ничего не придётся. Вариант с замерением скорости выполнения произвольного кода уже выглядит интереснее, но по факту зависит от текущей загрузки проца и константой не является.
Аналогия с играми абсолютно некорректна. Оффлайновые игры точно так же легко взламываются в плане читов, поэтому во многих играх они изначально доступны. Если мы говорим об антипиратской защите, основной сложностью тут является долгий и скучный анализ обфусцированных бинарников, проверки в которых можно раскидать по всему коду, а также всячески обламывать исполнение кода при обнаружении признаков отладочной среды. В общем, security through obscurity.
А вот если мы говорим об онлайн играх, то там основным фактором защиты является то, что вместе с игрой вы добровольно устанавливаете себе на компьютер бэкдор, выполняющий функцию античита. Он, как правило, выполняется от привилегированного пользователя, или даже на уровне ядра, и следит чтобы не запускались известные по сигнатурам читы, чтобы левые процессы не цеплялись к бинарникам защищаемого приложения, не лезли в выделенные для них области памяти, не эмулировали железо, чтобы ОС выполнялась не в виртуальной среде, чтобы не было запущено средств отладки и т.д. При любом подозрительном факторе — дисконнект и таймаут на вход. Несколько факторов одновременно или обнаруженная сигнатура из чёрного списка — бан аккаунта, зачастую, платного. На возможные неудобства для пользователей с нестандартными конфигурациями и прочие ложные срабатывания разработчикам игр, как правило, плевать, пока какая-то из них не становится массовой.
Так что если по конкретно этой ситуации, то решением здесь могло бы быть требование подтверждать паролем (который как раз можно в открытом виде локально не хранить) важных операций, выполняющихся на сервере: передача прав на канал, смена юзернейма и т.д. Но от кейлоггера всё равно не спасёт. А в более широком контексте решением является либо запускать телегу только на мобильных устройствах с высоким уровнем безопасности (отсутствие рут-привилегий, TPM, подписи на загрузчиках — в общем iOS и нормальные андроиды вроде Pixel), либо внимательно следить что запускаешь в десктопных ОС, где за безопасностью должен следить сам владелец устройства.