2014-12-09 3 views
1

У меня есть двоичный исполняемый файл, скомпилированный из C-source, и я знаю, что он использует некоторые переменные системной среды UNIX. К сожалению, у меня нет документации, а декомпиляция/обратная инженерия очень сложная.Какие переменные среды использует приложение

Есть ли способ найти переменные env, которые приложение пытается прочитать во время выполнения?

Я имею в виду, если C getenv читает файл, чтобы получить значения переменных или системный вызов, это возможно. Итак, могу ли я это сделать?

+1

Я не специалист по переменным окружения, но я думаю, что вы можете отслеживать системные вызовы с помощью 'ptrace'. – bzeaman

+2

'strings (1)' может помочь вам идентифицировать имена переменных envrionment. –

+0

Спасибо, Благовест! Это помогло. –

ответ

1

strings(1) может помочь вам идентифицировать имена переменных envrionment. –   Благовест Buyukliev

1

Можно использовать отладчик, установить точку останова на getenv и проверить аргумент функции. Это возможно даже без отладочной информации (хотя и более сложной, поскольку она требует знания соглашения о вызове).