И нет, определить по имени функции что она делает нельзя, и факт переопределения нельзя задетектить стандартными способами. А вот попытку переопределения "require = print" можно задетектить через "require == print".
Можно отловить попытки переопределений очень хитро, через вытаскивание всего из _G в другую табличку, и вешанья на _G метатаблицы с __index ведущим на ту же табличку, и __newindex — делающим проверки, мол, не пытаемся ли мы что-то переопределить.
Инструкция — вот тут вот, найди пример прокси-таблиц и логирования изменений. То же самое надо сделать с самой _G, переложив её содержимое куда-нибудь, и проксируя её с помощью _G. https://habr.com/ru/post/346892/
Запретить переопределения — запросто. Обернуть переопределения в функции, которые будут отчитываться о попытках вызовов переопределённого и отписывать стек вызовов (после чего, например, вызывать оригинальную функцию) — тоже без проблем. А узнать что оно будет делать — нет ))
мне надо на сервере сделать одну простую функцию,совсем маленькую, чтобы она тупо принимала строку например post(site.ru/activate.php,'activate') и записывала ее,и с помощью get(site.ru/activate.php) получала записанное туда значение?
Надо срочно ... для дальнейшнго получения оттуда например так: gg.post('http://simbuilders.ru/activate.php',true) — команда на активацию а другие активные в этот момент скрипты делали что то вроде