anun1

martes, 4 de marzo de 2025

Usando Las Apis ReadProcessMemory y WriteProcessMemory en C++

Hola amigos hoy les traigo un nuevo programa es como usar las apis mensionadas en el titulo ReadProcessMemory y WriteProcessMemory  en c++ yo ya habia hecho un video y un programa en vb6 pero el video me lo tumbaron de la plataforma de youtube ya que me bloquearon la cuenta en fin ahora lo traigo en c++ es sencillo, antes que nada se bajan el dev c++ si no lo tienen y le dan clic en  

declaramos las librarias a usar que son 2 y la ultima linea es para no estar escribiendo std:: a cada rato

#include<iostream>
#include<windows.h>

using namespace std;

enseguida de eso declaramos el main y la variable pid como variable DWORD y le pedimos al usuario que nos de el pid del proceso

int main()

{

   DWORD pid;

   cout<<"dame el pid del preceso: ";

   cin>>pid; 

para saber el pid de un ejecutable entran al administrador de tareas y fijais en el pid, si no les aparece solo den clic derecho en la barra de arriba  y palamean la opcion pid asi


para los que no saben sacar el administrador de tareas solo dan clic en la tecla windows + R y teclean taskmgr asi


ahora tecleamos lo siguiente en el codigo

char texto[64]; 

void *direccion;

HANDLE Proceso=OpenProcess(PROCESS_ALL_ACCESS,0,pid);

lo que hace esta parte es declarar una variable char llamada texto con 64 espacios de memoria donde cada espacio ocupara una letra asi que ustedes le pueden poner mas de 64 si quieren leer mas bytes de memoria yo solo puse 64 para el ejemplo le pueden poner mas.

declaramos la variable direccion como void y usamos la api OpenProcess para abrir el proceso o ejecutable que vamos a leer, otra cosa yo aqui no estoy usando las apis

 FindWindow, GetProcessId y GetWindowThreadProcessId  

para buscar el preceso en ejecucion por su nombre y luego abrirlo no, aqui usaremos el administrador de tareas y el usuario nos dara el pid del ejecutable, lo puedo hacer asi pero lo quise hacer mas sencillo y sin tanto rollo seguimos

if(Proceso)

{

    cout<<"Dame la direccion: ";

    cin>>direccion;

ReadProcessMemory(Proceso,direccion,&texto,sizeof(texto),0);

cout<<"El texto: "<<texto<<"  a sido encontrado ingrese el nuevo texto: ";

cin>>texto;

    WriteProcessMemory(Proceso,direccion,&texto,sizeof(texto),0);

    

    cout<<"El texto a sido ingresado correctamente";

}

}

ponemos un if si el preceso lo abrio devolvera un true y entra al if, despues de eso le pedimos al usuario que nos de la direccion de memoria que vamos a leer, para buscar la direccion de memoria usaremos el cheat engine lo pueden descargar si no lo tienen, despues usando la api ReadProcessMemory leemos la posicion de memoria pasandole el proceso, la direccion, el array de char que la llamamos texto y la longitud de el con sizeof(texto) que es 64

de la api WriteProcessMemory no es nesesario explicar funciona igual pero en ves de leer escribe y se le pasan los mismos datos asi que el codigo completo queda asi


#include<iostream>
#include<windows.h>

using namespace std;

int main()
{
   DWORD pid;
   cout<<"dame el pid del preceso: ";
   cin>>pid;
  	
   char texto[64]; 
   void *direccion;
   HANDLE Proceso=OpenProcess(PROCESS_ALL_ACCESS,0,pid);
   	
	if(Proceso)
	{	
	    cout<<"Dame la direccion: ";
	    cin>>direccion;
		
		ReadProcessMemory(Proceso,direccion,&texto,sizeof(texto),0);
		
		cout<<"El texto: "<<texto<<"  a sido encontrado ingrese el nuevo texto: ";
		cin>>texto;
		
	    WriteProcessMemory(Proceso,direccion,&texto,sizeof(texto),0);
	    
	    cout<<"El texto a sido ingresado correctamente";
	}
	
}


ya despues lo compilamos y ejecutamos aqui




nos pide el pid del ejecutable yo para este ejemplo usare el crackme de hendrix este y en el cuadro de texto le pondre polomon


abro el administrador de tareas en mi pc y miro que el pid es 3184


asi que lo tecleo en mi programa para leer


ahora antes de seguir busco la posicion de memoria de la palabra polomon que teclee en el programa de hendrix con el cheat engine asi


y buscamos el preceso aqui esta


damos clic en open y buscamos la palabra polomon asi


aparece lo siguiente


damos enter donde pusimos el pid y tecleamos la direccion de memoria asi


damos enter y nos arroja lo siguiente



 ahora para el nuevo texto que pondre sera 1234567890 y damos enter y me arroja lo siguiente


como ven solo escribio 7 digitos los mismos digitos que tiene polomon, en fin falta mucho que perfeccionar este simple codigo es para que se vallan familiarizando con estas apis...otra cosa este codigo no lee cadenas de unicode si tratan de leer solo leera la primera letra pero en fin eso para otro tema

saludos flamer y espero les halla gustado este simple codigo 


lunes, 3 de marzo de 2025

Crear una simple calculadora en javascript y html

Hola amigos hoy les dejare un codigo de una calculadora muy simple no es la gran cosa pero es para entretenerse un rato, lo hice lo mas simple que pude y sencillo solo copean el codigo y lo pegan en el bloc de notas y le ponen la extencion html 

bueno aqui una imagen de ella


bueno aqui el codigo 

 
<html>
<head><title>Calculadora</title>
</head>
<body>
<marquee>Mi Calculadora</marquee>
<br><br><br><br>
<center>
<input type="text" value="" size="30" id="log" disabled><br><br>
<input type="button" value="1" onclick="num('1')" style="width:50;height:50;font-size:30;">
<input type="button" value="2" onclick="num('2')" style="width:50;height:50;font-size:30;">
<input type="button" value="3" onclick="num('3')" style="width:50;height:50;font-size:30;">
<input type="button" value="+" onclick="num('+')" style="width:50;height:50;font-size:30;"><br>

<input type="button" value="4" onclick="num('4')" style="width:50;height:50;font-size:30;">
<input type="button" value="5" onclick="num('5')" style="width:50;height:50;font-size:30;">
<input type="button" value="6" onclick="num('6')" style="width:50;height:50;font-size:30;">
<input type="button" value="-" onclick="num('-')" style="width:50;height:50;font-size:30;"><br>

<input type="button" value="7" onclick="num('7')" style="width:50;height:50;font-size:30;">
<input type="button" value="8" onclick="num('8')" style="width:50;height:50;font-size:30;">
<input type="button" value="9" onclick="num('9')" style="width:50;height:50;font-size:30;">
<input type="button" value="*" onclick="num('*')" style="width:50;height:50;font-size:30;"><br>

<input type="button" value="AC" onclick="num('ac')" style="width:50;height:50;font-size:30;">
<input type="button" value="0" onclick="num('0')" style="width:50;height:50;font-size:30;">
<input type="button" value="=" onclick="num('=')" style="width:50;height:50;font-size:30;">
<input type="button" value="/" onclick="num('/')" style="width:50;height:50;font-size:30;"><br>

</center>
<script>
function num(n)
{
  switch (n)
  {
     case "1":
	 case "2":
	 case "3":
	 case "4":
	 case "5":
	 case "6":
	 case "7":
	 case "8":
	 case "9":
	 case "0":
	 case "+":
	 case "-":
	 case "*":
	 case "/":
        document.getElementById("log").value+=n
		break
	 case "ac":
	    document.getElementById("log").value=""
		break
	 case "=":
	    var cadena=document.getElementById("log").value
	    document.getElementById("log").value=eval(cadena)
        break
  }
}  

</script>
</body>
</html>

como ven primero declaramos los input que son el cuadro de texto y los botones y mas abajo en el bloque script se encuentra la funcion num(n) la cual obtiene el elemento que fue precionado si es un numero o un operando mas, menos, multiplicacion y etcétera.

si preciona el boton AC limpia el cuadro de texto y si preciona el igual calcula la ecuacion con el comando eval

espero les guste y si hago cosas sencillas es que son para principiantes que van empesando en el mundo de la programacion, yo no me declaro maestro o profecional soy novato a un y me toca mucho que aprender saludos Flamer


miércoles, 26 de febrero de 2025

Imprimir el promedio de un alumno en python usando array

Hola aqui les dejo un pequeño programa para calcular el promedio de un alumno usando python, es sencillo de comprender para los que se inician en este lenguaje

bueno primero pedimos el numero de materias del alumno asi

alumno=int(input("dame la cantidad de materias: "))

despues inicializamos una variable a cero y declaramos un array

cali=0 

nombres=[]

despues declaramos un ciclo for el cual pide el nombre de las materias y las almacena en un array y pide la calificacion de dicha materia para despues sumarla a la variable cali

for materia in range(0,alumno): 

   nom=input("dame el nombre de la materia "+ str(materia+1) + " : ") 

   nombres.append(nom)   

   c=int(input("dame la calificacion de la materia " + nom + " : ")) 

   cali+=c

saliendo del ciclo for calculamos el promedio dividiendo la suma de las calificaciones de cada materia entre el numero de ellas, la suma se encuentra en la variable cali y el numero de materias en la variable alumno

cali=cali/alumno

por ultimo imprimimos los resultados usando el comando print

print("tu promedio de las " + str(len(nombres)) + " es: " + str(cali))

bueno aqui les dejo el codigo completo


#pedimos la cantidad de materias con input y se almacena en la variable alumno
alumno=int(input("dame la cantidad de materias: "))
cali=0 # inicializamos la variable en 0 
nombres=[] #declaramos el array de nombres

for materia in range(0,alumno): # ciclo for 
   nom=input("dame el nombre de la materia "+ str(materia+1) + " : ") # pedimos el nombres de materias
   nombres.append(nom) # agragamos el nombre de la materia al array   
   c=int(input("dame la calificacion de la materia " + nom + " : ")) #pedimos la calificacion
   cali+=c # sumamos la calificacion

cali=cali/alumno # lo dividimos para calcular el promedio

print("tu promedio de las " + str(len(nombres)) + " es: " + str(cali)) #imprimimos el resultado


bueno espero les alla gustado saludos flamer


Solucion al error de xampp error exception eaccessviolation in module xampp control exe at 0025b292

Hola amigos hoy vamos a ver como solucionamos el error que nos muestra al dar clic en el boton salir de la aplicacion XAMPP, les muestro primero voy a ejecutar xampp y doy clic en salir


 y al dar clic nos muestra lo siguiente


para quitar esta ventana tendremos que ir al administrador de tareas y eliminar el proceso, damos clic derecho y eliminar proceso o precionando el boton suprimir

sino saben como sacar el administrador de tareas solo precionan la tecla windows+R y escriben taskmgr



bueno ahora para solucionar esto solo tenemos que irnos a la carpeta donde tenemos instalado XAMPP y buscamos el archivo xampp-control.ini es en esta ruta

C:\xampp


ya que lo encontramos pasamos a eliminarlo damos clic derecho y eliminar, despues de eliminarlo y volver ejecutar el xampp nos aparacera la siguiente ventana solo la primera ves


asi que damos clic en save y listo problema resuelto

saludos Flamer y espero les halla gustado


martes, 25 de febrero de 2025

Crear formulario de acceso con captcha y PHP

Hola amigos hoy vamos a crear un formulario de acceso con captcha, es muy sensillo solo copean el codigo en bloc de notas y otra cosa deberan de tener instalado el XAMPP el cual trae el apache y php entre otras herramientas si no saben como instalarlo les dejo el link de como instalarlo en una publicacion anterior que hice

https://elblogdeflamer.blogspot.com/2023/03/descargar-e-instalar-xampp-64-bits.html

bueno ya instalado copeamos el siguiente codigo en el bloc de notas y lo aguardamos en la ubicacion

C:\xampp\htdocs

yo le puse como nombre hola.php y asi quedaria el codigo, otra cosa  la clave del captcha para este codigo hola.php es esta siguiente...Nota mas abajo biene como obtener la clave



<html>
<head>
<title>login</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>'CAMPO OBLIGATORIO
</head>
<body>
<br><br><br>
<center>
<form action="login.php" method="post">
nombre:<input type="text" value="" name="nom"><br><br>
Contraseña:<input type="text" value="" name="pass"><br><br>
<input type="submit" value="Entrar">
<div class="g-recaptcha" data-sitekey="6Lcy0-IqAAAAAEsjwexDwAJ-1uucQYzgeTBT8JQ_"></div>'AQUI LA CLAVE DEL CAPTCHA</form>
</center>
</body>
</html>

y como ven el formulario manda la informacion a la pagina login.php y asi nos quedaria el codigo de este, otra cosa la clave para del captcha es esta




<?php
$nombre=$_POST['nom'];
$contraseña=$_POST['pass'];
$ip=$_SERVER['REMOTE_ADDR'];
$captcha=$_POST['g-recaptcha-response'];
$clavesecreta="6Lcy0-IqAAAAALro9NMrthncfLtOE0GyHh3gWrWK";'AQUI LA CLAVE DEL CAPTCHA

$respuesta=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$clavesecreta&response=$captcha&remoteip=$ip");

$datos=json_decode($respuesta,TRUE);

if(!$datos['success'])
{
	echo "Error verificar captcha";
}
else
{
	if(empty($nombre) || empty($contraseña))
	{
		echo "Error campos vacios";
	}	
	else if($nombre=="Flamer" && $contraseña=="123456789")
	{
		echo "Acceso Consedido";
	}	
	else
    {
		echo "Error de datos";
	}		
}	
?>

asi se mira la pagina del hola.php


ahora les dire como obtener las claves para la captcha nos iremos a esta pagina

https://www.google.com/recaptcha/admin/create


aqui nos aparecera lo siguiente



aqui ponen la etiqueta, el tipo y el dominio yo puse localhost y 127.0.0.1 por que estoy trabajando en mi propia maquina su su idea es poner la captcha en una pagina deberan poner el dominio hay en ese campo, bueno le dan en enviar y les aparesera las claves

esas son las claves no deberan de compartirlas si piensan agragarlas en un sitio, yo las eliminare solo las hise para este texto asemos lo siguiente


 clic en configuraciones y despues clic en eliminar


 

bueno yo ya las elimine, otra cosa las contraseña y el nombre deberian ir en la base de datos pero yo solo hice esto para el ejemplo...si hay errores por favor avisar


bueno saludos y espero les halla gustado saludos flamer


viernes, 5 de julio de 2024

Convertir de string a binario en C++

Hola amigos soy Flamer ahora haremos un simple programa en c++ para convertir una cadena de texto a binario, asi que primero damos clic en archivo y crear archivo fuente asi


ahora mandamos llamar las librerias a usar son las siguientes...Nota: no entrare en detalles con cada libreria, si quieren pueden buscarlas en google  

#include <iostream> 

#include <string>

#include <bitset>

ahora escribimos lo siguiente

using namespace std; //buscando en google este informa al compilador si algún identificador no está declarado, pero en mi esperiencia sirve para no estar declarando cada variable y estar poniendo std a cada rato


int main() //aqui declaramos el cuerpo del programa el main

{

string str; // declaramos la variable str

cout<<"ingresa una palabra:"; // imprimimos en pantalla el siguiente mensaje

        cin>>str; //ingresamos la palabra y es tomada por el programa


for (size_t i = 0; i < str.size(); i++) { //declaramos un ciclo para leer cada caracter

cout << bitset<8>(str[i]) << ' '; //imprimimos en pantalla cada caracter a binario

}


return 0; // fin del programa

}

bueno ahora compilamos y ejecutamos el programa asi


aqui corremos el programa




bueno saludos y espero les halla gustado Flamer

lunes, 17 de junio de 2024

Crear Acceso directo usando Javascript

 Hola amigos ahora les mostrare con un simple codigo en javascript como crear un acceso directo, primero creamos el objecto "Wscript.shell"

var var shell = new ActiveXObject("WScript.Shell");

como haremos el acceso directo en el escritorio como ejemplo asi que obtenemos la direccion del escritorio asi

var escritorio = shell.SpecialFolders("Desktop");

la ruta se almasenara en la variable escritorio, ahora creaamos el acceso directo con el comando shell.CreateShortcut y le agregamos la ruta y el nombre asi

fvar directo = shell.CreateShortcut(escritorio + "\\Acceso directo a notepad.lnk");

y todo se aguarda en la variable directo

y por ultimo le agregamos la ruta del ejecutable que en este caso sera el bloc de notas, el icono, las tecla de acceso rapido, descripcion y mas asi


directo.TargetPath = "notepad.exe";

directo.WindowStyle = 1;

directo.Hotkey = "CTRL+SHIFT+F";

directo.IconLocation = "notepad.exe, 0";

directo.Description = "Acceso directo a notepad";

directo.WorkingDirectory = escritorio;


al final lo aguardamos con el comando Save asi

directo.Save();

les dejo el codigo completo para que lo vean

var shell = new ActiveXObject("WScript.Shell");

var escritorio = shell.SpecialFolders("Desktop");

var directo = shell.CreateShortcut(escritorio + "\\Acceso directo a notepad.lnk");

    directo.TargetPath = "notepad.exe";

    directo.WindowStyle = 1;

    directo.Hotkey = "CTRL+SHIFT+F";

    directo.IconLocation = "notepad.exe, 0";

    directo.Description = "Acceso directo a notepad";

    directo.WorkingDirectory = escritorio;

    directo.Save();


bueno saludos y espero les guste solo copean y pegan el codigo en el bloc de notas y aguardan con la extencion .js......bueno saludos flamer