Если они являются внешними библиотеками, не всегда возможно увидеть переменные вообще. В хорошей библиотеке в любом случае не будет много глобально доступных переменных. Большинство из них будут статическими или локальными, и тогда вы не сможете получить к ним доступ, поэтому они не имеют большого значения для вас.
В документации, если она полезна, должны быть указаны все переменные, функции и т. Д., К которым вы можете обращаться и использовать. Заголовочные файлы также являются довольно хорошим источником информации, хотя они не всегда говорят, как использовать то, что вы видите. И, как в этом случае, если вы можете получить исходный код, это также хороший источник информации, хотя может пройти много времени, прежде чем вы начнете видеть, если библиотека обширна.
Добавление
Если библиотека была скомпилирована с отладочной информацией, и у вас есть источники, вы сможете увидеть, как она работает, и проверить все виды переменных (локальные, статические, глобальные). Сокрытие информации от вас в первую очередь не делается для того, чтобы быть скрытным, это делается для того, чтобы вы не могли получить доступ к личной информации и (возможно, случайно) поставить под угрозу целостность личных данных, которые она хранит. Как я уже сказал в комментарии, это называется инкапсуляция и, IMO, практика хорошего программирования (tm).