Hackerteen lança desafio pior que muito webgame.

Ontem a Hackerteen, um braço da 4linux que desenvolve o ensino entre os jovens entre 12 e 19 anos, lançou um desafio na internet oferencendo uma bolsa de estudos para o cursos oferecidos por eles.



O desafio era descobrir uma mensagem escondida em imagens disponiveis no site deles, embarcando no sucesso do coringa, personagem interpretado por Heather Ledger morto no começo do ano, no novo filme do batman, The Dark Knight. Marcelo Marques, organizador do desafio, ofereceu duas dicas: "A mensagem não está em nenhum texto visível na página" e "será que as imagens são iguais?".



Não que eu ache a hackerteen uma péssima maneira de ensinar jovens (12 a 19 anos) a configurar bind e apache, o que eu acho péssimo é o coitado pagar um bocado de dinheiro achando que vai aprender o mesmo, ou quase o mesmo que um curso de ciencias da computaçao de uma universidade qualquer pode ensinar, ou até mesmo no google, que é uma infinita fonte de informação.



A iniciativa é boa, mas a manobra é fraca, com um simples comando você descobre a mensagem, e como eles oferecem um curso de 'ensino', eu acho que deveriam aguçar melhor o sentido das pessoas que queiram vencer o desafio. Eu já vi jogos web-based com desafios melhores que o deles. poderiam se esforçar mais, já que estão distribuindo uma bolsa de estudos de graça.



Eu e meus amigos demoramos cerca de 1 minuto pra descobrir qual era a mensagem, e não é nada demais, a resolução do desafio é a seguinte:



echo -e "GET /files-ht/static/joker/t194.gif HTTP/1.1\nHost:www.hackerteen.com\n\n" | nc -w1  www.hackerteen.com 80 | strings | grep -i joker


logo em seguida será retornada a mensagem:



Ha ha ha ha ha ha. Hum... Voce me achou. Se voce chegou ate aqui, voce e perspicaz, mas seu tempo esta curto.  Agora para saber qual o desafio a completar me mande um email: Joker@hackerteen.com 


perspicaz?, nao sei não hein.. bom enviei um email para o email seguinte e logo em seguida chega na minha caixa de mensagens o seguinte 'desafio':





Muito bem! você chegou até aqui mas precisa avançar!





Agora olhe esse vídeo (http://www.youtube.com/watch?v=ab2Ut87-ESM) você não acha que o ator que me interpretou, o Heath Ledger, mereceria um Oscar? Hum... eu vou me dar um Oscar... Ha ha ha ha ha ha... hum... bem... Não é isso que você quer ouvir, não é mesmo? Vamos lá: O desafio a ser feito para você ganhar uma vaga no HackerTeen consiste em:



1 - Criar uma Dissertação (http://pt.wikipedia.org/wiki/Disserta%C3%A7%C3%A3o) desenvolvendo um dos seguintes temas (você deve escolher apenas um):



Opção 1 - Existe um momento no filme, que Batman é obrigado a rastrear todos os cidadãos para descobrir onde o Coringa está localizado. Algo semelhante está prestes a acontecer na Internet com a aprovação da lei do Senador Azeredo. Rastrear o IP de cada cidadão deve ser Lei ou deve ser um caso de investigação da polícia quando de um crime? Disserte sobre o assunto: http://www.petitiononline.com/veto2008/petition.html



Opção 2 - Se Batman fosse um Hacker, e o Coringa um Cracker, disserte sobre como, onde (os sites), e os motivos de um duelo entre os dois na Internet, mostrando os problemas nos dias de hoje.



2 - texto deve ter no máximo 3900 caracteres em algum editor de texto ( aproximadamente 1 folha)



3 - Cadastrar-se no formulário (http://www.hackerteen.com/pt-br/fale-conosco) do HackerTeen com seus dados



4 - Você deve enviar o arquivo da dissertação para o batman@hackerteen.com . Também, anexado no email, deve enviar a imagem da Carta do Baralho que contém a mensagem 'Ha ha...'



5 - No corpo do email, você deve explicar qual foi o procedimento que seguiu para descobrir a Carta do Baralho que continha a mensagem



6 - Também no corpo do email, você deve enviar seu nome completo, telefone e cidade onde mora.







Regras:





1 - O ganhador deve ter entre 12 e 19 anos. A vaga é intransferível. Cada jovem poderá participar com somente 1 dissertação





2 - Desde já o ganhador autoriza a publicação da dissertação vencedora, no site do HackerTeen





3 - O HackerTeen não se obriga a retornar nota de dissertação para nenhum dos autores, nem explicações por escrito, fax, email ou de qualquer natureza dos motivos de tal dissertação não ter sido escolhida como vencedora





4 - O HackerTeen eliminará as participações que não estiverem em contexto de dissertação





5 - O HackerTeen levará em conta a idade de cada um para a eleição da dissertação vencedora





6 - Se for detectado 'Copy and Paste' ou cópia de textos na dissertação, esta será automaticamente eliminada





7 - Haverá apenas uma dissertação vencedora, escolhida pela equipe interna do HackerTeen





8 - A publicação da redação vencedora se dará no dia 18 de Agosto de 2008





9 - O vencedor poderá escolher uma entre as 4 carreiras oferecidas pelo HackerTeen ( Network Admin, PHP programmer, Java Programmer, Security Specialist ). Saiba mais em http://www.hackerteen.com/pt-br/cursos.




Eu tenho mais que 19 anos e não poderei participar do desafio, mas se você acabou de comprar um computador e está sem o que fazer da vida, disserte para a hackerteen e seja feliz.

3 comentários link  

SMTP Diagnostics em python

Meu amigo Philippe Ph me pediu pra escrever um script pra ele em python para testar servidores smtps com problemas, algo do tipo como nesse site http://www.mxtoolbox.com/diagnostic.aspx, só que ele queria uma coisa bem simples, e como tudo no python eh simples o resultado não poderia ser diferente, eu depois tentarei reproduzir essa saída do site bem explicada, com banner e tal, mas por enquanto segue o script que utiliza o modulo smtplib que vem junto com o python.


#!/usr/bin/python

from smtplib import *
from sys import argv

fromaddr = 'hermosa@menina.org'
toaddr   = 'cambiate@hombre.org'
msg      = 'ipsum lorem'

try:
    s = SMTP(argv[1])
except SMTPConnectError, e:
    print e[1]
    s = SMTP(raw_input('Please type another server: '))

try:
    s.sendmail(fromaddr,toaddr,msg)
    print 'WARNING! Your server could be an open relay.'
except SMTPSenderRefused:
    print 'Error - Sender Refused.'
except SMTPHeloError:
    print 'Error - Helo Error'
except SMTPRecipientsRefused:
    print 'Error - Recipients Refused.'
except SMTPDataError:
    print 'Error - Data Error.'
except:
    print 'Unknown Error'

quer alguma linguagem de programação mais simples que essa? tente o >> lolcode :D

2 comentários link  

Pacman 3.2 released!

Acabou de sair no repositório git do pacman a nova versão do gerenciador oficial de pacotes do Arch Linux, segue um 'changelog' da nova versão:

Pacman 3.2:
              - removed -A/--add option from pacman frontend
              - added --asexplicit option
              - new remove option --unneeded
              - add -Rss option to remove all dependencies
              - removed useless -e/--dependsonly option
              - config options are now case sensitive
              - added CleanMethod option for variety in cache cleaning
              - new Turkish translation, all others updated and revised
              - handle multiple groups in -Ss and -Qs operations
              - allow -q/--quiet option with -o/--own and -g/--groups options
              - removed hack for packages with unknown installed size
              - add SyncFirst option to pacman.conf
              - support installation of versioned deps : pacman -S "dep>=2.0"
              - add --enable-git-version configure flag to identify
                developmental build version
              - do not duplicate packages in required by list
              - pacman.static is no longer built
              - all error messages use pm_fprintf
              - disable geteuid in cygwin
              - use off_t type for large file support
              - add vercmp test script
              - moved gensync and updatesync to contrib/
              - rewrote pacsearch script in perl
              - paclist script to list installed packages from a repo
              - bacman script to make backup of package from filesystem
              - combined repo-add and repo-remove into one script
              - removed --force option from repo-add
              - add --quiet option to repo-add/repo-remove
              - update libtool version to 1.5.26
              - allow disabling of internal download with new configure
                flag --disable-internal-download
              - pactest can now check file permissions
              - add the possibility to mark the pactests known to fail,
                which allows more informative results of make check
              - libalpm-specific changes:
                - use dynamic string allocation in package structure
                - new functions for manipulating pmdepend_t objects
                - store replaces and force in local database
                - moved deptest functionality to backend
                - add alpm_checkdbconflicts function
                - fix PM_ERR_CONFLICTING_DEPS handling
                - cleanup of pmsyncpkg_t
                - add alpm_sync_newversion function
                - cleanup of alpm_list code
                - refactor of download code
                - download callback API changes
                - removed test_delta_md5sum and test_pkg_md5sum functions
                - add _alpm_archive_fgets function to read line-by-line from
                  an archive
                - read .PKGINFO directly from package file with no temp file
                - native support for both libdownload and libfetch
                - rework delta algorithm (we still need script updates)
                - swap parameters of alpm_pkg_find for consistency with
                  other find functions
                - swap parameters of PM_TRANS_CONV_INSTALL_IGNOREPKG to make
                  more sense
                - fix -Rs when removing multiple items in dependency chain
              - makepkg-specific changes:
                - support for resuming source downloads
                - added zipman option
                - removed -b/--builddeps
                - various portability fixes for BSD and Mac OS X
                - check for valid options in PKGBUILD
                - add --allsource option
                - remove deprecated --usesudo option
                - handle spaces in build directory
                - made keeping docs the default option
                - use pacman version dep resolving
                - fix regression in library stripping
                - make strip paths configurable
              - MANY other bug fixes and small improvements

agora é só esperar o empacotamento e pacman -Syu!

0 comentários link  

Pyv6.py: Script de atualização de ipv4 na he.net

Eu escrevi esse script porque ainda não tinha visto um script para update de ipv4 no tunnel de ipv6 da he.net que realmente funcionasse, e isso porque uso ele ha alguns anos, este é o meu primeiro codigo em python que considero completo, embora augur, meu grande amigo tenha me ajudado, recentemente o site do tunnel passou por mudanças e tive que reescreve-lo quase que totalmente, o POG do cookie é ideia original do augur, mas que funciona 100% sem a utilização da cookielib, valeu augur!

#!/usr/bin/python
# coding: UTF-8
# pyipv6.py by deadcow.
# primeiro codigo meu em python
# agradecimentos a meu amigo augur.

import urllib, md5, sys, re

url   = 'http://tunnelbroker.net/'
tunid = 00000                           # Seu Tunnel id.

try:
    uname = sys.argv[1]
    pword = sys.argv[2]
    pword = md5.new(pword).hexdigest()
except:
    uname = 'usuario'                   # Seu usuario
    pword = 'senha'                      # Sua senha
    pword = md5.new(pword).hexdigest()

try:
    ip    = urllib.urlopen('http://whatismyip.org').read()
    if re.search('^Error:',ip) is not None:
        print 'Erro: whatismyip.org indisponivel.'
        sys.exit(-1)
except:
    ip    = raw_input('Enter ip: ')

def getcookie(x):
    try:
        return urllib.URLopener().open(x).info()['Set-Cookie'].split(';')[0]
    except IOError,e:
        print 'Problemas:\n%s' %e[3]
        sys.exit(-1)

cookie = getcookie(url+'index.php')

data = {'f_user':uname, 'clearpass':'', 'f_pass':pword, 'Login':'Login'}

agent = urllib.URLopener()
agent.addheader('Cookie', cookie)
data = urllib.urlencode(data)

try:
    conteudo = agent.open(url+'login.php',data).read()
    print conteudo
except IOError, e:
    hmsg = e[3]
    ue = hmsg['Location']
    if ue == 'main.php':
        url = url+'ipv4_update.php'
        ag = urllib.URLopener()
        ag.addheader('Cookie', cookie)
        da = {'ipv4b':ip,'tunnel_id':tunid,'update':'Submit'}
        da = urllib.urlencode(da)
        try:
            ct = ag.open(url,da).read()
            result = re.search('<font color=".{7}">(.*)</font>',ct)
            try:
                print result.group(1)[:45].replace(', ','.')
            except:
                print 'Erro interpretando html'
        except IOError,i:
            print i[3]
    else:
        print 'Erro: login ou senha invalidos.'

0 comentários link  

pypcap: problemas com compatibilidade Pyrex 0.9.3 / Pyrex 0.9.8.4

Bom hoje eu estava navegando pelo google, e encontrei essa tool, do Jon Oberheide que verificava em tempo real de modo passivo se um dns estaria ou não vulneravel a nova falha de DNS Cache Poison que o Dan Kaminsky descobriu,até ai tudo bem. se não fosse uma das dependecias da tool, o pypcap, do dugsong, mesmo autor do dsniff, que eh uma extensão da libpcap para o python, depois de ter instalado com o comando "yaourt -S pypcap" direto, sem editar o PKBUILD no Arch, rodei o arquivo e sempre me retornava isso:

[deadcow@mosdef ~]$ ./pdpt.py 
Traceback (most recent call last):
  File "./pdpt.py", line 86, in 
    DNSMonitor().main()
  File "./pdpt.py", line 39, in main
    pc = pcap.pcap(self.opts.device)
  File "pcap.pyx", line 171, in pcap.pcap.__init__
TypeError: exceptions must be strings, classes, or instances, not type
[deadcow@mosdef ~]$

bom, perguntei o google sobre o erro e ele nao me respondia nada, aliás até respondia sobre um problema de compatibilidade com o Pyrex e o Python 2.6, mas eu não tinha a noção nem do que o pyrex fazia, a versão do  meu python é 2.6 mas sequer o pyrex eu tinha instalado, enfim passei com os olhos fechados sobre os endereços, baixei outra tool que também utilizava o pypcap pra ter certeza que o problema era no mesmo no pypcap, e sim, era.

Resolvi então compilar na unha o pypcap, derepente podia ter algum erro no código ou coisa do tipo que eu mesmo pudesse concertar, qual não é minha surpresa quando resolvo dar um head no pcap.c ?:

[deadcow@mosdef pypcap-1.1]$ head -n1 pcap.c 
/* Generated by Pyrex 0.9.3 on Sun Oct 16 19:38:39 2005 */
[deadcow@mosdef pypcap-1.1]$ 

poisé é, pra isso que o Pyrex servia, só pra esclarecimento a descrição do Pyrex:

Pyrex lets you write code that mixes Python and C data types any way you want, and compiles it into a C extension for Python.

Resolvi então ler aqueles endereços que eu passei desapercebido no google, e lá explicava que o pyrex tinha passado por uma mudança na versão 0.9.6 para acomodar o uso do novo estilo de classes do python 2.5, e recomendava a instalação da ultima versão do Pyrex.

Como eu toda vez que utilizava o pypcap recebia um erro praticamente idêntico ao problema no site, resolvi então instalar o Pyrex na minha maquina e tentar gerar um novo pcap.c para o pacote do pypcap:

[deadcow@mosdef pypcap-1.1]$ su -
Password: 
[root@mosdef ~]# pacman -Ss pyrex
extra/pyrex 0.9.8.4-1
    Language for writing Python extension modules
[root@mosdef ~]# pacman -S pyrex
resolving dependencies...
looking for inter-conflicts...

Targets: pyrex-0.9.8.4-1  

Total Download Size:    0.00 MB
Total Installed Size:   1.25 MB

Proceed with installation? [Y/n] y
checking package integrity...
(1/1) checking for file conflicts                   [#####################] 100%
(1/1) upgrading pyrex                               [#####################] 100%
[root@mosdef ~]# exit
[deadcow@mosdef pypcap-1.1]$ pyrexc pcap.pyx
[deadcow@mosdef pypcap-1.1]$ head -n1 pcap.c 
/* Generated by Pyrex 0.9.8.4 on Wed Jul 30 15:51:07 2008 */
[deadcow@mosdef pypcap-1.1]$ python setup.py config;su -c 'python setup.py install'
...
[root@mosdef deadcow]# python pdpt.py -i eth0
listening on eth0: udp and dst port 53 

Bingo!, o problema realmente era esse, mas isso podia ficar mais simples se você usa arch:

[deadcow@mosdef ~]$ yaourt -S pypcap

==> Downloading pypcap PKGBUILD from AUR...


Comment by: tom5760 on 20070207 [18:54:30]
A simplified object-oriented Python extension module for libpcap.

Comment by: tom5760 on 20070213 [16:17:10]
Added license.

Comment by: rabyte on 20070705 [19:57:41]
Please add the LICENSE file to the source array.

Comment by: tom5760 on 20070728 [16:03:36]
I never use this anymore, sorry. Someone else can have it if they actually use it.

Comment by: warl0ck on 20080227 [19:16:38]
Take ownership from Tom, fix the license.

      First Submitted: Wed, 07 Feb 2007 18:54:30 +0000
      Last Updated: Wed, 27 Feb 2008 19:17:54 +0000
pypcap 1.1-3 (Unsupported): Python extension module for libpcap.

==> pypcap dependencies:
 - python (already installed)
 - libpcap (already installed)
==>  Edit the PKGBUILD (recommended) ? [Y/n] ("A" to abort)
==>   ----------------------------------------------
==>y
Please add $EDITOR to your environment variables
for example:
==> Edit PKGBUILD with: (replace gvim with your favorite editor)

==> Edit ./PKGBUILD with: vi

É aqui o pulo do gato voce vai alterar, isto tendo o Pyrex na ultima versão instalado na maquina, a flag build() do PKGBUILD de:

build() {
  cd $startdir/src/$pkgname-$pkgver
  python setup.py config
  python setup.py build
  python setup.py install --root=$startdir/pkg
  mkdir -p $startdir/pkg/usr/share/licenses/$pkgname/
  cp $startdir/src/$pkgname-$pkgver/LICENSE $startdir/pkg/usr/share/licenses/$pkgname/
} 

para:

build() {
  cd $startdir/src/$pkgname-$pkgver
  pyrexc pcap.pyx 
  python setup.py config
  python setup.py build
  python setup.py install --root=$startdir/pkg
  mkdir -p $startdir/pkg/usr/share/licenses/$pkgname/
  cp $startdir/src/$pkgname-$pkgver/LICENSE $startdir/pkg/usr/share/licenses/$pkgname/
} 

E o resto, todos nós Archeiros conhecemos. Eu realmente não considero um erro do mantenedor do pacote, já que o responsável de manter o código 'up do date' é o programador e não o cara que criou o pacote, mas é uma dica simples que não deixa você com horas de dor de cabeça, abraços.

0 comentários link  

python: seus emails no conky

Estou encantado com a facilidade e a praticidade do python, eu confesso que nunca que interessei por essa linguagem, mas depois que me aprofundei melhor descobri um novo mundo. eu escrevi esse codigo usando o feedparser que é um módulo do python, mas que não vem com o pacote python, então se você está no archlinux e ainda não tem o modulo faça:

pacman -S python-feedparser

o site oficial do módulo é http://www.feedparser.org.

e agora o script de mil linhas:
#!/usr/bin/python
# coding: UTF-8
# pygmail by deadcow.
# exibe os 3 ultimos emails no gmail.

from feedparser import parse

usuario = 'seu-usuario'
senha   = 'sua-senha'

rss = 'https://'+usuario+':'+senha+'@mail.google.com/mail/feed/atom'
child = parse(rss)

#print len(child.entries),'emails' # descomente para exibir a quantidade

for data in child.entries[:3]:
    print data.title

muito simples hein? :D

*edit: achei muito 'pequeno' o post e resolvi adicionar o pyfeed.py que exibe rss :P

#!/usr/bin/python
# coding: UTF-8
# pyfeed.py by deadcow

from feedparser import parse
from sys import argv

try:
    rss = argv[1]
except:
    rss = 'http://g1.globo.com/Rss2/0,,AS0-5597,00.xml'

child = parse(rss)

for data in child.entries[:3]:
    print data.title

1 comentários link  

Exploits of a mom

0 comentários link  

Wallpaper: Archer Flame 1024x768

Eu sempre quis melhorar minhas skillz no Gimp, mas eu já não era grande coisa no PS, imagine no Gimp, mas até que eu achava que me virava bem, até encontrar este blog: http://razgrizbox.wordpress.com, ai tentei uns passo-a-passo do site e saiu isso ai. espero que gostem :D

Archer Flame 1024x768px

Enjoy!

0 comentários link  

Upload automatico no imageshack no linux

Eu lendo esse post no blog do hdoria, resolvi modificá-lo para subir automaticamente no imageshack.us a screenshot, eu já tinha encontrado diversos programas e atalhos desses no windows, mas ainda não tinha visto nada parecido no windows, e o bom é que você só precisa colocar no seu .bashrc :P &;


shot () {
img=$(echo $HOME/SHT$(date +%s).png)

if [ -z $1 ]; then
import -w root -quality 75 $img
upload $img
else
sleep $1
import -w root -quality 75 $img
upload $img
fi
}

upload () {
if [ -z "$1" ]; then
echo "Need arg"
else
curl -s -H Expect: -F fileupload="@$1" -F xml=yes \
http://www.imageshack.us/index.php|grep -E \
"<image_link>(.*)</image_link>" | sed \
's|\(.*\)<image_link>\(.*\)</image_link>|\2|'
fi
}


be happy!

0 comentários link  

Alterando os ícones no Arch Linux / Xfce4

Eu sempre gostei de customizar o linux ao máximo das possibilidades, e geralmente consigo, porém com algumas limitações, instalei recentemente o Arch linux, uma distro leve e compacta, e antigamente, quando utilizava o Slack, alterava manualmente os ícones do Xfce4, tendo que editar todos os ícones a mão, um por um.

Meu amigo p0ng me chamou a atenção para um programa simples e prático pra instalar os pacotes de ícones Tango (meu favorito aliás), o nome do programa é Tango-Generator, ele é escrito em python e suporta tanto Xfce4 como o Gnome, e há a possibilidade de que no futuro venha a suportar também o KDE.

A instalação do programa é muito simples, mas se você utilizar o Arch linux a coisa fica mais facil ainda:


[root@mosdef ~]# pacman -S tango-generator
resolving dependencies...
looking for inter-conflicts...

Targets: tango-generator-3.2.3-1

Total Download Size: 0.00 MB
Total Installed Size: 0.56 MB

Proceed with installation? [Y/n] y
checking package integrity...
(1/1) checking for file conflicts [#####################] 100%
(1/1) upgrading tango-generator [#####################] 100%
[root@mosdef ~]#

Caso você for instalar o programa á moda antiga, suas dependências são: dbus-python, pygtk, pyxdg, librsvg e imagemagick. A configuração do tango-generator é tão simples quanto ele, você precisará de um arquivo de configuração para o estilo de ícones que você deseja, ou no caso, apenas selecionando os pacotes na lista que é apresentada no programa. Há vários arquivos de configuração disponíveis no próprio site do tango-generator.

Eu tive problemas com meu dns para resolver o hostname do site do tango-generator, e é importante você tê-lo pois durante a execução do programa, ele faz os downloads dos pacotes de ícones no site, se você tiver problemas adicione a seguinte linha ao seu /etc/hosts:


216.37.76.11 mejogid.ohallwebservices.com


Após a instalação, rode o programa como usuário normal, siga as instruções do programa, e espere o download completo dos pacotes de ícones, o programa criará a pasta ~/.icons, que contém os temas de ícones para o xfce4, vá até User Interface Settings selecione a aba Icon Theme e selecione o nome que você digitou em Theme Name, durante a execução do programa.

Embora o tango-generator faça milagres na aplicação dos ícones, alguns dos ícones default do Xfce4 insistem em continuar, como no caso do xfterm4, o terminal padrão que vem junto com o xfce4, para resolver esse problema, você terá que alterar o ícone padrão do programa, no caso o arquivo /usr/share/icons/hicolor/48x48/apps/Terminal.png, e /usr/share/icons/hicolor/scalable/apps/Terminal.svg para que no topo da window apareça o mesmo ícone que representa o programa.

Eu escolhi o ícone que representa o terminal nos menus do xfce4, após a utilização do tango-generator, no caso o arquivo ~/.icons/nome do seu tema/48x48/apps/terminal.png e ~/.icons/nome do seu tema/scalable/apps/terminal.svg. você pode escolher um ícone de sua preferencia, desde que respeite o tamanho a classe do ícone, como no meu caso de 48x48px e scalable.

como usuário root, faça:


[root@mosdef ~]# cp -f ~/.icons/candido/scalable/apps/terminal.svg /usr/share/icons/hicolor/scalable/apps/Terminal.svg
[root@mosdef ~]# cp -f ~/.icons/candido/48x48/apps/terminal.png /usr/share/icons/hicolor/48x48/apps/Terminal.png
[root@mosdef ~]# cd /usr/share/icons/hicolor/
[root@mosdef hicolor]# /usr/bin/gtk-update-icon-cache .
gtk-update-icon-cache: Cache file created successfully.
[root@mosdef hicolor]#


Simples não? embora o texto ensine como alterar o ícone do xfterm4, é possivel alterar outros ícones de outros programas desde que você saiba o que está fazendo. uma dica é procurar por arquivos de ícones nos binários dos programas se utilizando do comando strings:


[deadcow@mosdef ~]$ strings /usr/bin/Terminal|grep icons
/usr/share/icons/hicolor/scalable/apps/Terminal.svg
[deadcow@mosdef ~]$ strings /usr/lib/bmpx/beep-media-player-2-bin|grep icons
/usr/share/bmpx/icons/tray-icons/tray-icon-default.png
/usr/share/bmpx/icons/tray-icons/tray-icon-paused.png
/usr/share/bmpx/icons/tray-icons/tray-icon-playing.png
/usr/share/bmpx/icons/themes
[deadcow@mosdef ~]$

Referencias
:
http://library.gnome.org/devel/gtk/stable/gtk-update-icon-cache.html
http://mejogid.ohallwebservices.com/site/index.php?q=node/1

1 comentários link