Menu

Mostrar postagens

Esta seção permite que você visualize todas as postagens feitas por este membro. Observe que você só pode ver postagens feitas em áreas às quais tem acesso atualmente.

Menu Mostrar postagens

Mensagens - kodo no kami

#16
Contato Com a Administração / Re:Sugestões
Abril 26, 2017, 23:02:25 PM
- uma area voltada a programação e desenvolvimento seria bem legal

- uma area de informatica geral, poderia postar assuntos como rede, eletronica e robotica (ta robotica foi meio exagerado kkk), eletronica daria para criar postagem sobre diversos temas como hardware de video game, computadores, arquiteturas antigas etc

- uma forma de redimensionar imagens pelo bbcode e que elas são carregadas em tempo de execução por um spoiler kkk
#17
Assuntos Diversos / [tutorial] discord: music bot
Abril 26, 2017, 21:29:12 PM
e ae galera nesse tutorial vou ensinar instalar o bot de musica para o discord que ira permitir tocar musica em um servidor com uma playlist especifica ou ate mesmo ser adicionado a musica na playlist pelos outros usuarios, no caso o bot que vamos instalar sera esse

MusicBot (github)

nesse tutorial vamos instalar esse bot no linux porem o mesmo pode ser feito no windows ja que o bot é em python, para esse bot funcionar é necessario ter o python3.5 ffmpeg e pip instalado (no meu caso o python 3.5 não tem no repositorio do meu debian so o 3.4 entao tive que encontrar um repo com o 3.5 sem dizer que na instalação dele e do ffmpeg alguns programas foram removidos por causa das dependecias '-' ), alem deles precisamos tambem dos modulos discord.py e youtube_dl e alguns outros porem eles são instalados automaticamente, então vamos começar baixando o bot e indo no site e apertando em download ou clonando via git mesmo que é o meu caso

git clone https://github.com/Just-Some-Bots/MusicBot.git

http://i66.tinypic.com/2sb5r21.jpg

a gente abre o diretorio do script com o terminal e rodamos o script (no caso do linux o run.sh) com isso ele vai instalar para gente os modulos necessario pelo menos no linux ele faz isso (dependendo pode da erro no meu caso aqui deu no pyNaCl tive que instalar o build-essential libffi-dev python3.5-dev para instalar ele)

sudo sh run.sh

http://i63.tinypic.com/2mx1jea.jpg

agora a gente entra no site do discord para criar o bot no servidor, depois apertamos em new application

https://discordapp.com/developers/applications/me

http://i65.tinypic.com/a0uyi9.jpg

podemos escolher um nome e uma imagem para bot, depois basta apertar em create application

http://i67.tinypic.com/2agqov8.jpg

depois disso o bot sera criado entao temos que criar um bot user apertando em Create a Bot User

http://i68.tinypic.com/n69o43.jpg

agora ele vai gerar um opção de "APP BOT USER" essa opção vai ter um username e um token no caso do token vai ter um link escrito click to reavel apertamos nele, esse token é importante por que vai ser ele que vai integrar o bot de musica nesse app bot então anotamos esse token

http://i67.tinypic.com/w9709c.jpg

agora temos que especificar o servidor que o bot vai acessar para isso a gente pega o Client ID do nosso bot e vamos nessa url porem substituimos onde eu coloquei IDDOBOT pelo id do nosso bot depois disso selecionamos o servidor onde vai ativar o bot (esses servidores são os seus ou que tem permissão para adicionar bot)

https://discordapp.com/api/oauth2/authorize?client_id=IDDOBOT&scope=bot&permissions=0

http://i68.tinypic.com/28tgyua.jpg

depois de apertar em autorizar na parte anterior sera criado o novo bot no servidor

http://i65.tinypic.com/b535p5.jpg

agora abra a pasta do bot de musica dentro dela vai ter uma pasta chamada config abra ela tambem, vai ter dois arquivos dentro exemple_options.ini e exemple_permissions.ini mude o nome deles para options.ini e permissions.ini, depois abra em um editor de texto o options.ini na parte "Token =" coloque o token do bot

http://i65.tinypic.com/20j0pox.jpg

no "OwnerID =  " colocamos o id do usuario que seria o admin do bot que na maior parte das vezes é voce mesmo, para conseguir esse ID abra o discord depois aperte o botao direito do mouse em cima do seu usuario e "copiar id" (caso essa opção nao esteja aparecendo procura na configuração do servidor modo desenvolvedor e habilite ele), depois de copiar o id coloque ele no OwnerID e salve o arquivo

http://i67.tinypic.com/2607p6e.jpg

pronto agora basta executar o bot novamente se tudo der certo ele vai fica on

sudo sh run.sh

http://i68.tinypic.com/e5jygz.jpg

depois disso basta ir no canal de audio e usar o comando !summon para invocar ele no caso vai começar tocando a playlist padrao entao usamos !play seguido do video do youtube para adicionar a musica na playlist ou !queue para exibir a playlist entre outros comandos

http://i65.tinypic.com/2v8pwz4.jpg

bom galera é possivel modificar a playlist padrao alterando o arquivo autoplaylist.txt, ou configurar permissão com o arquivo permissions.ini entre muitas outras coisas \o

by kodo no kami
#18
então galera continuando o tutorial anterior de como criar uma assinatur basica no photoshop, nessa parte vamos aplicar alguns estilos na borda e tambem colocar a render e o background, para começar a gente seleciona todas as camadas da borda segurando o control e clicando nelas



depois aperte em mesclar camadas isso vai juntar todas as camadas da borda em uma unica camada ficando duas camadas uma sendo o fundo e a outra a borda



agora apertamos na camada da borda e depois na aba estilos e escolhemos um estilo (voce pode baixar novos estilos da internet ou criar o seus), depois de selecionar o estilo desejado a borda vai mudar para aquele estilo



agora a gente carrega a imagem do personagem no caso a render indo no menu arquivo -> abrir e buscamos a imagem, depois disso vai abrir uma nova aba com a imagem entao vamos nessa nova aba e selecionamos tudo com o atalho crtl+a depois copiamos com o atalho ctrl+c



voltanmos para aba original e colomos la com o atalho ctrl+v, porem se a gente perceber a imagem fico enorme



selecionamos a ferramenta mover (w) ja que com essa ferramenta podemos redimensionar a imagem tambem porem redimensione ela segurando o shift que vai diminuir sem deformar a imagem e sem perda, tambem coloque na posição que voce deseja que a render fica independente se ficar para fora



duplicamos a camada da render e arrastamos uma para baixo da camada da borda isso vai permitir a gente apagar a  camada de cima que fica sobreposto sem afetar a imagem como um todo é isso que permite aquele efeito do personagem esta saido de dentro da borda para fora ou quando apagar a imagem de fora nao fica defeituosa faltando pixel da perna da garota kkkk



agora selecionamos a ferramenta borracha e apagamos a camada da render que fica por cima no caso a parte que nao sera exibida que vai ficar dentro da borda (uma boa dica tambem é voce selecionar a parte que vai apagar e deletar), no meu caso vou apaga as pernas da sinon para ficar parecendo que ela esta dentro da bordar (tambem tive que apagar uma parte da perna na segunda render ja que parte da perna dela tambem estava saindo pra fora)



agora carregamos a imagem do fundo e copiamos e colamos como fizemos com a render porem o fundo vai ficar em baixo de todas as outras camadas, tambem é possivel criar uma nova camada e colocar um estilo nela, uma dica é que fundo nao deve se destacar tanto quanto a render ou texto se nao pode atrapalhar a visao sobre eles



agora apagamos a parte de fora do fundo com a borracha (ou selecionamos ela e apagamos)



nossa sign esta quase pronta falta a parte da tipografia no caso o texto, para isso selecione a ferramenta texto e escreva o seu nome ou nome do personagem ou sei la o nome do seu cachorro (so me pergunto por que raio tu ta fazendo uma sign para um cachorro '-'), depois escolha um estilo para o texto tambem



agora removemos aquela primeira camada em branco para ficar apenas a sign



entao galera nossa primeira sign esta pronta so que ainda tem muita coisa que poderia ser feita nela como mexer com sombra ou colocar um imagem por cima de tudo e diminuir a opacidade para deixar uma tonalidade mais especifica e muito mais



by kodo no kami
#19
entao galera hoje vou sair um pouco da minha zona de conforto e escrever um tutorial que não seja sobre programação, rede ou segurança da info e sim sobre design (sim para quem me conhece ja sabe que sou um péssimo design viva telinha preta do terminal ne interface GUI é pros fracos '-' kkkk), nesse tutorial eu vou ensinar criar um sign basica para isso abrimos o photoshop no meu caso o cs6

http://i63.tinypic.com/34jdg06.jpg

agora apertamos em arquivo -> novo, depois selecione um tamanho para sua sign nome meu caso vai ser 420 de largura e 300 de altura, depois aperte ok

http://i67.tinypic.com/dyodtu.jpg

agora criamos uma nova camada ja que o fundo vai ser deletado depois, para criar a nova camada apertamos na aba camada e no botao que fica em baixo, depois apertamos em cima da camada criada para a gente manipular ela e nao o fundo

http://i68.tinypic.com/30x7i36.jpg

agora a gente arrasta a regua para a gente ter uma base (caso no seu photoshop a regua nao esteja ativada apert ctrl+r), depois disso arrastamos a do topo para meio do palco e depois fazemos o mesmo com a da lateral para fazer uma cruz

http://i63.tinypic.com/olkx1.jpg

pronto agora ta configurando o nosso ambiente onde vamos trabalhar na sign

http://i64.tinypic.com/2e1bwuu.jpg

agora vamos no google e buscamos duas coisa a primeira é um render de um personagem que são imagens de personagem ja recortados sem fundo e a segundo background (que pode ser um wallpaper tambem ou ate mesmo um style do photoshop), no caso vou fazer a sign da sinon do anime sword art online

http://i68.tinypic.com/335b9q9.jpg

voltamos para o photoshop, nele apertamos na ferramenta caneta e damos um clique na parte inferior da regua vertical

http://i64.tinypic.com/nx6syo.jpg

depois damos outro clique na outra ponta da linha horizontal assim gera uma linha entre os dois pontos

http://i63.tinypic.com/hrg03k.jpg

agora damos um clique em cima da linha que foi gerada pela canete (deve ser exatamente em cima da linha) sendo um pouco perto do final dela para gerar 3 pontinhos para gente criar uma curva

http://i65.tinypic.com/2rzub9i.jpg

naqueles 3 pontinhos que foram gerados a gente segura o control e clicamos no pontinho do meio e arrastamos para baixo para criar a curva

http://i66.tinypic.com/34drewg.jpg

agora clicamos perto do ponto onde começamos (nao junte eles ainda se nao voce nao vai conseguir manipular a linha)

http://i65.tinypic.com/29dik44.jpg

agora damos um clique na linha a acertamos aquela linha reta proxima a outra curva

http://i64.tinypic.com/2e1bnu8.jpg

agora basta dar um clique no ponto onde começamos a caneta para finalizar fechando todo contorno, depois disso nao clique em nada (se nao voce vai ter um trabalho para selecionar isso) assim que fechar o contorno aperte o botao direito do mouse dentro da bordar e aperte em preecher demarcador e depois aperte ok, se tudo der certo deve mudar de cor dentro do contorno

http://i67.tinypic.com/2q19d9u.jpg

coloque na ferramenta letreiro retangular (M) e selecione a pontinha da bora nos dois lados um de cada vez (para maior precisao segure o control), depois shift+delete para apagar a ponta isso vai permitir juntar os lados da bordar

http://i65.tinypic.com/2ik8sua.jpg

agora duplicamos essa cama 3x para ficar 4 camadas iguais ou seja vamos usar a mesma camada para fazer todos os lados, para duplicar apertamos botao direito do mouse em cima da camada e depois duplicar

http://i64.tinypic.com/m73ty8.jpg

colocamos a ferramenta mover (W) colocamos na ordem certa tambem redimensionamos e trocamos de lado algumas basta redimensionar para alem da largura minima dela

http://i63.tinypic.com/29zu4bb.jpg

pronto temos o prototipo da borda

http://i66.tinypic.com/5ts9hg.jpg

bom galera esse tutorial ta ficando um pouco grande vou continuar ele e uma segunda parte onde vamos colocar as imagens e estilo na borda

----------------
2º parte
----------------

então galera continuando o tutorial anterior de como criar uma assinatur basica no photoshop, nessa parte vamos aplicar alguns estilos na borda e tambem colocar a render e o background, para começar a gente seleciona todas as camadas da borda segurando o control e clicando nelas

http://i67.tinypic.com/33xueyg.jpg

depois aperte em mesclar camadas isso vai juntar todas as camadas da borda em uma unica camada ficando duas camadas uma sendo o fundo e a outra a borda

http://i68.tinypic.com/29bzhjr.jpg

agora apertamos na camada da borda e depois na aba estilos e escolhemos um estilo (voce pode baixar novos estilos da internet ou criar o seus), depois de selecionar o estilo desejado a borda vai mudar para aquele estilo

http://i67.tinypic.com/2igotut.jpg

agora a gente carrega a imagem do personagem no caso a render indo no menu arquivo -> abrir e buscamos a imagem, depois disso vai abrir uma nova aba com a imagem entao vamos nessa nova aba e selecionamos tudo com o atalho crtl+a depois copiamos com o atalho ctrl+c

http://i65.tinypic.com/t0rklw.jpg

voltanmos para aba original e colomos la com o atalho ctrl+v, porem se a gente perceber a imagem fico enorme

http://i65.tinypic.com/fem146.jpg

selecionamos a ferramenta mover (w) ja que com essa ferramenta podemos redimensionar a imagem tambem porem redimensione ela segurando o shift que vai diminuir sem deformar a imagem e sem perda, tambem coloque na posição que voce deseja que a render fica independente se ficar para fora

http://i66.tinypic.com/qznar6.jpg

duplicamos a camada da render e arrastamos uma para baixo da camada da borda isso vai permitir a gente apagar a  camada de cima que fica sobreposto sem afetar a imagem como um todo é isso que permite aquele efeito do personagem esta saido de dentro da borda para fora ou quando apagar a imagem de fora nao fica defeituosa faltando pixel da perna da garota kkkk

http://i67.tinypic.com/2b2k4y.jpg

agora selecionamos a ferramenta borracha e apagamos a camada da render que fica por cima no caso a parte que nao sera exibida que vai ficar dentro da borda (uma boa dica tambem é voce selecionar a parte que vai apagar e deletar), no meu caso vou apaga as pernas da sinon para ficar parecendo que ela esta dentro da bordar (tambem tive que apagar uma parte da perna na segunda render ja que parte da perna dela tambem estava saindo pra fora)

http://i68.tinypic.com/261yn3t.jpg

agora carregamos a imagem do fundo e copiamos e colamos como fizemos com a render porem o fundo vai ficar em baixo de todas as outras camadas, tambem é possivel criar uma nova camada e colocar um estilo nela, uma dica é que fundo nao deve se destacar tanto quanto a render ou texto se nao pode atrapalhar a visao sobre eles

http://i66.tinypic.com/1rqflj.jpg

agora apagamos a parte de fora do fundo com a borracha (ou selecionamos ela e apagamos)

http://i66.tinypic.com/29wrbck.jpg

nossa sign esta quase pronta falta a parte da tipografia no caso o texto, para isso selecione a ferramenta texto e escreva o seu nome ou nome do personagem ou sei la o nome do seu cachorro (so me pergunto por que raio tu ta fazendo uma sign para um cachorro '-'), depois escolha um estilo para o texto tambem

http://i65.tinypic.com/ic4ug9.jpg

agora removemos aquela primeira camada em branco para ficar apenas a sign

http://i65.tinypic.com/2emg7mb.jpg

entao galera nossa primeira sign esta pronta so que ainda tem muita coisa que poderia ser feita nela como mexer com sombra ou colocar um imagem por cima de tudo e diminuir a opacidade para deixar uma tonalidade mais especifica e muito mais

http://i66.tinypic.com/35ja6wk.jpg

by kodo no kami
#20
e ae galera beleza nesse tutorial vou falar um pouco sobre um simulador pic da oshonsoft, ele é um simulador bem simples que simula diversas familia de microcontroladores pic entre pic10, pic16, pic18 e outras arquiteturas como avr, 8051 e z80, ele tambem tem um compilador integrado para programar na linguagem basic e assembly

site oficial

podemos abrir ele 30 vezes antes de expirar ja que é um soft comercial =/ (aqui so pode abrir ele mais 2 vezes por isso o tuto sobre ele kkkk)

http://i64.tinypic.com/28gz18y.jpg

a gente pode dar dois cliques em cima do nome do microcontrolador para mudar o modelo ou aperta no menu options -> select microcontroller

http://i68.tinypic.com/am63px.jpg

no menu tools podemos abrir o compilador basic ou assembly, depois de criar o codigo basta apertar em tools -> compile & assembly & load (lembrando que voce pode carregar o programa .hex normalmente sem precisar compilar por aqui), no meu caso vou fazer em basic vou colocar um dos pinos do pic como saida e vou deixar ele enviando corrente

TRISB = 254
PORTB = 1

kodo:
Goto kodo


http://i66.tinypic.com/2aeupe1.jpg

na aba principal apertamos no menu simulation -> start (voce pode controlar a velocidade da execução no menu rate), se a gente olhar os registradores um dos bits do PORTB do pic acendeu isso quer dizer que o meu programa funcionou

http://i66.tinypic.com/2h6rh4j.jpg

podemos ver o esquematico do pic apertando em tools -> microcontroller viewer

http://i65.tinypic.com/2yvnims.jpg

tem outras opções em tools como led, serial, eeprom. display lcd entre outros ^^

http://i66.tinypic.com/24ybpd3.jpg

bom galera esse simulador é bem legal porem ainda prefiro o proteus \o

by kodo no kami
#21
e ae galera nesse tutorial vamos ver como usar o delphi para enviar um comando para o arduino via porta serial, para o uso da porta serial no delphi podemos usar um componente chamado ComPort (ele nao vem por padrao deve ser instalado), para esse tutorial como de costume vamos evitar tacar fogo na casa usando o proteus kkk, tambem vou usar o VSPE que é um virtualizado de portas seriais com isso vamos criar duas portas virtuais COM e enviar o sinal pelo nosso programa delphi para uma porta virtual que vai enviar para dentro do proteus que vai esta simulando o circuito do nosso arduino, para começar vamos criar o circuito no proteus para isso abrimos ele primeiro

http://i64.tinypic.com/dq3clh.jpg

no proteus vamos usar o componente que simula o arduino deve ser baixado caso nao tenha ja que nao vem por padrao, o componente compim que vai simular a porta serial tambem vai permitir conectar na virtual, por fim o led que vamos acender (em projeto real tambem usamos um residor para o led nao queimar), conectamos o led em um dos pinos do arduino no meu caso foi no pino 13 (pode ser usado qualquer outro pino menos o pino 0 e 1 que são pinos de transferência para comunicação serial), os pinos 0 e 1 conectamos na porta serial do computador correspodente a porta TX e RX dele que provavelmente é a 2 e 3 no computador (se eu não me engano daria no mesmo usando o usb do arduino tambem)

http://i65.tinypic.com/1z2n0ug.jpg

se a gente der dois cliques no compim podemos configurar ele, no caso vou mudar a porta para COM4 (que vai ser a virtual que vou criar depois), e em physical e virtual baund rate vou colocar 9600

http://i66.tinypic.com/10ynyqc.jpg

nosso circuito ta pronto agora vou abrir o VSPE e criar um par de porta virtual COM4 <=> COM5

http://i67.tinypic.com/2rp7di1.jpg

agora criamos o codigo do arduino para isso abrimos a IDE do arduino

void setup() {
}

void loop() {
}


primeiro setamos o pino do led como saida, no meu caso é o pino 13

void setup() {
  pinMode(13,OUTPUT);
}

void loop() {
}


tambem iniciamos o led deslgado entao enviamos LOW nele usando a função digitalWrite

void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
}

void loop() {
}


tambem iniciamos a comunicação serial com Serial.begin passamos como argumento baund que no meu caso foi 9600

void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

void loop() {
}


agora dentro do loop usamos uma condição if e na condição dele passamos como argumento a função Serial.available() para executar o codigo apenas se houver alguma comunicação

void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

void loop() {
  if(Serial.available()){
  }
}


agora basta ler o valor passado com a funçao Serial.read() e atribuir ele para uma variavel do tipo char

void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

char valor;

void loop() {
  if(Serial.available()){
    valor = Serial.read();
  }
}


agora colocamos outro if e comparamos se o valor naquela variavel é igual um caracter especifico que no meu caso vou colocar letra "k" ele executa aquele trecho

void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

char valor;

void loop() {
  if(Serial.available()){
    valor = Serial.read();
    if(valor == 'k'){
    }
  }
}


dentro daquele if ativamos o led com digitalWrite

void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

char valor;

void loop() {
  if(Serial.available()){
    valor = Serial.read();
    if(valor == 'k'){
      digitalWrite(13,HIGH);
    }
  }
}


colocamos um outro if  e comparamos com outro caracter se for igual apagamos o led (no meu caso vai ser o 'n')

void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}

char valor;

void loop() {
  if(Serial.available()){
    valor = Serial.read();
    if(valor == 'k'){
      digitalWrite(13,HIGH);
    }
    if(valor == 'n'){
      digitalWrite(13,LOW);
    }
  }
}


com isso o nosso programa do arduino esta pronto bastando compilar e jogar para dentro do arduino (no caso do proteus temos que gerar o executavel .hex e carregar no simulador)

http://i65.tinypic.com/1qnxv5.jpg

agora vamos fazer o programa em delphi para enviar o "k" e "n" via serial, então abrimos o delphi

http://i64.tinypic.com/sblwuw.jpg

colocamos dois botões e componente comport

http://i63.tinypic.com/1sm5it.jpg

tambem setamos algumas propriedade no componente comport, no caso em port colocamos a porta COM que vamos usar no meu caso a COM5, e em baundrate colocamos o baund no meu caso br9600

http://i64.tinypic.com/t54qk4.jpg

no evento onclick do do primeiro botao conectamos o comport

procedure TForm1.Button1Click(Sender: TObject);
begin
   ComPort1.Connected := true;
end;


agora basta enviar o caracter que vai ativar o led com o metodo WriteStr

procedure TForm1.Button1Click(Sender: TObject);
begin
   ComPort1.Connected := true;
   Comport1.WriteStr('k');
end;


depois desconectar novamente

procedure TForm1.Button1Click(Sender: TObject);
begin
   ComPort1.Connected := true;
   Comport1.WriteStr('k');
   ComPort1.Connected := false;
end;


fazemos o mesmo no outro botão porem com outro caracter que vai apagar o led


procedure TForm1.Button2Click(Sender: TObject);
begin
   ComPort1.Connected := true;
   Comport1.WriteStr('n');
   ComPort1.Connected := false;
end;


http://i63.tinypic.com/2v8h7a9.jpg

prontinho agora basta salvar e compilar o nosso codigo

http://i64.tinypic.com/fc1a2b.jpg

se tudo estiver certo quando apertar o botão vai acender o led

http://i66.tinypic.com/2nk3s3r.jpg

se apertar o outro botão vai apagar o led

http://i63.tinypic.com/9utg8n.jpg

bom galera não necessariamente precisa ser um led podemos acionar qualquer coisa pelo arduino

by kodo no kami
#22
faz uns anos que não jogo esse jogo, agora deu vontade de jogar novamente :cuteeyes:
#23
e ae galera eu ja escrevi um tutorial desse a uns anos atras mais como o tempo é relativo e as imagens fica off nesse meio tempo entao vou rescrever o tutorial com mais informações que o anterior '-' , a cifra de cesar é uma criptografia usado por julio cesar para enviar mensagem para suas amantes (ops acho que distorci a historia de mais '-' ), a cifra de cesar é uma criptografia baseada em simples permutação na ordem da tabela incrementando ou decrementando para proxima ou a anterior equivalente, exemplo temos a seguinte tabela de caracteres

a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
g = 7
h = 8
...


entao se a gente escrever a palavra kodo seria equivalente a k = 11, o = 15, d = 4, o = 15 (kodo = 11 15 4 15), a cifra de cesar altera a ordem dessa tabela incrementando ou decrementando uma quantidade fixa, sendo essa quantidade a chave para criptografar e para descriptografar


kodo + 1 = lpep

k (11) + 1 = l (12)
o (15) + 1 = p (16)
d (4) + 1 = e (5)
o (15) + 1 = p (16)


para descriptografar fazemos o inverso

lpep - 1 = kodo

l (12) - 1 = k (11)
p (16) - 1 = o (15)
e (5) - 1 = d (4)
p (16) - 1 = o (15)


a cifra de cesar é baseada na quantidade de caracteres que tem a tabela ou seja se a tabela tiver apenas as letras do alfabeto sera 25 caracteres (romanos) para ser permutado, se tiver as letras e numeros sera 35 caracteres para ser permutado, se usar a tabela ascii que é equivalente a 7bits (128 caracteres), ascii extendida que é mais usada hoje na computação sendo ela 8bits com 256 caracteres para ser permutado, unicode 16bits com 65536 caracteres na tabela para ser permutada, a quantidade de caracteres na tabela é importante por que ela que diz a quantidade maxima de tentativas para quebrar a senha por força bruta ou seja uma tabela ascii extendida que tem 256 caracteres diferentes a força bruta são apenas 255 tentativa maxima nela, para quem tiver interesse em algoritimo escrito em C para criptografar ou descriptografar o cifra de cesar que eu fiz para esse tutorial segue o link no git hub ai

github

http://i67.tinypic.com/296114x.jpg

agora que a gente ja sabe como o algoritimo da cifra de cesar funciona vamos entender como a busca relativa funciona, em uma busca normal pode ser feita checando cada caracter do texto onde vamos buscar com os caracteres do texto que estamos buscando se tiver a mesma sequencia de caracteres no texto que estamos buscando entao o texto existe ou seja casou

texto: kodo
texto a ser buscado: kami

k = k (casou)
o = a (nao casou)
... (nao é necessario checar o resto apenas se for recursivo)


a busca relativa é mais precisa que isso ao inves de buscar uma sequencia de caracteres de ambos os textos ela busca a diferença entre um caracter para outro em ambos os textos isso permite mesmo que esteja usando uma tabela diferente a busca seja possivel com o mesmo resultado, umas das forma de fazer a busca relativa é usando a diferença entre o caracter anterior com o proximo, exemplo a letra "b" sempre fica uma posição depois da letra "a", e a letra "d" sempre fica 3 posições depois da letra "a", com base nisso ao inves da gente comparar caracter como a busca normal a gente compara as diferenças entre cada caracter tanto no texto que vamos buscar quanto o texto que estamos buscando, exemplo a palavra kodo

kodo = +4 -11 +11

k (11) <-> o (15) = +4
o (15) <-> d (4) = -11
d (4) <-> o (15) = +11


resumindo qualquer outro texto que contenha essa mesma sequencia um caracter que seja +4 a frente do atual depois -11 e depois +11 é possivel que seja a palavra kodo usando outra tabela, exemplo a palavra ptit que é o kodo codificado em cifra de cesar +5

ptit = +4 -11 +11

p (16) <-> t (20) = +4
t (20) <-> i (9) = -11
i (9) <-> t (20) = +20


a comparação final é pela diferença entre os dois textos se ambos casar é possivel que seja o mesmo texto

ptit = kodo

+4 = +4
-11 = -11
+11 = +11


claro que para que funcione voce deve acertar uma palavra dentro do texto criptografado (no caso basta usar palavras mais usadas naquele idioma), alem do mais palavras diferentes pode gerar o mesma sequencia porem quanto maior for a palavra menos colisão acontece, como a cifra de cesar usa uma chave fixa e uma tabela tambem fixa se voce descobrir uma palavra todo o resto é igual, a busca relativa é muito usada tambem em tradução de jogos principalmente roms (romhacking), existem programas usandos em romhacking que podemos utilizar para fazer busca relativa como windhex que é um editor hex especifico para romhacking ele tem varias opções (busca relativa, criar e importar tabela etc), searchX e o monkeymoore é um programa muito bom para busca relativa, vamos testar alguns para isso vou usar o seguinte texto criptografado em cifra de cesar

wi$yq$viwypxehs$í$geywehs$tsv$yq$izirxs0$qyhi$s$izirxs$uyi$givxeqirxi$qyheve$s$viwypxehs0$tsviq$rehe$mrhmge$uyi$s$qiwqs$izirxs$wiqtvi$zem$kivev$s$qiwqs$viwypxehs$sy$uyi$s$qiwqs$viwypxehs$wiqtvi$wive$kivehs$tips$qiwqs$izirxs$,$oshs$rs$oeqm

a palavra que vou pesquisar é "que", se tiver uma palavra que gere aquela sequencia equivalente a palavra "que" ele vai retornar, vou começar com o programa searchX

http://i68.tinypic.com/jzib7c.jpg

podemos reparar na imagem anterior que ele encontro a palavra "que" e tambem mostro que a letra 'a' dessa tabela começa no codigo 65 (podemos usar programas como table manager para criar uma tabela com base nessa informação e depois carrega em um editor hexadecimanl que aceite esse formato)

http://i65.tinypic.com/dqreyx.jpg

outro programa de busca relativa que eu recomendo é o monkeymore

http://i66.tinypic.com/2u6it83.jpg

melhor alternativa é um editor hexadecimal chamado windhex, ele alem de fazer a busca relativa converter o texto para a tabela automaticamente, tambem tem um gerador de tabela que pode ser usado ou pode importar uma tabela criada pelo table manager e muitas outras opções

http://i66.tinypic.com/5efytl.jpg

depois de importar a tabela no editor windhex é possivel ler o texto que estava criptografado normalmente

se um resultado é causado por um evento, mude o evento que certamente mudara o resultado, porem nada indica que o mesmo evento sempre vai gerar o mesmo resultado ou que o mesmo resultado sempre sera gerado pelo mesmo evento ~ kodo no kami

http://i64.tinypic.com/2isha8j.jpg

bom galera busca relativa é usado em varias areas seja criptoanalise ou ate mesmo em tradução de jogos (romhacking)

by kodo no kami
#24
entao galera nesse tutorial vou ensinar como programar em python dentro da linguagem perl, para gente fazer isso vamos usar o modulo Inline::Python que deve ser baixado pelo cpan, a vantagem de usar python dentro do perl que nos permite usar varios modulos indiretamente da linguagem python, a forma mais simples de usar esse modulo seria importar o modulo no caso "Inline Python" depois finalizar o codigo perl com __END__ e depois usar __Python__ seguido do codigo em python

#!/usr/bin/perl

use Inline Python

__END__
__Python__

print "isso aqui é python"


http://i68.tinypic.com/i3s1so.jpg

lembrando que a sintaxe da linguagem perl e python são diferentes vamos ver outro exemplo usando uma função e uma estrutura condicional em python que comprova que estamos mexendo com python

#!/usr/bin/perl

use Inline Python

__END__
__Python__

def kodo_nome(n):
print "o nome digitado foi " + nome

nome = raw_input("digite seu nome: ")
kodo_nome(nome)


http://i67.tinypic.com/2d7von8.jpg

outra forma da gente escrever o codigo python é usando a função py_eval porem temos que declara o modulo de forma diferente dos exemplos anteriores sendo ele Inline::Python "py_eval"

#!/usr/bin/perl

use Inline::Python "py_eval";


depois podemos usar a função py_eval com o codigo python

#!/usr/bin/perl

use Inline::Python "py_eval";

py_eval('print "codado em python"');


http://i64.tinypic.com/4vn6ls.jpg

quando o codigo tem mais de uma linha usamos o ponto e virgula representando a quebra de linha

#!/usr/bin/perl

use Inline::Python "py_eval";

py_eval('print "codado em python";print "segunda linha"');


ou simplesmente usamos outro py_eval

#!/usr/bin/perl

use Inline::Python "py_eval";

py_eval('kodo = 315');
py_eval('print kodo');


outra forma ainda é por trechos

#!/usr/bin/perl

use Inline Python => <<"END"

kodo="python dentro de perl"
print kodo

END
;


http://i67.tinypic.com/2lv0mj9.jpg

é possivel executar codigo perl dentro do codigo python com o perl.eval

#!/usr/bin/perl

use Inline Python;

__END__
__Python__

perl.eval("$nick = 'kodo no kami'")
perl.eval("print 'apelido = ' . $nick")


http://i64.tinypic.com/oqw3si.jpg

podemos executar uma função do perl dentro do python usando perl seguido da função

#!/usr/bin/perl

use Inline Python;

sub kodosomar{
$resu = $_[0] + $_[1];
print $resu;
}

__END__
__Python__

perl.kodosomar(300,15)


ou inversamente do python dentro do perl

#!/usr/bin/perl

use Inline Python;

kodosomar(300,15);

__END__
__Python__

def kodosomar(x,y):
r = x + y
print r


um exemplo de um script que faz a requisição em um site para buscar o html usando modulo em python no caso o urllib2 e depois jogar o resultado em uma função em perl para recortar a hora por uma regex (OBS: no html do site ta escrito " <<< AVISO: NÃO USE ESTA HORA EM APLICATIVOS " kkkk vish acabei usando nesse script '-' )

#!/usr/bin/perl

use Inline Python;

sub pregex{
$texto = $_[0];

@hora = $texto =~ /<p id="relogio">(\d+:\d+:\d+)/;
print "hora certa: " . $hora[0] . "\n";
}

__END__
__Python__

import urllib2

kodo = urllib2.urlopen("http://www.horariodebrasilia.org/")
kami = kodo.read()
perl.pregex(kami)


http://i68.tinypic.com/dpv1fm.jpg

bom galera esse é basico do que se pode fazer com esse modulo e com essa combinaçao de linguagens \o

by kodo no kami
#25
depende muito na maioria das vezes poderia ser feito no proprio delphi entao nâo tem tanta vantagem usar python com delphi tirando algum uso mais especifico como macros ou alguma coisa desse tipo, o proprio python tem libs que facilita o uso dele em diversas linguagens como tambem tem outros linguagens que usa o python de forma um pouco mais superficial como a linguagem perl (da para executar c/cpp, java e ate assembly dentro do perl usando esse modulo kkk )
#26
bom galera nesse tutorial vou ensinar como executar scripts python dentro do delphi, para que isso seja possivel voce vai precisar baixar e instalar o componente python4delphi que pode ser baixada direto do github, depois de instalado vamos ter o novos componentes (não vou abordar a instação)

github python4delphi

http://i63.tinypic.com/2pshtlk.jpg

desses componentes vamos precisar apenas de dois que é TPythonEngine que vai executar o nosso codigo em python e o TPythonGUIInputOutput que vai enviar o retorno para um memo especifico, tambem vamos precisar de um Button e dois Memo sendo um onde vamos digitar o codigo e o outro vai ser a saida

http://i65.tinypic.com/2nk8aqr.jpg

no componente PythonEngine a gente seleciona na propriedade IO dele o componente PythonGuiInputOutput

http://i68.tinypic.com/2qbfyp4.jpg

e na propriedade Output do componente PythonGuiInputOutput a gente seleciona o Memo que vamos exibir a saida

http://i65.tinypic.com/jizxv8.jpg

agora no evento do botao temos que chamar o metodo ExecString do PythonEngine tambem passamos como argumento para ele o texto do Memo que vai ser o codigo

procedure TForm1.Button1Click(Sender: TObject);
begin
   PythonEngine1.ExecString(Memo1.Lines.Text);
end;


http://i64.tinypic.com/2435079.jpg

esta pronto o nosso programa bastando compilar e executar para usar ele


kodox = 300
kodoy = 15
kodor = kodox + kodoy

print "resultado",kodor


http://i68.tinypic.com/118g0nn.jpg

bom galera isso é apenas o basico do que se pode fazer com esse componente o python junto ao delphi pode automatizar em tempo de execução podendo ser usado como uma especie de linguagem de macro para seus programas tornando eles mais dinamico e flexivel ^^

by kodo no kami
#27
Citação de: Solid One online Abril 22, 2017, 09:48:08 AM
Baixar binário e extrair direto? Tem formas mais práticas e "limpas" de instalar o PPSSPP no linux, como essa:

http://www.noobslab.com/2017/01/ppsspp-psp-emulator-130-version.html

Funciona para todas as versões do Ubuntu, desde a 12.04 até a mais recente.

Da última vez que fui testar coisa de PSP no linux, usei o PPA citado no endereço acima. Dessa forma, o programa é instalado globalmente para todos os usuários do PC, e os atalhos são automaticamente criados na barra de menus do modo gráfico que você está usando.

Além disso, no PPA supracitado, há pacotes para as mais variadas arquiteturas de computador: i386 (32-bits), amd64 (64-bits), ARM (raspberry, odroid e afins), etc.

verdade mano ppa facilita muito as coisas
#28
e ae galera nesse artigo vamos aprender instalar o emulador ppsspp que é um emulador dos consoles psp, tem muitos jogos de psp que são parecidos com o de ps2 e ps1 como tambem existem muitas continuações e jogos exclusive que so existem no psp então vale a pena confirir alguns, enta vamos no site oficial

site ofcial

la no site oficial baixamos a versao para linux porem existem para diversas plataformas como windows, mac, android, ios entre outras (tambem é necessario que seu sistema tenha o sdl2-dev instalado como é informado no proprio site, caso nao tenha tente um "apt-get install libsdl2-dev" no caso das distros baseada em debian ou "yum install SDL2-devel" nas baseada em redhat)

http://i63.tinypic.com/2vt5hyu.jpg

depois de baixar extraia ele do zip apertando botao direito do mouse em cima dele e extrair, para ficar mais didatico esse tutorial vamos extrair pelo terminal para isso abrimos o terminal no diretorio dele ou mudamos o diretorio no terminal (no meu caso ele esta na minha pasta de download do meu usuario entao posso usar o comando)

cd ~/Downloads

usamos o comando unzip para extrair como argumento -d e o nome de um diretorio que sera criado no meu caso "ppsspp", seguido do nome do arquivo que vamos extrair  no meu caso é o "ppssppbuildbot-org.ppsspp.ppsspp-dev-working-linux-i386-generic.zip" (nome pequeno ne '-' )

unzip -d ppsspp ppssppbuildbot-org.ppsspp.ppsspp-dev-working-linux-i386-generic.zip

depois de extrair copiamos esse diretorio para algum lugar de sua preferencia, depois abrimos ele com o terminal e executamos o "PPSSPPSDL" (tambem pode dar dois cliques no executavel para abrir ele)

./PPSSPPSDL

http://i64.tinypic.com/2q906f7.jpg

depois basta procurar os diretorios das roms pelo navegador e selecionar o jogo desejado (lembrando que as roms tem que baixar não vem com o emulador)

http://i66.tinypic.com/24v1lwi.jpg

por fim aproveitar o jogo (eu jogava muito shinobido no ps2 *-* )

http://i66.tinypic.com/2m2drx0.jpg

bom galera é isso tem um acervo muito grande de jogos de psp basta procurar \o

by kodo no kami
#29
então galera vou apresentar alguns editores hexadecimais para plataforma linux, no caso um editor hexadecimal é um programa que permite exibir e editar arquivos em sua forma binaria pura sem trucar os bytes naquele arquivo, a sua exibição na maior parte das vezes é em base16 (hexadecimal) por isso o nome editor hexadecimal com isso alguns bytes não imprimiveis podera ser exibido como um codigo hexadecimal como por exemplo o enter que é o byte 0x0d

xxd

http://i68.tinypic.com/hvbhgl.jpg

o programa xxd sendo ele apenas visualizador hexadecimal por comando ele nao permite editar arquivos porem ele pode ser muito util para ler arquivos muito rapidamente de forma hexadecimal, nele tem argumentos para ler uma quantidade maxima de bytes ou escolher a posição que vai iniciar a exibição

hexdump

http://i63.tinypic.com/k1uerd.jpg

outro semelhante ao anterior é o hexdump que tambem so permite visualizar, o hexdump permite formatar a sainda de diversas formas

hexedit

http://i65.tinypic.com/x209rs.jpg

esse é um editor hexadecimal para o terminal muito simples porem facilita muito o trabalho e como ele funciona para o terminal nao precisa abrir um ambiente grafico pode usar ele via ssh tambem

ghex

http://i66.tinypic.com/2zjgd94.jpg

esse é um editor hexadecimal grafico bem simples que permite uma conversão de base tambem

bless hex

http://i64.tinypic.com/sffel1.jpg

o editor bless é parecido com anterior porem com uma interface melhorada com mais opções

okteta

http://i64.tinypic.com/o50vu9.jpg

um dos melhores editores hexadecimais para linux ele tem uma vasta quantidade de opçãos e ferramentas,

wxhex

http://i64.tinypic.com/qou8sg.jpg

outro editor hexadecimal bom é o wxhex editor ele permite alem de ler arquivos tambem abrir a memoria ram e dispostivos

Disk Editor

http://i65.tinypic.com/bim51d.jpg

é um editor hexadecimal muito usado para forense ele abre arquivos e dispostivos e estrutura alguns tipos de partições tambem

bom galera tem muitos outros editores hex alem desses citados \o

by kodo no kami