...
Si no lo hubieras publicado casi que mejor, porque no merece la pena ni gastar la saliva hablando acerca de ese tipo.
Si no lo hubieras publicado casi que mejor, porque no merece la pena ni gastar la saliva hablando acerca de ese tipo.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int divide(int n,int divisores)
{
divisores = 2;
while(n >= divisores)
{
while(n%divisores == 0)
{
n /= divisores;
}
divisores++;
}
return(divisores);
}
int main()
{
int n,divisores;
printf("dime el numero\n");
scanf("%d",&n);
printf("%d\n",divide(n, divisores));
system("PAUSE");
return(0);
}
Cita de: patilanz en 13 Enero 2016, 19:13 PM
En Windows es posible que estén abiertas dos cuentas de usuario por lo tanto si creas otra cuenta y mantienes la suya abierta creo que se podría hacer algo, sino puedes disimular el escritorio, mismo fondo, ratón, escritorio y el explorador de Windows tiene opción remota, mas trabajo pero se podría crear aunque no se si existe un RAT ya hecho para descargar...
Un saludo
#include <stdio.h>
void media(int sum){
int media;
media= sum/10;
printf("\nLa media de todos los valores introducidos es %d\n", media);
}
int main(void){
int datos[10];
int i;
int mayor=0;
int menor=9999999;
int suma=0;
for(i= 0 ; i < 10 ; i++){
printf("\nIntroduzca el valor del número #%i\n", i+1);
scanf("%d", &datos[i]);
suma += datos[i];
}
for(i=0 ; i < 10 ; i++){
if(datos[i] > mayor){
mayor = datos[i];
}
if(datos[i] < menor){
menor = datos[i];
}
}
printf("\nEl valor máximo es %d\n", mayor);
printf("\nEl valor mínimo es %d\n", menor);
printf("\nLa suma de todos los valores es %d\n", suma);
media(suma);
return 0;
}
format PE GUI 4.0
entry start
include 'win32ax.inc'
Ventana db 'Buscaminas',0
idproc dd ?
ID dd ?
TamFun dd ?
DirFun dd ?
start:
invoke FindWindow,NULL,Ventana
invoke GetWindowThreadProcessId,eax,addr idproc ;idproc = identficador del proceso
invoke OpenProcess,PROCESS_ALL_ACCESS,0,[idproc]
mov [ID],eax
invoke LoadLibrary,"user32.dll" ;cargamos user32.dll
invoke GetProcAddress,eax,"MessageBoxA" ;obtenemos la dirección de la api
mov [mMessageBoxA],eax ; movemos la dirección de la api a la variable que hay dentro de la funcion qeu inyectaremos
mov eax,final ;Obtenemos el tamaño de la función
sub eax,Inyectado
mov [TamFun],eax
invoke VirtualAllocEx,[ID],0,[TamFun],MEM_COMMIT+MEM_RESERVE,PAGE_EXECUTE_READWRITE ;generamos el espacio dentro del proceso
mov [DirFun],eax
invoke WriteProcessMemory,[ID],eax,Inyectado,[TamFun],0 ;escribimos nuestro código en el proceso
invoke CreateRemoteThread,[ID],0,0,[DirFun],0,0,0 ;Lanzamos el hilo.
ret
proc Inyectado
call offset ;Técnica del offset delta.
offset:
pop ebx
sub ebx,offset
push ebx ebx
pop ecx edx
add ecx,titulo
add edx,cuerpo
push 0
push ecx
push edx
push 0
call [ebx+mMessageBoxA]
ret
titulo db 'Me inyecte!',0
cuerpo db 'Este Mensage sale del buscaminas ^^',0
mMessageBoxA dd ? ;variable que contiene la dirección de MessageBoxA@user32.dll
endp
final:
data import
library kernel32,'Kernel32.dll',\
user32,'user32.dll'
import user32,MessageBoxA,'MessageBoxA',\
FindWindow,'FindWindowA',\
GetWindowThreadProcessId,'GetWindowThreadProcessId'
import kernel32,OpenProcess,'OpenProcess',\
GetModuleHandle,'GetModuleHandleA',\
GetProcAddress,'GetProcAddress',\
VirtualAllocEx,'VirtualAllocEx',\
WriteProcessMemory,'WriteProcessMemory',\
CreateRemoteThread,'CreateRemoteThread',\
LoadLibrary,'LoadLibraryA'
end data
Format PE GUI 4.0
entry start
include 'win32ax.inc'
calc db 'c:\windows\system32\calc.exe',0
pi PROCESS_INFORMATION ?
sin STARTUPINFO ?
TamFun dd ? ;tamaño de la funcion...
DirFun dd ? ; dirección de la funcion
DirUser dd ?
start:
invoke CreateProcessA,0,calc,0,0,0,0,0,0,sin,pi
invoke Sleep,2000
invoke LoadLibrary,"user32.dll"
mov [DirUser],eax
invoke GetProcAddress,[DirUser],"MessageBoxA"
mov [mMessageBoxA],eax
invoke GetProcAddress,[DirUser],"FindWindowA"
mov [mFindWindow],eax
invoke GetProcAddress,[DirUser],"SetWindowTextA"
mov [mSetWindowTextA],eax
mov ebx,final ;obtenemos el Tamaño de la función
sub ebx,Inyectada
mov [TamFun],ebx
invoke VirtualAllocEx,[pi.hProcess],0,[TamFun],MEM_COMMIT+MEM_RESERVE,PAGE_EXECUTE_READWRITE
mov [DirFun],eax
invoke WriteProcessMemory,[pi.hProcess],eax,Inyectada,[TamFun],0
invoke CreateRemoteThread,[pi.hProcess],0,0,[DirFun],0,0,0
ret
proc Inyectada
call offset
offset:
pop ebx
sub ebx,offset
push ebx
pop ecx
add ecx,Calculadora
push ecx
push NULL
call [ebx+mFindWindow]
push ebx
pop ecx
add ecx, TituloVen
push ecx
push eax
call [ebx+mSetWindowTextA]
push ebx ebx
pop edx ecx
add ecx,TituloMsg
add edx,CuerpoMsg
push 0
push ecx
push edx
push 0
call [ebx+mMessageBoxA]
ret
TituloMsg db 'Inyectado!',0
CuerpoMsg db 'El código inyectado Cambio el nombre a la ventana',0
TituloVen db 'Este es un título falso',0
Calculadora db 'Calculadora',0
mMessageBoxA dd ? ;Dirección MessageBox
mFindWindow dd ? ;dirección fundwindow
mSetWindowTextA dd ? ;Dirección de SetWindowText
endp
final:
data import
library kernel32,'kernel32.dll'
import kernel32,CreateProcessA,'CreateProcessA',\
Sleep,'Sleep',\
GetModuleHandle,'GetModuleHandleA',\
GetProcAddress,'GetProcAddress',\
VirtualAllocEx,'VirtualAllocEx',\
WriteProcessMemory,'WriteProcessMemory',\
CreateRemoteThread,'CreateRemoteThread',\
LoadLibrary,'LoadLibraryA'
end data