SUN Solaris: hacks http://solaris.org.ru _________________________________________________________________ Как получить вечную лицензию для SUN WorkShop 5.0 Идея этого хака до безобразия проста и элегантна. Мы надеемся что вы не воспользуетесь им для промышленной эксплуатации Sun WorkShop. Просто это один из способов использования LD_PRELOAD, например так же например работает runsocks из пакета Socks5. Как известно Sun WorkShop использует систему FlexLM &tm; для проверки лицензий. 1. Получаем временную лицензию на месяц: SPARC: http://jsecom4.sun.com:80/ECom/licenses/sparc.dat x86: http://jsecom4.sun.com:80/ECom/licenses/intel.dat 2. Из этого исходника делаем shared library. которая переопределяет функцию time(3). /* gcc -fpic -shared -O4 -pipe -s -o xflexlm.so xflexlm.c */ #include #include #include #include #include static void *libc_handle = NULL; static long (*time_ptr)() = NULL; static int xflexlm_inited = 0; static void xflexlm_init (void) { if (libc_handle = dlopen ("libc.so", RTLD_LAZY)) { if (!(time_ptr = dlsym (libc_handle, "time"))) fprintf (stderr, "xflexlm: can't find time()\n"); } else fprintf (stderr, "xflexlm: can't open libc.so, sorry\n"); xflexlm_inited = 1; } time_t time(time_t *tloc) { time_t value; if (!xflexlm_inited) xflexlm_init(); value = (*time_ptr)(tloc); return (time_t)920000000; /* 26-Feb-1999 */ } 3. Делаем shell wrapper для всех программ #!/bin/sh # # Fool workshop compiler ;) # LD_LIBRARY_PATH=/opt/SUNWspro/xflexlm export LD_LIBRARY_PATH LD_PRELOAD=xflexlm.so export LD_PRELOAD case `basename $0` in cc) exec /opt/SUNWspro/SC4.0/bin/cc $* ;; CC) exec /opt/SUNWspro/SC4.0/bin/CC $* ;; workshop) exec /opt/SUNWspro/WS5.0/bin/workshop $* ;; *) echo "Hmm, don't know full path to executable `basename $0`" esac 4. Устанавливаем их в /opt/SUNWspro/bin root# cd /opt/SUNWspro/bin root# unlink cc CC workshop root# cp ~/ws_wrapper.sh cc root# ln cc CC root# ln cc workshop 5. Все, теперь можно забыть про лицензии... ;-) _________________________________________________________________ (x) 2000 solaris.org.ru Changes: Thursday, 08-Jun-2000 23:54:26 IRKST