LINUX.ORG.RU

Не работает бинарник


0

1

Запускаю бинарник скомпилированный под неизвестный Linux Висел на сервере с Apache в папке cgi-bin отвечал за преобразование строковых данных передаваемых get параметром программой Скомпилирован похоже что Borland Delphi for Linux Version 14.5 требуемые либы вродебы все на месте, трассировка ошибок явных не выдаёт, chmod 755 но утилита возвращает пустоту хотя должнабы возвращать данные. запускаю через ssh так

debian:/home/debian#./genr Zyxoop_uxuvoocufyremoopivudoon_ywigeneecol_s__t_k__lutilinumoor_upoxup__d_iv_yd__bax_ylim__c_ilesem__g_nooc__hegefesehebevuj__powymyrekesysuh__fygeetos_yrezut__tex__d_un__tif__hykooq__g_yz__b__beek__b_us__juc__zuv__nooqihepeq_uw__dexugehezyz__tezomooc__neecivool_b_heciw_imootin_ >out.txt

длинная строка с подчёркиваниями - это единственный передаваемый параметр.

Подскажите где ошибка ?? или что ещё можно попробовать сделать ?

debian:/home/debian# ldd ./genr
	linux-gate.so.1 =>  (0xb7f3e000)
	libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7f10000)
	libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7f0c000)
	libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7db0000)
	/lib/ld-linux.so.2 (0xb7f3f000)

debian:/home/debian# strace ./genr
execve("./genr", ["./genr"], [/* 32 vars */]) = 0
brk(0)                                  = 0x87c3000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f7d000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=75172, ...}) = 0
mmap2(NULL, 75172, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f6a000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000H\0\0004\0\0\0\330"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=116414, ...}) = 0
mmap2(NULL, 98784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f51000
mmap2(0xb7f66000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0xb7f66000
mmap2(0xb7f68000, 4576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f68000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\n\0\0004\0\0\0H"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9680, ...}) = 0
mmap2(NULL, 12412, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f4d000
mmap2(0xb7f4f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f4f000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1\0004\0\0\0\4"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1413540, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4c000
mmap2(NULL, 1418864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7df1000
mmap2(0xb7f46000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x155) = 0xb7f46000
mmap2(0xb7f49000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f49000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7df0000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7df06b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7f46000, 4096, PROT_READ)   = 0
munmap(0xb7f6a000, 75172)               = 0
set_tid_address(0xb7df06f8)             = 3547
set_robust_list(0xb7df0700, 0xc)        = 0
futex(0xbfa9b520, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGRTMIN, {0xb7f552e0, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xb7f55720, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="debian", ...}) = 0
futex(0xb7f50070, FUTEX_WAKE_PRIVATE, 2147483647) = 0
brk(0)                                  = 0x87c3000
brk(0x87e4000)                          = 0x87e4000
futex(0x8178f70, FUTEX_WAKE_PRIVATE, 2147483647) = 0
dup(1)                                  = 3
fcntl64(3, F_GETFL)                     = 0x2 (flags O_RDWR)
fstat64(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f7c000
_llseek(3, 0, 0xbfa9b2bc, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=1282816, ...}) = 0
mmap2(NULL, 1282816, PROT_READ, MAP_PRIVATE, 4, 0) = 0xb7cb6000
close(4)                                = 0
mmap2(NULL, 65535, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, 0, 0) = 0
readlink("/proc/self/exe", "/home/debian/genr"..., 4096) = 17
stat64("/home/debian/genr", {st_mode=S_IFREG|0755, st_size=194724, ...}) = 0
stat64("/home/debian/genr.en_US", 0xbfa992f4) = -1 ENOENT (No such file or directory)
stat64("/home/debian/genr.en", 0xbfa992f4) = -1 ENOENT (No such file or directory)
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=25700, ...}) = 0
mmap2(NULL, 25700, PROT_READ, MAP_SHARED, 4, 0) = 0xb7f75000
close(4)                                = 0
futex(0xb7f48a6c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigaction(SIGINT, {0x8057d98, [INT QUIT], SA_SIGINFO}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGFPE, {0x8057d98, [INT QUIT], SA_SIGINFO}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGSEGV, {0x8057d98, [INT QUIT], SA_SIGINFO}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGILL, {0x8057d98, [INT QUIT], SA_SIGINFO}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGBUS, {0x8057d98, [INT QUIT], SA_SIGINFO}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {0x8057d98, [INT QUIT], SA_SIGINFO}, {SIG_DFL}, 8) = 0
pipe([4, 5])                            = 0
brk(0x8805000)                          = 0x8805000
brk(0x8826000)                          = 0x8826000
brk(0x8847000)                          = 0x8847000
brk(0x8868000)                          = 0x8868000
brk(0x8889000)                          = 0x8889000
brk(0x88aa000)                          = 0x88aa000
brk(0x88cb000)                          = 0x88cb000
brk(0x88ec000)                          = 0x88ec000
brk(0x890d000)                          = 0x890d000
brk(0x892e000)                          = 0x892e000
brk(0x894f000)                          = 0x894f000
close(4)                                = 0
close(5)                                = 0
rt_sigaction(SIGINT, NULL, {0x8057d98, [INT QUIT], SA_SIGINFO}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGFPE, NULL, {0x8057d98, [INT QUIT], SA_SIGINFO}, 8) = 0
rt_sigaction(SIGFPE, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGSEGV, NULL, {0x8057d98, [INT QUIT], SA_SIGINFO}, 8) = 0
rt_sigaction(SIGSEGV, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGILL, NULL, {0x8057d98, [INT QUIT], SA_SIGINFO}, 8) = 0
rt_sigaction(SIGILL, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGBUS, NULL, {0x8057d98, [INT QUIT], SA_SIGINFO}, 8) = 0
rt_sigaction(SIGBUS, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {0x8057d98, [INT QUIT], SA_SIGINFO}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, NULL, 8) = 0
munmap(0, 61439)                        = 0
exit_group(0)                           = ?
debian:/home/debian# 

Ответ на: комментарий от stevejobs

Нету исходников

вывод ltrace http://zalil.ru/29932630 прервал ssh nr дальше только дубли строк идут

собственно сам бинарник http://zalil.ru/29932670

вожусь уже 2й день другой очень похожий по структуре запустился этотже нивкакую :(

o_nix ()

> Висел на сервере с Apache в папке cgi-bin отвечал за преобразование строковых данных передаваемых get параметром программой

Может его переписать? Такое использовать в реальном рабочем процессе не стоит, ящитаю.

Igron ★★★★★ ()

попробуй другую локаль выставить там EN_en какую-нить и с CP1251

dimon555 ★★★★★ ()
Ответ на: комментарий от dmitry_vk

переписать программу нет никакой возможности тк неизвестно что она делает с данными. локаль изменять пробовал, пробовал запускать на двух осях centos и debian

dmitry_vk - спасибо попробую копать в эту сторону. Через переменные окружения запускать не пробовал. Только непонятно как это правильно сделать если имя параметра мне неизвестно. Так ????

QUERY_STRING="Zyxoop..." ./genr >out.txt

На серваке всё запрашивалось без указания имени параметра.

GET запрос вида

http://sait.ru/cgi-bin/genr?Zyxoop_uxuvoocufyremoopivudoon_ywigeneecol_s__t_k__lutilinumoor_upoxup__d_iv_yd__bax_ylim__c_ilesem__g_nooc__hegefesehebevuj__powymyrekesysuh__fygeetos_yrezut__tex__d_un__tif__hykooq__g_yz__b__beek__b_us__juc__zuv__nooqihepeq_uw__dexugehezyz__tezomooc__neecivool_b_heciw_imootin_

o_nix ()
Ответ на: комментарий от o_nix

неизвестно что она делает с данными

Тогда и QUERY_STRING=... может не помочь, например, если скрипту нужны какие-нибудь переменные вроде REMOTE_ADDR, HTTP_REFERER, или, скажем, куки.

Eddy_Em ☆☆☆☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.