после использования upx
ParamStr(0) возврощает пустую строку =(
приложение консольное, линукс. как узнать имя процесса ?
upx и ParamStr(0)
Модератор: Модераторы
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Не использовать UPX? Из переменных окружения оно тоже не вытаскивается 
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
/proc/self/exe тоже пустым оказывается?
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Sergei I. Gorelkin писал(а):/proc/self/exe тоже пустым оказывается?
Да. Насколько я понимаю, upx формирует образ в памяти, которому передается управление... В принципе, наверное, можно попробовать выяснить родительский pid и уже по нему в /proc отправляться...
Добавлено спустя 1 минуту 22 секунды:
Но тогда по-хорошему нужен способ выяснить, под upx'ом ли мы... Хотя пустота ParamStr(0) — пожалуй, критерий...
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Есть утилита gzexe, которая служит для тех же целей, что и upx. По сути это bash-скрипт, который жмет программу с помощью gzip, потом дописывает в начало то ли сам себя, то ли часть себя. Там в комментариях есть слова о сохранении имени вызываемой программы. Можно посмотреть, как именно оно делается - с большой долей вероятности upx поступает так же.
