Month: January 2008

Acessando a serial em kernel mode

As vezes precisamos acessar a serial a partir do kernel para criamos algum protocolo de rede que comunique com a serial ou algum driver que use a serial.

Pesquisando por isto, encontrei várias informações, então vamos começar pelo quick and dirt way:

struct file *filp = filp_open("/dev/ttyS0");
char buf[4096];
mm_segment_t oldfs = get_fs();
loff_t pos = 0;

set_ds(KERNEL_DS);
while (vfs_read(filp, buf, sizeof(buf), &pos) > 0)
printk("%s\n", buf);
filp_close(filp);

Isto até funciona, mas não é a forma correta de fazer.

A forma certa chama-se Line Discipline, e está descrita neste artigo:

http://www.linux-mag.com/id/1891

Advertisements

Eu e minha mania de fazer tudo do jeito mais difícil

Após instalar o firefox 32 bits no meu computador (AMD64) resolvi instalar o java e o flash. O java instalou sem problema, pois ele só descompacta e nada mais.

Já o flash deu um pouquinho de chateação. Após executar o flashplayer-installer aparece a mensagem dizendo que ele não suporta arquitetura x86-64, ora eu estou usando a ia32lib então tenho direito de instalá-lo.

Usando strace verifiquei que o instalador chama o programa “uname” para obter esta informação.

Então resolvi criar meu próprio uname.c :

int main(int argc, char **argv)
{
if(strcmp(argv[1],"-s") == 0)
printf("Linux");

if(strcmp(argv[1],"-m") == 0)
printf("i686");

return 0;
}

Depois de compilado copiei para /bin (claro fiz backup do original antes) e testei novamente.

Funcionou, enganei o instalador da Adobe/Macromedia 😉

Eu poderia ter copiado a lib de outro computador, mas não teria a mesma graça e mesma dificuldade 🙂

Uma técnica parecida com essa, porém mais apurada, pode ser utilizada para descobrir senhas em programas para Linux:

http://video.reverse-engineering.net/displayimage.php?album=28&pos=0

Palavras em português que eu desconhecia

Resolvi criar uma nova categoria no blog, uma “omenage” à nossa lingua tão importante e constantemente maltratada. Confesso com dois ss, que sempre tive problema com o português (com a lingua portuguesa), prova disso é o fato que a única matéria que fiquei de recuperação durante minha vida acadêmica foi exatamente o português.

Então vamos lá, chega de blablabla, vocês já devem estar curiosos para saber as palavras que eu desconhecia:

A:
abaetê – pessoa sábia, pessoa feia, repelente
acintoso – apoquentador, teimoso
acre̤̣o Рprocesso pelo qual algo aumenta gradualmente de tamanho atrav̩s do acr̩scimo de partes menores
acro – frágil, quebradiço
acropole – a parte mais elevada das antigas cidades gregas
ado – leite recentement mungido
aduz – apresenta, introduz, conduz
alcadafe – vaso de barro
alguidar – vaso muito largo e comprido, com boca maior que o fundo
amanhar – tratar a terra, cultivar
̢nfora Рvaso com duas asas
ancho – vaidoso, orgulhoso
apa Рbolo em forma de disco, p̣o sem fermento
apetecer Рdesejar muito, cobi̤ar
apoplexia Рgolpe violento, algo que provoca morte instant̢nea
arrear – colocar enfeite e adorno em algo
arrefecer – esfriar, tornar-se frio, moderar o zelo, o entusiamos
aru Рesp̩cie de sapo das regi̵es do Amazonas
ascética – que ou quem se entrega às práticas espirituais, vida de monge
asinino – estúpido, próprio de asno
ataraxia РSerenidade de ̢nimo. Pessoa que ṇo se preocupa com os problemas
ata̼de Рcaixa
atoar – conduzir a reboque, rebocar, levar à toa
atoarda – notícia vaga, boato
atro Рl̼gubre, medonho
áulico – cortesão, palaciano

B:
barriga Рinforma̤̣o falsa noticiada em jornal
basal – essencial, principal
batel – barco pequeno
beliz – sagaz, esperto, ladino
bramar – gritar, rugir, bramir
bramir – rugir, soltar gritos de cólera
buril – estilo apurado, ferramenta para fazer gravuras em madeira

C:
cabotino – comediante ambulante
cacareno – velho, usado, de pouco valor
calandrar – lustrar, acetinar, alisar
camelice – tolice, sandice
caronte – Deus do mundo inferior e dos mortos (Mit. romana)
catafalco РEstrado alto sobre que se coloca o f̩retro
catarse Рpurifica̤̣o, liberta̤̣o do sofrimento de quem sofreu represṣo
chicana Рtramoia em quest̵es judiciais, trapa̤a
colombina – personagem de um gênero de comédia italina (Commedia dell’Arte), pedra da qual se extrai chumbo
contendas Рlutar, brigar, discutir, controv̩rsia
contritos – estar arrependido, pesaroso, penoso
cornija Рdecora̤̣o no alto de pr̩dios, portas ou lareiras
coruscante – reluzente, cintilante, faiscante
cróceo – amarelado, dourado, da cor do açafrão

D:
demover – fazer renunciar, dissuadir, abalar
digresṣo Рpasseio, excurṣo
dole – comuna francesa

E:
ebó – oferenda, despacho
efígie – rosto ou vulto de uma pessoa numa moeda ou nota, retrato
elucubrações – compor, realizar à força de ligílias
ena̤̣o Рsali̻ncia superficial dos vegetais (Bot.)
engrupir – enganar, ludibriar, induzir ao erro
engodo – ísca, atrativo, chamariz, lisonja, adular
̩reo Рde bronze ou de cobre
esculento – comestível, que é bom de se comer
esgar – trejeito, visagem
estupefaciente – que entorpece, que deixa atônito (notícia estupefaciente)

F:
falarica – dardo incendiário, flecha com um chama na ponta
falca – tábua da borda de um barco
f̩retro РCaix̣o, ata̼de, esquife
fleuma Рhumor, paci̻ncia

G:
gaḅo Рcapote com capuz, mangas e cabe̤̣o
garbosa – elegante, charmosa, aprumada, bonita
gauro – boi de chifre curtos da India
ginetes Рpẹo, cavaleiro, cavalo pequeno e ligeiro
gorgona – mulher mitológica com cobras no lugar do cabelo
grei Рrebanho de gado mi̼do, conjunto de paroquianos e diocesanos
guampo – chifre, aspa
gurma Рdoen̤a que ataca os potros na ̩poca da denti̤̣o.

H:
hipomane – veneno extraído de éguas no cio, feitiço feito com este veneno

I:
i̤a РF̻mea alada da formiga sa̼va
ilativo – conclusivo, que deduz os fatos
inane – fútil, canínha
incola Рmorador (po̩t.)
intruj̣o Рenganador, burlador
írrito – sem validade, sem confirmação

J:
jacente – herança que fica para o governo, quando não há herdeiros necessários

L:
ladeada – flanqueada, acompanhada
lapa – grande pedra, gruta
litania – ladainha
loa – mentira, elogios, apologia
l̼gubres Рescuro, medonho

M:
maioral Рchefe, cabe̤a
menear – manejar, mexer, mover de um lado pro outro
messe – seara madura, ceifa, ganho, conquista

N:
nevrálgico – o ponte perigo ou delicado de uma questão
nicar – picar com o bico

O:
obla̤̣o Рoferenda, oferta a Deus
ocaso – pôr do sol, ocidente, poente, declínio, ruína, cadente
odre – saco para líquidos
orago – santo, oráculo, padroeiro
orate – idiota, louco

P:
patoá – dialeto
patuá – amuleto
peremptório – decisivo, terminante, categórico, que perime
pierr̫ Рpersonagem da com̩dia italiana, Pierr̫ Apaixonado Рmarchinha de Noel Rosa
pinoia Рcoisa sem pr̩stimo (pop.)
potentado – soberano de um estado poderoso, pessoa influente, podera ou rica
procrastinar – adiar, postergar, demorar
proxenetismo Рaquisi̤̣o

R:
reigada – rego entre as nádegas de certos animais
ribalta – série de luzes à frente do palco, entre o pano de boca e o lugar da orquestra.
rififi – barulho, briga (pop.)
rossio Рterreno aberto, rua larga, pra̤a
runa Рantigo alfabeto germ̢nico

S:
sarcômero – um dos componentes básicos do músculo estriado
sauveiro Рreunịo de formegueiros de sauva
sisudo Рpredunte, justo, s̩rio
solaparia – escavar, arruinar, encobrir
solapasse – aniquilar, arruinar

T:
taciturno – calado, silencioso
talmude – livro sagrado dos judeus
tarol – tambor achatado
t̩pido Рcom pouco calor, morno, frouxo
tesas – estiradas, imóveis
teso – tenso, esticado, impetuoso, fig.: sem dinheiro
tororó – curto, muito aparado
tudesco – alemão, germano, língua dos antigos Germanos

U:
uca – aguardente, caninha
udo Рgra̼do, algo grande
ugar – gritar, alarmar, tornar plano, plainar

V:
valhala/valhalla – local para guerreiros mortos em batalha (Mit. nórdica)
v̩nia Рlicen̤a, permisṣo, absolvi̤̣o
vereda Рlocal f̩rtil, com vegeta̤̣o abundante
vernáculo – linguagem correta, idioma proprio do pais, genuino
verve Рimagina̤̣o viva, entusiasmo, energia
vilta Рafronta, inj̼ria, vitup̩rio

Algumas podem ser conhecidas da maioria das pessoas, mas eu não as conhecia ou não tinha certeza do seu significado.

Janela de símbolos

Estou procurando por um plugin para adicionar ao gedit para que ele possa fazer referência cruzada usando como base um arquivo de índice ctags.

Encontrei um visualizador de símbolos (equivalente aqueles do MSVC e Eclipse) para o gedit:

http://www.micahcarrick.com/11-14-2007/gedit-symbol-browser-plugin.html

A instalação no Ubuntu é simples, basta descompactar o plugin em ~/.gnome2/gedit. No meu computador este diretório gedit não existia, então eu o criei e copiar para lá, funcionou corretamente.
Para ativar o plugin deve-se ir em Edit->Preference->Plugin e ativar o Symbol Browser.

Uma listagem com todos (vários) plugins para gedit pode ser encontrada eim:
http://live.gnome.org/Gedit/Plugins

O plugin que eu preciso é o CTags parser: http://live.gnome.org/Gedit/PluginCodeListing , porém para usá-lo terei que recompilar tudo com o fonte do gedit, pois só tem o binário para x86.

Debugger for Linux

Estava pesquisando sobre engenharia reversa e encontrei duas ferramentas interessantes nesta área, a primeira é para Windows e chama-se OllyDbg:

http://www.ollydbg.de

Infelizmente o código fonte não é aberto, trata-se de shareware que mais parece um freeware 🙂

A segunda ferramenta é uma clone desta só que, felizmente software livre, para Linux:

http://www.codef00.com/projects.php#Debugger

Por enquanto ela só suporta x86, mas é provável que em breve passe a suportar outras arquiteturas, seria ótimo suportar ARM, facilitaria na modificação de firmware de smartphones e celulares.

Se o que você procura é apenas um disassembler para Windows então sem dúvida o IDA é o melhor, ele suporta vários processadores:
http://www.hex-rays.com/idapro/

Sai LinuxBIOS, entra coreboot

Esta notícia já está um pouco velha, mas como não foi muito divulgada vou postá-la aqui.

O projeto LinuxBIOS mudou de nome para refletir melhor a idéia do projeto, agora ele se chama coreboot.

Realmente faz sentido, uma vez que o sistema é utilizado para inicializar outros sistemas operacionais também e pode ser usado para outros fins que não tenham relação com Linux.

O site do projeto também mudou, alias o que não mudou ainda é a logomarca do projeto:

http://www.coreboot.org/Welcome_to_coreboot