Encontrei esta ferramenta e quando baixei é um executável bash que contém código binário.
Primeiramente eu não sabia que isso era possível. Alguém sabe quem isso pode ser feito? Também não tenho certeza de quão seguro isso é geralmente, pois não posso ter certeza do que o arquivo bash contém
Este é um programa Java independente que se baseia em alguns “truques”:
META-INF/MANIFEST.MF
) que especifica a classe Java a ser iniciada;java -jar
, dado um arquivo JAR, examinará o manifesto e iniciará a classe correspondente, carregando quaisquer outros recursos necessários do arquivo JAR e do Java runtime (pode-se também especificar outra classe a ser executada, mas isso não é relevante aqui);Assim
svg2png
é um arquivo JAR, mas com um script de shell pré-anexado:Quando executado, isso executará um shell, que será substituído
java -Xmx1G -jar
pelo nome do “script” (svg2png
por qualquer caminho usado) e por quaisquer argumentos.-Xmx1G
define o tamanho do heap e-jar
informa à JVM para “executar” o arquivo JAR fornecido,svg2png
neste caso. O restosvg2png
é o arquivo JAR; em particular, contém o seguinte manifesto:Isso instrui a JVM a executar a
org.sterl.svg2png.Main
classe, que inicia o programa.Você encontrará mais detalhes sobre o formato ZIP na Wikipedia , em particular a descrição da estrutura que mostra como o formato permite dados arbitrários no início do arquivo (e em outras posições). Os arquivos ZIP são identificados por seu “diretório central”, que reside no final do arquivo.