30 de mai. de 2015

Edgar Allan Poe e Criptografia

1 comentários
"dizemos novamente deliberadamente que o engenho humano não pode inventar uma cifra que o engenho humano não possa resolver." - Edgar Allan Poe

Edgar Allan Poe (1809-1849), foi um autor, poeta, editor e crítico literário americano. Exerceu grande influência em autores como Baudelaire e Dostoievski. Poe, um dos autores de maior destaque dos contos de horror era fascinado pela criptografia. 

Durante a I Guerra Mundial, Edgar Allan Poe propôs um desafio em dezembro de 1839 na Alexander's Weekly Messenger, uma revista sobre literatura da Filadélfia, afirmando que ele poderia resolver qualquer cifra de substituição simples que for submetido à ele pelos leitores. 
Uma cifra por substituição simples consiste em um método de encriptação na qual unidades do texto plano são substituídas pelo texto cifrado. As unidades podem ser: uma letra, pares de letras, uma mistura de tudo, e assim por diante. Uma cifra por substituição simples é baseada em somente um alfabeto.

15 de mai. de 2015

PGP

0 comentários
O PGP (Pretty Good Privacy) é um sistema de criptografia híbrido por combinar a segurança da cifragem por chave pública com a velocidade da  chave privada, sendo a cifragem da chave privada cerca de mil vezes mais rápida que a de chave pública. Baseado no PKI (Public Key Infrastructure), usa os algoritmos RSA e Diffie-Hellman. Foi criado por Philip Zimmermann em 1991. Ele é utilizado principalmente para cifrar emails, autenticar mensagens usando a assinatura digital e para cifrar arquivos, diretórios ou até mesmo partições inteiras.

23 de mar. de 2015

Makefile

0 comentários

    O GNU make foi escrito por Richard Stallman e Roland McGrath sendo mantido atualmente por Paul Smith. O make determina qual pedaço de um programa precisa ser recompilado. Ele é bastante usado nos programas em C, mas podemos usar o make em qualquer linguagem de programação onde o compilador pode ser executado no shell. Para usar o make, precisamos de um arquivo chamado makefile para dizer ao make o que fazer.
  • Makefile:
    Consiste em "regras" com a seguinte forma:
alvo ... : pré-requisitos ...    
 <TAB> comando   
  ...

12 de set. de 2014

Bomba binária

2 comentários
A bomba binária é um projeto de laboratório do livro "Computer Systems - A Programmer's Perspective" do Randal E. Bryant e David R. O'Hallaron, distribuido no site http://csapp.cs.cmu.edu/. É um ótimo treinamento para o assembly x86.   
  • A bomba binária - by: Dr. Evil:
O malígno Dr. Evil plantou algumas 'bombas binárias' em algumas máquinas. Uma bomba binária é um programa que consiste em uma sequência de fases. Em cada fase é preciso digitar uma string particular na entrada padrão (stdin). Se você digitar a string correta, então a fase é 'desarmada' e prossegue para a próxima. Caso contrário, a bomba explode imprimindo 'BOOM!!!' e é encerrado. 

GDB

0 comentários

O GNU Project Debugger permite executar e modificar programas compilados por etapas, examinar a memória dos programas e ver os registros do processador. O GDB suporta as linguagens ADA, C, C++, assembly, e outros.
  • Comandos básicos:
run: inicia a execução do programa.
kill: termina a execução do programa.
q: sai do gdb.
b *A: insere um breakpoint no endereço absoluto A. 
step <n>: executa a linha atual e passa para a próxima linha.
next <n>: continua a execução até a próxima linha da função atual.
display <expressão>: imprime o valor atual da variável passada como argumento.
undisplay <n>: remove a entrada "n" da lista de exibição.
print <expressão>: imprime o valor de uma variável ou expressão sem adicioná-los a lista de exibição.
info reg: lista os registros.
x /CT A:  C número de unidades para exibir.
                  T x número inteiro.
                     b binário.
                     c caractere.
                     s string que termina nula.
                  A endereço absoluto. 

13 de out. de 2013

Irssi

0 comentários
   irssi é um cliente irc para sistemas unix, baseado no ncurses.

  • Instalação:

$ sudo apt-get install irssi

    Para iniciar o irssi, use o comando:
$ irssi

    Temos 3 comandos para fazer as conexões:
/server - Conecta ao servidor específico. Ex: /server irc.freenode.net
/connect - Conecta ao servidor específico, podendo fazer outras conexões simultâneas. Ex: /connect irc.freenode.net e /connect irc.oftc.net
/disconnect - Desconecta.

    Para alternar entre as conexões, use o ctrl+x.

    Use o join para entrar em um canal:
/join #irssi

17 de set. de 2013

Python - eval() ou evil()?

1 comentários
    A linguagem python possui várias funções para interagir com o interpretador, uma delas é a eval(), que avalia uma string como uma expressão python:
>>> assert eval("3*3 + len('zeldani')") == 16
>>> marmotas = 7
>>> eval("pow(marmotas,3)")
343

    Podemos executar os mais remotos comandos através do __import__ do módulo __builtins__:
>>> eval("__import__('os').system('clear')", {})
>>> eval("__import__('os').getcwd()", {})
'/home/zeldani'

>>> eval('eval(compile("import os;os.system(\\"ls\\")","q","exec"))')

23 de jul. de 2013

Vim Plugins

0 comentários
    Pela necessidade tive que aprender a usar o Vim, pois o meu Sublime Text 2 expirou. Pesquisando no Google, achei vários plugins interessantes que facilitam a edição, visualização e configuração do vim.
  • NerdTree:
    
    O Nerd Tree permite que vc explore seus arquivos do sistema, que ficam facilmente visualizados na forma de ramificações (tree).



Instalação:
cd ~/.vim/bundle  
git clone https://github.com/scrooloose/nerdtree.git

No Fedora:
# yum install vim-nerdtree     

    Para iniciar o NerdTree, no modo normal use o :NERDTree.