[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Ajuda urgente !!
From: |
MrBiTs |
Subject: |
Re: [shell-script] Ajuda urgente !! |
Date: |
Thu, 24 Feb 2011 07:01:59 -0300 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 02/23/2011 20:45 , Leonardo Bites wrote:
> Gelera desculpa ai o problema meio off-topic, mas to com um problema
> urgente e não consigo achar nada pra resolver...
>
> Vamos lá o lance é o seguinte existia um funcionario que trabalhava
> aqui e esse FDP criptografou todos os scripts que temos rodando nos
> servidores com um programa chamado SHC e o cara foi embora sumiu e
> levou todos os fontes, e pra ficar melhor agora todos os scripts
> pararam de funcionar alguem sabe como descriptografar essa porcaria ou
> como eu posso fazer pra mostrar a execução do script linha a linha ou
> alguma coisa do tipo ????
>
>
> Por favor HELP PLEASE !!!!
>
>
Huhu. Que legal.
Usar SHC (um cara bem legal, inclusive) para "compilar" os scripts não os
protege, na verdade. Só precisamos conhecer um pouquinho
mais o SO onde trabalhamos.
O binário decriptografa e carrega o script na memória quando ele inicia. Você
pode, logo depois de iniciar o binário, simplesmente
gerar m segfault e ler o script do coredump gerado
Receitinha de bolo hein:
#! /bin/bash
echo "Inicia o script e faz qqr coisa"
sleep 1
echo "Pronto"
Compile-o com o shc:
shc -f test.sh
Inicie-o em bg e mate-o num segfault. Eu faço assim:
./test.sh.x& ( sleep 0.2 && kill -SIGSEGV $! )
sleep 0.2 vai dar ao binário tempo suficiente para iniciar e decriptografar o
script original. Não aumente muito esse valor.
A variável $! contém o PID do último processo iniciado em bg, mas isso você
sabe. Fica fácil então matar esse processo com o
SIGSEGV, que é o mesmo que um kill -11 $!.
Olha que legal:
[1] + segmentation fault (core dumped) ./test.sh.x
Agora vamos procurar no dump o script original:
strings core | more
Usei o strings no dumpfile, que me mostra todos os caracteres imprimíveis no
arquivo, e podemos ver o script original no meio do lixo:
...
4.0.35-release
BASH_VERSINFO
BASH_VERSINFO
release
x86_64-pc-linux-gnu
BASH_EXECUTION_STRING
BASH_EXECUTION_STRING
#! /bin/bash
echo "Inicia o script e faz qqr coisa"
sleep 1
echo "Pronto"
503
EUID
EUID
503
Se o script é muito grande, você deverá ajustar o tamanho do coredump com o
ulimit. Certifique-se de que ulimit não está em 0, ou o
coredump não vai ser gerado.
<OFF-TOPIC TROLL>
Que esse episódio sirva de lição a todos vocês. É a coisa mais cretina do mundo
você montar um repositório com SVN, GIT, CVS ou
qualquer outra porcaria existente por ai e baixar uma política de que todo e
qualquer típo de código deve ser armazenado em sua
última versão nesse repositório. É a coisa mais babaca você ver quando foi o
último commit do cara e qual é a versão corrente na
produção. Ontem ainda, no engenho, estavamos brincando de ver quem tinha feito
mais commits. O trabalho é tão pequeno que não
justifica vocês preferirem ter esse tipo de problema. Olha só o trampo que o
Leonardo vai ter para recuperar os scripts. Se tivesse
montando um repositório, isso não teria acontecido.
</OFF-TOPIC TROLL>
- --
LLAP
.0. MrBiTs - address@hidden
..0 GnuPG -
http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
000 http://www.mrbits.com.br
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (Darwin)
iQEcBAEBCAAGBQJNZiyXAAoJEG7IGPwrPKWrdQ4H/RL6CiTE6h956v6b071ODWRS
yTYW2j+cDjUutnqy1q0u/jihNizDwg/XzXZg6xrvh1cVIC1xcnCvsi9zKJ0Rfw/3
ZcGLTWljpm5Q8IOI4KHMXNCji2HnnUspkQXCMwclPt+G74WGIOwuSkv50K5TN5EF
AzHKrq4ejt0LuBacywf4ef03OfQGi/ofOjmzpZ9dmIQnj85Mxz4hn7uOO4mCpOGE
izfM1dxjoNqdB87Nd5LYRC7cy4dWUnFA304sfOWKbblYvSYKHByRP4nHx+qik8Ou
GYG/kQV3p24XB5c6J17lX5ec3RffQvA/wqp+QSVvtEIPZpUre3VzLlWQbHoLw1k=
=eUFF
-----END PGP SIGNATURE-----
- Ajuda urgente !!, Leonardo Bites, 2011/02/24
- Re: [shell-script] Ajuda urgente !!,
MrBiTs <=