Bom Dia,
Ando afastado do blog por alguns motivos particulares, e de estudos, desculpem-me, logo voltarei a postar mais material bacana.
Vamos lá, hoje tinha um script compilado, coisa antiga, sem o source, e precisava saber o que realmente ele fazia, foi então que precisei fazer um 'dump' para pegar o que ele executava.
Algumas pesquisas, algumas leituras, alguns testes, até chegar a este processo.
- Vamos na verdade iniciar o script porém logo em seguida vamos matar o mesmo, para pegar o que ficou na memória, e fazer esse 'DUMP'
- Vamos aumentar o tamanho do 'core' do linux para 1Mb
# ulimit -c 1000000
- Agora vem o pulo do gato, vamos executar o script, com um sleep de alguns microssegundos, e logo em seguida vamos matar ele mesmo $! , repare que nosso script tem o '.sh.x', isso não é regra, o script pode estar somente com '.sh', como sem nenhum ponto.
# ./script.sh.x & ( sleep 0.02 && kill -SIGSEGV $! )
Ao rodar o 'script' o sistema vai retornar um errro "[1]+ Segmentation fault (core dumped) ./script.sh.x", vai ser criado um arquivo chamado "core.alguma_coisa" , dentro dele vai ter o conteúdo do script, porém vai estar bem poluído, para tal, vamos limpar o mesmo.
# cat core.alguma_coisa| strings
Agora você vai ter a saida em texto puro do script.
Lembrando, somente, utilize esse procedimento quando você é autor do binário, caso contrário estará violando as leis.
Forte Abraço Marcos Carraro.
tentei fazer um teste mas não foi gerado o arquivo core.alguma_coisa, estou usando o Ubuntu 16.04
ResponderExcluir