Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Elaborado por:
Cruz Gmez Daniel Salomn
Dreamylation@gmail.com
https://github.com/Dreamylation
Sistemas Operativos
"3A"
INTRODUCCIN
Hoy en da, es muy comn el ir a un ciber-caf y conectar nuestro dispositivo USB
para despus recibir la sorpresa de que ya se infect de un virus, incluso cuando
menos lo esperamos de las mquinas que menos esperamos suele pasar, vivir con
esta incertidumbre es motivo de preocupacin y ms an si nuestro USB posee
informacin o datos valiosos.
Slo basta con conocer que parte del registro de windows modificar para bloquear el
acceso de escritura a nuestra USB y de esta manera evitar que un virus modifique
nuestros archivos.
Es posible desactivar de forma manual los permisos de escritura en unidades
extrables, lo que el software de esta prctica hace, es de manera automtica y con
el consentimiento del usuario, agrega al registro la llave necesaria para bloquear la
escritura en cualquier disco extrable, sin embargo, se recomienda nicamente
insertar el USB con el software al PC infecta para primero bloquear el permiso y
despus insertar la USB que ser utilizada.
II. OBJETIVO
A travs de un software creado, cambiar los permisos de escritura en unidades
extrables tales como USB, HDD externos, etc. El software modificar y de ser
necesario crear una llave en el registro del sistema para lograr tal fin.
El registro de Windows
El registro es una base de datos en Windows que contiene informacin
importante acerca del hardware del sistema, programas instalados y
configuraciones, perfiles de cada cuenta de usuario, etc.
Normalmente no es necesario hacer cambios manuales al registro ya que los
programas y aplicaciones lo hacen de forma automtica. Un incorrecto
cambio de valores en el registro puede llevar a la inutilizacin del sistema.
El registro posee una poltica para el uso de dispositivos extrables llamada
StorageDevicePolicies, en la cual se pueden cambiar los permisos de
escritura, lectura y control total de los dispositivos extrables; la llave que se
encarga de dichos permisos se llama WriteProtect la cual es de tipo DWORD
(32 bits).
Qt 5.5 (IDE)
Qt es un entorno de desarrollo multi-plataforma para PC de escritorio,
sistemas embebidos y mviles. La plataforma est escrita en C++ y se utiliza
un preprocesador llamado MOC (Meta-Object Compiler) para introducir
caractersticas como las seales y los slots. Qt posee la capacidad de
generar widgets o formas a travs de su librera QtQuick, lo cual lo convierte
en una excelente plataforma para desarrollar software.
IV. METODOLOGA
1. Abrir Qt 5.5 y crear un nuevo projecto (Qt Widget 2) y darle un nombre al
proyecto.
2. Ir a MainWindows.UI para crear la interface.
a. Extender el widget base hasta obtener el tamao deseado.
Software
Qt 5.5 (IDE)
CMD Windows 10
Libreras usadas
QProcess
Clase para ejecutar programas externos y conmunicarse con elllos (usado
para ejcutar REG ADD).
QFile
Clase que provee una interface para leer desde y escribir a archivos.
QTextStream
Clase que provee una conveniente interface para leer y escribir texto.
QMessageBox
Clase que porvee una caja de dilogo para informar o preguntar al usuario y
recibir una respuesta.
QTimer
Clase que provee temporizadores repetitivos.
cstdlib
Clase de la librera standard de C (usada para acceder a System)
VI. DESARROLLO
Abrir Qt Creator -> new Project -> Applications -> Qt Widget Application.
De esta forma crearemos un nuevo projecto basado en Widgets, le damos un
nombre al proyecto y le damos todas las opciones por defecto.
2.-Abrir mainwindows.ui.
insertar una imagen que cubra todo el widget; expandimos el Graphics View hasta
que abarque todo el widget principal. Para agregar una imagen de fondo, bastan con
ir a la propiedad de
#include
#include
#include
#include
#include
#include
"QProcess"
"QFile"
"QTextStream"
<cstdlib>
"QMessageBox"
<QTimer>
Volvemos al editor de formas y damos clic derecho en uno de los botones que
creamos, seleccionamos go to slot..
6.- go to slot.
El go to slot nos permite crear un slot nuevo que funcionar como un evento que se
ejecutar cuando dicho botn sea oprimido. Dentro de esta funcin colocamos el
cdigo para deshabilitar la escritura en unidades extrables.
void MainWindow::on_habilitar_clicked()
{
QProcess::execute ("REG ADD
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\StorageDevicePolici
es /v WriteProtect /t REG_DWORD /d 1 /f");
QMessageBox::information(0, "Escritura Deshabilitada",
QString("Escritura Deshabilitada"));
}
Nuestra funcin llama al mtodo execute de la clase QProcess la cual permite
executar comandos de consola, el comando que ejecutamos es
REG ADD
Este comando nos permite agregar una llave nueva al registro.
El parmetro:
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\StorageDevic
ePolicies
Agregar la llave en esa localizacin.
/v WriteProtect /t REG_DWORD /d 1
Esta parte crear una llave de nombre WriteProtect con tipo de dato REG_DWORD
y valor 1.
Finalmente, el parmetro /f, nos permite ejecutar la orden sin necesitar permisos
del usuario.
presentar. Este ltimo debe estar en formato Qstring, por ello realizamos una
conversin explcita.
Hacemos lo mismo para el otro botn con la nica diferencia que la llave ser
creado con valor 0.
Creamos una funcin Startup que nos servir para mostrar la informacin de los
dispositivos extrables.
void MainWindow::startup()
{
system("wmic logicaldisk where drivetype=2 get deviceid, volumename,
description > %SystemDrive%\\data.txt");
QFile file("C:\\data.txt");
if (!file.open(QIODevice::ReadOnly))
{
QMessageBox::information(0, "error", file.errorString());
}
QTextStream in(&file);
QString line = in.readAll();
ui->textEdit->clear();
ui->textEdit->setText(line);
}
La funcin System nos permite llamar la consola de Windows y ejecutar un
comando, en este caso el comando es wmic logicaldisk. El cual presenta
informacin de todos los dispositivos de almacenamiento conectados, sin embargo
nosotros slo queremos mostrar unidades extrables, por lo cual agregamos los
siguientes parmetros:
where drivetype=2 get deviceid, volumname, description
Esto filtra los dispositivos a unidades extrables.
La ltima parte de los parmetros nos permite almacenar los datos arrojados por el
comando y guardarlos en una ubicacin y archivo especfico.
QFile file
Hacen un parse de tipo de datos, primero creamos una corriente de texto con
QTextStream usando como base el archivo que creamos con QFile. Despus
leemos cada lnea del archivo y la convertimos a un string de Qt con la lnea:
QString line = in.readAll();
timer->start(5000);
Se hace un primer llamado a la funcin startup y despues se crea un temporizador
el cual se conecta a la funcin; se inicializa el temporizador en 5000ms.
10.- Temporizador.
VIII. CONCLUSIONES
Usando el editor de registro de Windows ya sea de forma manual o a travs de la
consola, podemos modificar diversos permisos que puedan incrementar nuestro
nivel de seguridad, sin embargo, existen diversos virus que trabajan desde el
registro haciendo la tarea de restaurar nuestra PC aun ms ardua. Por ello se
recomienda deshabilitar el acceso al registro a cualquier programa que el usuario no
haya dado permisos.
Cuando se trabaja con software, a lo largo de la historia de Windows se ha
empezado a ver cierto problema o inconveniente, y eso es el nivel de permisos que
el sistema le da a aplicaciones de terceros. En este caso, es completamente
necesario que el usuario ejecute el programa en modo administrador, ya que de otra
manera los comandos de consola no se ejecutarn con el nivel de permisos
necesario como para editar el registro o crear archivos en la raz del sistema.
IX. BIBLIOGRAFA