у Вас пробелы в понимании базовых сетевых концепций,
с защитой программ тоже - но это как бы простительно, там общепринятых методик нет
сейчас вы спрашиваете
Можно ли подменить ip-адрес при проходе через NAT
на сетевом языке это звучит:
можно ли подменить IP выполняя подмену IP
дальше - никаких шифрованых адресов нет, IP пакет (тот что через слеш в TCP/IP протоколе) содержит адрес истончника и назначения, без них он не ходит. Вообще. In no way.
назначение нужно чтобы знать куда передавать данные, ичточник - чтобы прнимающий послал ответ об успешном или неуспешном принятии / перезапросить пакет
поэтому все что сло словами DNS - выкиньте из размышлений и забудьте
дальше - программа для работы получает от хоста назначения специальный ответ
если не получает - дожна рабтать с выключенным нетом, и о таких не говорим, их не нужно лечить
в ответе обычно шифруется ДА (прога - работай) или НЕТ ( прога - напиши что-нибудь, дай денег за лицензию, например)
поэтому лучшим способом является
а) разгадать алгорит ответа и пропатчить прогу - обычно непросто, защит может быть много, патчить все долго
б) разгадать и подделать ответы от локального сервера - так лечатся JetBrains и т.п.
для А и B нужны навыки реверсинга, такие специалисты дороги, им проще заработать на сером черном рынках
в) маскироваться - страной ( есть не работащие за пределами китая, так сходу, а может и других -в том числе России, ут не скажу)
как маскироваться - вам написали в первом и чуть ниже ответе про необязательность шифрования
все - больше ничего тут придумать нельзя