upx и ParamStr(0)

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

upx и ParamStr(0)

Сообщение Attid »

после использования upx
ParamStr(0) возврощает пустую строку =(

приложение консольное, линукс. как узнать имя процесса ?
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Не использовать UPX? Из переменных окружения оно тоже не вытаскивается :(
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

/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
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Есть утилита gzexe, которая служит для тех же целей, что и upx. По сути это bash-скрипт, который жмет программу с помощью gzip, потом дописывает в начало то ли сам себя, то ли часть себя. Там в комментариях есть слова о сохранении имени вызываемой программы. Можно посмотреть, как именно оно делается - с большой долей вероятности upx поступает так же.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Иван Шихалев писал(а):Не использовать UPX?

дык никогда не использовал, приходится работать на тонком клиенте места в обрез.

gzexe попробую.
Ответить