imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Интернет, Глобальные и Локальные сети > Руководство для новичков
Опции темы
Старый 07.06.2007, 00:43     # 1
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Скрипт "отсигнирования" .jar файлов

Вот така задача: Тмеется много просигнированных ява-архивов.
Если кто не в курсе это по идее простые зипы (Zip) но c окончанием .jar

Исходим из того, что в нутри каждого есть кталог "META-INF".
В нём имется файл Manifest.fm. Так вот чтобы убрать сигнатуру такого jar-фала то по идее достаточно стереть нижнию часть содержимого файла manifest.fm оставив верхнюю (начиная с кажем с первой пропущеной строки и до кноца).

Для чисчтоты ещё не плохо бы в каждом jare стереть всё содержимое каталога META-INF кроме MANIFEST.FM.

Идея такая: скрипт котрый бежит по всем файлам с окончанием ".jar" (пусть они будут в текущем каталоге..) и делает над ними вышеописанные операции...

Вот пробежаться по файлам я ещё могу... А вот что бы выполнить вышеуказанные операции нужна ваша ПОМОЩЬ!

Пожалуйста помогите соотвествующим скриптом в идеале под виндовс...
но можно и под линукс или в antе...

Заранее благодарен!!!
shuron вне форума  
Старый 08.06.2007, 13:26     # 2
helldomain
Administrator
 
Аватар для helldomain
 
Регистрация: 13.05.2002
Сообщения: 11 227

helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
(jar == zip) = true
__________________
Осколки прошлого, как снег, закрутит ураган времён,
В ушедший день для нас навек, обрушив мост,
Оставив в наших душах след, тьма уплывёт за горизонт,
И в чистом небе вспыхнет свет, свет новых звёзд.
helldomain вне форума  
Старый 08.06.2007, 23:30     # 3
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Цитата:
Сообщение от helldomain Посмотреть сообщение
(jar == zip) = true
Да это же я знаяю, яж написал об этом..
ты лучше дай КОД на Виндовскрипте котрый распаковывыет, лезт в Файл и стирает не нужное!
shuron вне форума  
Старый 09.06.2007, 11:42     # 4
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
А это вообще зачем? Точно цели легальные?
Под винду-то я вряд ли смогу помочь, но накидать в Линуксе могу скрипт. Только вот меня гложат сомнения по "честности" удаления подписи, ведь не зря подписывали его?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 10.06.2007, 00:37     # 5
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Цитата:
Сообщение от Hubbitus Посмотреть сообщение
А это вообще зачем? Точно цели легальные?
Под винду-то я вряд ли смогу помочь, но накидать в Линуксе могу скрипт. Только вот меня гложат сомнения по "честности" удаления подписи, ведь не зря подписывали его?
Заверю тебя что всё легально.. Просигировали глючным сертификатом кучу библиотек (собственных и опен сорс) с ним нихрена не работает... Причём его так глючнуло что при пресегнированию дургим он не стирается... тоесть как бы два в файле содержутся...
короче глюки страшные идут..

для одного джара я попробовал если стираешь и сигинруешь новым сертификатом не глючным.. то всё пашет.. проблема в том что библиотьек много.. ну версий там куча вернее..

Короче это же не сложно.. я надеялся на скорую помошь тут...
Но вивдимо придётся в даваться в дебри виндовсскриптинга.. с неизвестным исходом полезности...

добавлено через 1 минуту
Цитата:
Сообщение от Hubbitus Посмотреть сообщение
но накидать в Линуксе могу скрипт. Только вот меня гложат сомнения п
Было бы супер!!!
shuron вне форума  
Старый 18.06.2007, 22:19     # 6
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Сообщение от shuron Посмотреть сообщение
Было бы супер!!!
Пожалуйста.
Извини что так долго, совсем не до этого было...

Комментарии с настройками в коде. Думаю что там все понятно. Тестировалось небрежно, на 5 файлах, но работало нормально.

Для работы требуется zip, unzip, awk.
Еслим что будет не понятно - с радостью отвечу.

Код:
#!/bin/bash

#CaseSensitive!
EXT=jar
#Расширение, с которым оставлять оригинал. Если оставить пустое, то файлы будут перезаписываться.
BAK_EXT=bak
TMP_DIR=wirking_dir.tmp

FULL_LOG=LOG.LOG
#Uncomment this line, if log not needed
#FULL_LOG=/dev/null

echo Starting at `date` > $FULL_LOG

	if [ ! "$1" ]; then
	echo 'Необходимо передать директорию для обработки первым параметром!'
	exit 1
	fi
DIR=$1

	if [ ! -d $TMP_DIR ]; then
	mkdir $TMP_DIR
	fi


	for File in $DIR/*.$EXT
	do
	echo ======================================
	echo Обрабатывается $File | tee -a $FULL_LOG
	( unzip -x $File -d $TMP_DIR 2>&1) >>$FULL_LOG
	#"Для чисчтоты ещё не плохо бы в каждом jare стереть всё содержимое каталога META-INF кроме MANIFEST.FM."
	#Do it
	ls -1 $TMP_DIR/META-INF | grep -v 'MANIFEST.MF' | xargs -r rm >> $FULL_LOG 2>>$FULL_LOG
	#"Так вот чтобы убрать сигнатуру такого jar-фала то по идее достаточно стереть нижнию часть содержимого файла manifest.fm оставив верхнюю (начиная с кажем с первой пропущеной строки и до кноца)."
	#Do it
	awk 'BEGIN {RS="\r?\n\r?\n.+"} { print $0}' $TMP_DIR/META-INF/MANIFEST.MF > $TMP_DIR/META-INF/MANIFEST.MF.tmp
	mv $TMP_DIR/META-INF/MANIFEST.MF.tmp $TMP_DIR/META-INF/MANIFEST.MF
	#Пакуем обратно
		if [ "$BAK_EXT" ]; then
		mv $File $File.$BAK_EXT
		else
		rm $File
		fi
	CUR_PWD=`pwd`
	cd $TMP_DIR
	( zip -9r `basename $File` ./* 2>&1 ) >>$FULL_LOG
	#	>> $FULL_LOG 2>>$FULL_LOG
	cd $CUR_PWD
	mv $TMP_DIR/`basename $File` $File
	echo -e "\tDONE"	| tee -a $FULL_LOG
	rm -rf $TMP_DIR/*
	done

rmdir $TMP_DIR
P.S. Очень все-таки надеюсь что правда относительно честных намерений, а не чьи-то копирайты у ворованного контента снимаете.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 02.08.2007, 00:07     # 7
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
Отлично работает как надо! манифест чистит. правда там ещё файлы надо, потиреть но это я может допишу сам.

И не сомневайся в назначении как я уже писал выше
shuron вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 08:39.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.