Rogue’m Up

English version below.

Linux Application Development book
Uns dois anos atrás, comprei numa promoção o livro Linux Application Development, e até hoje não consegui acabar de lê-lo. Acontece sempre isso com todo livro técnico que compro. Nunca consigo ler pelo menos um parágrafo de uma só sentada, sempre perco o interesse e vou fazer outra coisa.

Resolvi então mudar de estratégia: vou lendo os capítulos fora de ordem, procurando por temas que me interessem no momento. Vi então que o livro tem um capítulo sobre uso da lib S-lang, que serve para abstrair o acesso ao terminal (console). Tradicionalmente se usa a biblioteca ncurses, mas a S-Lang parece ser mais moderna.

Enfim, não só finalmente li um pouco mais do livro, como comecei a brincar com as funções da S-Lang e fiz um pequeno jogo, um shooter lateral, com o mesmo. Como a nave é representada pelo caracter @ e os inimigos são, digamos, familiares para quem já jogou um certo jogo em modo caractere, resolvi chamar este de Rogue’m Up – mistura de Roguelike com Shoot’em Up.

Ou seja, é um shooter para se jogar em modo caractere. Não espere nada muito bem feito, afinal foi só o resultado de uma tarde brincando com as funções da lib S-Lang. Movimente-se com as teclas wasd ou hjklyubn (todas minúsculas), atire com o espaço, saia com Q (maiúsculo). Cada colisão com um inimigo tira 2 pontos de HP.

Atualizado: agora com mais de uma versão e usado como exemplo de programação em C, aqui.


Linux Application Development book
Two years or so ago I bought the book Linux Application Development at bargain price, but I still didn’t finished reading it. This always happens with all technical books I bought: I sit down to read the book, and before I finish even a chapter, I shift my attention to something else and drop the book.

I decided to change my strategy: now I’ll try reading the chapters out of order, selecting chapters by its themes, looking for something I’m interested in reading at that moment. Then I found that this book had a chapter about the S-lang lib. S-Lang provides an abstraction of the terminal (console), easing the programming of console applications. Traditionally the ncurses lib is more used and talked about, but S-Lang seems to be updated more often.

So I’ve finally advanced a little more in reading this book, and also spent some time playing with the S-Lang functions, enough to make a small game – a lateral shooter. The ship is an @ character and the enemies are, let’s say, somewhat familiar to anyone who ever played a certain character-mode game. And so I named this little experiment Rogue’m Up – from the wordsRoguelike and Shoot’em Up.

In other words, it’s a character-mode shooter. Don’t expect anything nice, this was just a result of an afternoon’s play with the S-Lang lib functions. Move the ship with the keys wasd or hjklyubn (all lowercase), shoot with the spacebar, quit with Q (uppercase). Every time an enemy collides with you, you lose 2 HP.

Updated: now with more than one version and used as example of C programming, here.

Plonq

English version below.

Faz um tempo que encontrei por acaso um joguinho chamado Qonk. Simples, pequeno, mas criativo. Exige estratégia e rapidez. Basicamente, o objetivo é conquistar um sistema solar, eliminando os concorrentes, conquistando outros planetas, e usando as naves espaciais produzidas por esses planetas para conquistar outros.

Também faz um tempo que conheci a linguagem Lua. Simples, pequena, mas criativa e bem flexível. E para conhecer melhor a linguagem e brincar um pouquinho com ela, instalei uma variante da mesma no meu Palm Tungsten: Plua. Como a melhor forma de aprender uma linguagem de programação é escrever um programa nela, resolvi tentar fazer um joguinho: um pequeno clone do Qonk. O jogo ainda não está completo mas já está funcional. Coloquei o jogo e o código fonte aqui:
Plonq


Some time ago I found a little game called Qonk. Simple but creative, it requires strategy and quick thinking. Basically, the goal is to conquest a solar system, eliminating the adversaries, conquering more planets, and using the spaceships produced by those planets to conquer others.

Some time ago, I also knew the Lua language. Simple, small, but creative and flexible. And in order to know it better, I installed a variant of it in my Plam Tungsten: Plua. Since the better way to learn a new programming language is to write a program in it, I decided to try making a little game: a Qonk clone. The game isn’t complete yet but already works. I’ve uploaded the game and its source code here:
Plonq

Código fonte disponível é coisa antiga

Ao ouvir hoje em dias os termos “software livre” e “código aberto”, geralmente se pensa que são idéias recentes, de apenas alguns anos atrás, e para muitos trata-se apenas de uma “moda passageira” ou apenas mais “buzzwords”, coisa que não seria novidade no ramo da informática. Os mais desavisados provavelmente vão pensar que isto é uma moda que se iniciou no fim dos anos 90. Os ainda mais desavisados devem achar que é uma moda de “um pessoal aí” sobre “esse negócio de todos os programas serem de graça”. Mas não é de conceitos mal compreendidos que eu queria falar ainda – é da idade dessas idéias. A origem disso está mais distante que os anos 90.

Continuar lendo

Ideas for HLBR

English version below.

Segue abaixo algumas idéias sobre o HLBR… não necessariamente coisas que serão implementadas, apenas idéias soltas.

  • Novos decoders: HTTP e SMTP
    • Disponibilizar vários campos HTTP como testes
    • Decodificação de anexos – base64, binhex etc.
    • Verificação de anexos (outra thread?)
  • Manuseio de sessões
    • Score para sessão. Até 100 a ação afeta apenas o pacote, 127 a sessão toda.
  • Alguma linguagem interpretada para definição de regras?
    • Python, Lisp?
    • Acesso a campos de structs internos…

Some ideas about HLBR… not necessarily stuff that will be implemented, just some random thoughts.

  • New decoders: HTTP, SMTP
    • Make HTTP fields available for tests
    • Attachment decoding – base64, binhex, …
    • Attachment verifying (another thread?)
  • Session handling
    • Session score. Up until 100 the action only affects the packet, 127 affects the entire session.
  • An interpreted language for rule definition?
    • Python, Lisp?
    • Access to internal struct fields…

Artigo: HLBR – O emprego de uma bridge como IPS para a segurança em redes de computadores

Abstract. HLBR (Hogwash Light BR) is a free/libre IPS, developed in Brazil, based in Jason Larsen’s Hogwash, which captures data directly from layer 2 of the OSI model (link layer). It works as a bridge, being able to detect and handle malicious traffic. HLBR is invisible to attackers, since it doesn’t change the packets’ headers. The project initial goal was to refine Hogwash’s code, in order to make it more functional. Some planned enhancements were already implemented, including the use of regular expressions. This document will describe HLBR’s main features and uses, as well as all the research work done to enhance it and make it an efficient IPS.

Resumo. O HLBR (Hogwash Light BR) é um IPS livre, desenvolvido no Brasil, baseado no Hogwash de Jason Larsen, que colhe dados diretamente na camada 2 do modelo OSI (camada de enlace). Atua como uma bridge, sendo capaz de detectar e tratar tráfego malicioso. O HLBR é invisível aos olhos de um atacante, uma vez que não altera o cabeçalho dos pacotes. O objetivo inicial do projeto foi refinar o código do Hogwash, a fim de torná-lo mais funcional. Uma série de melhorias previstas já foram implementadas, inclusive o uso de expressões regulares. Este documento descreverá as principais características e aplicações do HLBR, bem como toda a pesquisa realizada para aperfeiçoá-lo e torná-lo um IPS eficiente.

Artigo (PDF)