miércoles, 10 de septiembre de 2008

desactivar el autorun en windows xp

hola amig@s
estoy aqui nuevamente pero ahora con una solucion a un pequeño problema que ultimamente
andamos sufriendo los usuarios de software propietario ;)

Resulta que ultimamente hay muchos de estos virusillos que se ejecutan por medio del llamado
autorun que es gatillado cuando introducimos nuestro pendrive en la maquina.

Esta modalidad ya existia desde windows 9x donde grlte. se usaba para ejecutar algun contenido en los cdroms, etc. Pero es recien en este tiempo en el que el uso masivo de pendrives y la consecuente movida de informacion de una pc a otra, lo que ocasiona que millones de ordenadores se infecten.

Estos archivos se encuentran en la raiz del pendrive, y por lo gral funcionana asi
introducimos nuestro pendrive (contaminado) el windows xp revisa el pendrive en busca del autorun lo encuentra y este ejecuta una secuencia de comandos que activa un o unos virus que tenga almacenado dentro.

Como sabran los virus no se pueden autojecutar, siempre necesitan de un gatillo, es eso lo que hace el autorun. Ahora si, cuando se gatilla el virus fuimos, porque toma control de la maquina y la predispone a infectar tantos pendrives y discos pueda aparte de otros daños como hacer mas lenta, espiar nuestros archivos, e inclusive robarla y ocultarla o cifrarla y pedir un rescate por esta.

Bueno, la presente solucion funciona para equipos que no hayan sido contaminados aun,
nos vamos al menu inicio y seleccionamos la opcion ejecutarescribimos gpedit.msc
y luego pulsamos el boton aceptar


deberia desplegarse un programa que es para edicion de politicas de grupo:

buscamos en el lado izquierdo la carpeta que dice plantillas administrativas que es sub carpeta de configuracion del equipo.

dentro de esa subcarpeta buscamos una que dice sistema

la seleccionamos

y en el lado derecho buscamos una opcion que dice Desactivar reproducción automática

la seleccionamos y le damos doble click

seleccionamos la opcion que dice habilitada y en el combo box mas a la derecha le decimos que sean todas las unidades , por ultimo click en aceptar


y cierran pulsando Aceptar y todo listo
ahora conectan su pendrive y no aparecera mas el escaneo que le hace el sistema en busca del autorun

ahora unos tips extras mas para que puedan hacer una pequeña limpieza a sus pendrives encaso de que esten infectados
ojo, no me hago responsable de ninguna forma por ningun daño directo o indirecto que puedas hacer al equipo

con el comando cmd
te vas a la unidad que pertenece a tu pendrive
por lo general es f: o g: o h:
entonces tendrias algo como
F:\>
para ver los archivos ocultos ejecutamos el comando
dir /ah
la opcion a es para atributos y la h es de hidden (oculto)
con eso obtendremos un listado de archivos ocultos en nuestro pendrive
de ese listado tendriamos que poder diferenciar archivos/carpetas que no deberian estar alli

por ejemplo si encontramos algo como
RECYCLER
que nos indica que hay un directorio o carpeta llamado recycler, deberia llamarnos la atencion, ya que en el pendrive cuando le damos borrar a un archivo no nos pregunta si queremos enviarlo a la papelera, sino que directamente pregunta si queremos eliminarlo es por ello esa carpeta no deberia estar alli!.

ahora para borrar un directorio
usamos el comando rd (remove directory)
pero si lo usamos a secas
rd recycler
nos dira que hay archivos dentro y no se que cosas mas
para ello usamos la opcion silencioso y sin confirmaiones(q) y (s)que borra todos los archivos dentro y directorios
rd recycler /q /s
ahora para todos los archivos que nos parezcan sospechosos
usamos el comando del abreviatura de delete(borrar)

del archivo.ext /ah
nos borrara un arhivo, si es que el archivo es oculto y no esta indicado como del sistema, pero como los creadores del virus por lo gral le ponen esos atributos, al tratar de borrarlo nos dira
permission denied (permiso denegado)
tendremos que usar la opcion f (force)
del archivo.ext /ah /f

observacion usamos ah porque es un archivo oculto

algunos archivos que suelo encontrar en pendrive y que suelo borrar son
csrcs.dll
knight.exe
NTRun.exe o .com
autorun.inf

eso es todo por este post, espero les parezca interesante y no olviden hacer siempre un backup (copia de seguridad o respaldo) de sus informaciones importantes


lunes, 11 de agosto de 2008

Usando CodeIgniter

Bueno, lo prometido es deuda como dirian, me he decidido y ahora quiero ofrecerles un mini tutorial de como usar el codeigniter a un nivel bien basico para que puedan empezar si es que nunca lo han hecho antes con este u otro framework.

ok, lo primero que necesitan conocer medianamente es la estructura de archivos y directorios del framework para que sepan donde poner cada cosa.

cuando descarguen el framework de www.codeigniter.com tendran algo similar a esto:
system
|- application
|-cache
|-codeigniter
|-database
|-fonts
|-helpers
|-language
|-libraries
|-logs
|-plugins
|-scaffolding
user_guide
index.php
license.txt

archivos mas o menos eso deberia ser asi...
ok la carpeta que nos interesa es la que dice system y dentro de esa, la que dice application y dentro de esta carpeta, las carpetas que se llaman
config, controller, model, view

dentro de la carpeta config nos interesan los archivos
autoload.php
config.php
database.php y
routes.php

el primer archivo tiene la configuracion de lo que por defecto se cargara cada vez que se invoque al sitio, por ejemplo la conexion a la base de datos, las funciones de session, y cosas por el estilo, esto es lo que ayuda a que el framework pueda decirse que es liviano, ya que se carga solo con lo que consideremos necesario

el archivo config tiene algunas configuraciones como por ejemplo el

$config['base_url'] = "http://127.0.0.1/new/";
?>

que dice que la raiz de nuestro sitio es esa direccion que aparece en el lado derecho de la expresion de asignacion

otras configuraciones como el

$config['index_page'] = "index.php";
?>


que le dice cual es la pagina index y si usamos el mod rewrite que provee apache y usamos la siguiente regla en nuestro .htacces ( un archivo de configuracion que mediante unas expresiones regulares establece que todo se redirige al index y este se encargara de tomar el rumbo adecuado)

a continuacion les copio el contenido de mi .htaccess para que puedan usar las url amigables y asi no tengan que usar el index.php

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

ahora pasamos al siguiente archivo que es database.php que es el archivo de configuraciones de la base de datos
en el encontraran el siguiente codigo:
<?php
$active_group = "default";
$active_record = TRUE;

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "";
$db['default']['password'] = "";
$db['default']['database'] = "";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
?>


donde lo importante realmente es el que dice hostname, username, password y database, ahh y el dbdriver, que normalmente solemos compleatar de la siguiente forma:
donde dice hostname, suele ser con "localhost", donde dice username password y database son datos que uds deben manejar, y el dbdriver puede ser mssql, mysql, mysqli, postgre
esta es una de las ventajas del codeigniter, la variedad de controladores de base de datos que tiene, por dentro nosotros programamos en una forma digamos estandar y si tenemos que cambiar de mysql a postgre por ej, solo cambiamos el nombre del driver y no nos complicamos tanto modificando nuestro codigo (claro, si es que no usamos sentencias propias de mysql u otro en nuestras consultas) pero en gral es asi.

y por ultimo en este directorio nos interesa routes.php
que es el archivo en el que definimos las rutas de nuestro sitio...
tendremos en cuenta dos cosas principales en este archivo una, cual va a ser el controlador principal de nuestro sitio, esto es, que controlador se llamara cuando ingresemos a la raiz del sitio, cuando nuestra instalacion es nueva encontramos lo siguiente:
$route['default_controller'] = "welcome";

donde welcome es el nombre del controlador/archivo que se encuentra en nuestra carpeta controller, lo cambiamos por el controlador que nosotros desarrollemos y nos interesa que sea el principal, otra forma de acceder a este controlador seria
http://www.nuestrositio.com/index.php/controlador_por_defecto o sencillamente
http://www.nuestrositio.com/controlador_por_defecto en el caso de que poseamos url amigables con la ayuda del .htaccess

continuemos, ahora nos vamos a la carpeta controller; como les decia aqui vamos a poner los archivos y/o carpetas que nos interesan funcionen como index, y a que me refiero al usar esa frase (que tal vez este mal dicha) imaginense que quieren tener algo asi:
http://www.tusitio.com/blog
o
http://www.tusitio.com/administracion/login

en el primer caso, blog seria nuestro controlador, en el segundo podriamos tener una carpeta administracion y un archivo controlador dentro que se llame login.php

de esa forma se puede determinar a donde queremos ir y que acciones queremos ejecutar

la estructura del archivo controller es asi:

class Micontrolador extends Controller
{
function Micontrolador()
{
parent::Controller();
}
function index()
{
$this->load->model('mi_modelo');

//tambien podemos cargar alguna vista
$this->load->view('bienvenida');
}

funciton miPrimeraFuncion()
{
echo "estamos en nuestra primera funcion";
}
}
?>

ok, fijense en los siguientes detalles, la clase debe llamarse exactamente de la misma forma que el archivo pero la primera letra debe ser mayuscula, (los programadores de java encontraran esto bastante similar)
segundo en la clase constructora siempre se llama al constructor de la clase padre
el metodo llamado index es el metodo que se ejecuta por defecto si no se especifica ninguno cuando se llama al controlador.

la estructura del modelo es similar tambien

class Mimodelo extends Model()
{

function Mimodelo()
{
parent::Model();
}
function misMetodos($parametros)
{
//aqui van los codigos, consultas sql, etc
}
}
?>


y las vistas son archivos php como normalmente lo harian solo que con algunas ventajas mas
por ejemplo, si en nuestro controlador definimos un arreglo de la siguiente forma


$data["valorDeResultado"] = $this->miModelo->dameResultados();
y llamamos a la vista, pasandole el arreglo como parametro
$this->load->view('algunaVista',$data);



y en nuestro archivo de vista
podemos acceder a ese "valor de resultado"como una variable local del archivo
de la siguiente forma:


echo $valorDeResultado; ?>


y otras ventajas como de que se pueden llamar a otras vistas desde la misma vista.

ahora algunas cosas mas antes de ir terminando.

si en el autoload no definimos que se cargue la libreria de base de datos, lo hacemos asi

$this->load->library('database');
?>

y podemos hacer consultas sql
$query = $this->db->query("select * from tabla");

donde $query sera un objeto que es resultado de la consulta de base de datos
para consultar el numero de filas hariamos

$query->num_rows();
?>



y podemos recuperar los resultados de la base datos "como objetos" esto quiere decir que podemos hacer esto:


foreach($query->result() as $row):
echo $row->columna1;
echo $row->columna2;
endforeach;
?>



si quisieramos recuperar como arreglos (como tradicionamente lo hariamos) en vez de ejecutar el metodo result() ejecutamos el metodo result_array(), y si quiesieramos recuperar solamente una fila hariamos row()

bueno eso es todo por ahora...
saludos y si les gusto, no olviden dejar algun comentario y si cometi algun error por favor no duden en hacermelo conocer para corregirlo inmediatamente; :)