elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ... 77
101  Programación / Programación C/C++ / Re: Problema removiendo clave de registro en: 18 Abril 2016, 00:32 am
Quizas... podrias probar en una maquina virtual con otra version de Windows con un registro mas pequeño "de prueba" a ver si te pasa lo mismo (por si tu registro tiene alguna cosa "rara")

Eso tenía pensado hacer, y lo he hecho.

En la máquina virtual con otro windows 10 (ya que el win7 en la virtualbox me va petadísimo).

Y el resultado para mi sorpresa ES EL MISMO.

Te deja crear claves pero no eliminarlas, y eso tiene sentido pues si vamos a el administrador de tareas en la pestaña "inicio" podemos deshabilitar un programa del inicio, pero sin embargo su clave persiste y no se borra. Para poder reestablecernos, debemos eliminar la clave y luego crearla, de esa manera nuestro programa estará habilitado de nuevo, luego creo que es por seguridad.

Saludos.
102  Programación / Programación C/C++ / Re: Problema removiendo clave de registro en: 17 Abril 2016, 16:21 pm
El único problema que tuve con el registro fue bucles infinitos al dumpear en C++ por las claves redirigidas.

Por lo demás...

¿Solo es <esa> sub-clave, o es cualquiera en Run?
Si es cualquier ane Run... ¿te funciona para claves en otros lugares?

Hola ivancea gracias por la respuesta y ayuda como siempre ;)

Pues pasa para todas las de Run y a las de otros directorios también parece, incluso desde la terminal da errores al borrar para otros directorios:

Citar
C:\Users\Usuario>reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Spotify
¿Desea eliminar permanentemente la clave del Registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Spotify (Sí/No)? si
ERROR: El sistema no ha podido encontrar la clave o el valor del Registro
especificados.

Citar
C:\Users\Usuario>reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\UpgradedProfile
¿Desea eliminar permanentemente la clave del Registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\UpgradedProfile (Sí/No)? si
ERROR: El sistema no ha podido encontrar la clave o el valor del Registro
especificados.

Incluso como administrador no me deja borrar las de otros directorios:

Citar
C:\WINDOWS\system32>reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\UpgradedProfile
¿Desea eliminar permanentemente la clave del Registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\UpgradedProfile (Sí/No)? si
ERROR: El sistema no ha podido encontrar la clave o el valor del Registro
especificados.

Citar
C:\WINDOWS\System32>reg delete HKEY_CURRENT_USER\Environment\PT6HOME
¿Desea eliminar permanentemente la clave del Registro HKEY_CURRENT_USER\Environment\PT6HOME (Sí/No)? SI
ERROR: El sistema no ha podido encontrar la clave o el valor del Registro
especificados.

Incluso fuera de HKCU:

Citar
C:\WINDOWS\system32>reg delete HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip\Path
¿Desea eliminar permanentemente la clave del Registro HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip\Path (Sí/No)? si
ERROR: El sistema no ha podido encontrar la clave o el valor del Registro
especificados.

Resumen: No puedo borrar aparentemente NINGUN registro desde terminal, ni desde el programa, ni con privilegios ni sin ellos, recibo siempre el mismo error:

"ERROR: El sistema no ha podido encontrar la clave o el valor del Registro
especificados."

Eso si escribir en el registro siempre deja con y sin permisos sin problema con el terminal y con el programa.

Citar
....>REG ADD HKEY_CURRENT_USER\SOFTWARE\7-Zip /f /v EnableLUA /t REG_SZ /d 0
Operacion realizada correctamente.

Será cosa del ordenador viruses y demás seguramente..

El unico programa que es capaz de cerrarlo es regedit con permisos de administrador, me pregunto si al poner "REG" en el terminal estoy llamando a regedit, porque sino es así quizás ejecutandolo con los parametros de borrado y con privilegios sea capaz de borrarlo el desde el programa, pero vamos.

Saludos.
103  Programación / Programación C/C++ / Re: Problema removiendo clave de registro en: 16 Abril 2016, 16:25 pm
¿Probaste con ambas opciones, KEY_WOW64_64KEY y KEY_WOW64_32KEY en RegDeleteKeyEx?
No vaya a ser una clave redirigida.

También XD, ¿podéis probar vosotros a ver cual es el resultado, funciona o es cosa de mi ordenador? con mi funcion de escritura que he puesto y la de borrado bastará para hacer las pruebas. Luego es abrir regedit y comprobar el registro en cuestión, la función de escritura añadirá al registro el nombre del ejecutable que ejecuta el código, solo hay que pasarla un nombre para la clave, y privilegios ponedlos a false.

De todas maneras, seguiré indagando dónde puede estar el error, porque no hay explicación alguna para que falle, dice que "El sistema no puede encontrar el archivo especificado." WTF.

Saludos y gracias socio.
104  Programación / Programación C/C++ / Re: Problema removiendo clave de registro en: 16 Abril 2016, 12:46 pm
¿Con regedit puedes?

Sí XD, pero solo directamente desde ella, desde su interfaz gráfica.

Código
  1. C:\WINDOWS\system32>reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\pepito
  2. ¿Desea eliminar permanentemente la clave del Registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\pepito (Sí/No)? si
  3. ERROR: El sistema no ha podido encontrar la clave o el valor del Registro
  4. especificados.
  5.  

Es que es raro de cojones, porque si no la encuentra antes de pedirme confirmación me dice "ERROR: nombre de clave no válido."
105  Seguridad Informática / Hacking / Re: Arp spoofing con Caín y Abel en: 16 Abril 2016, 12:45 pm
Gracias por tu respuesta, Kaxperday. La pondré en práctica aunque hasta el lunes no tengo acceso a otros routers. ¿Podrías decirme cómo accedo al mío como administrador? Es al único al que puedo acceder entrando en el portal Alejandra pero nunca he visto esa opción.
Gracias y un abrazo

He editado, el mensaje anterior, pensaba que tenías un problema al hacer el spoofing en windows 10 como ha ocurrido a algunos usuarios entre ellos yo, pero si les sale la alerta en el navegador a las victimas es que si te funciona.

Prueba a cambiar la configuración, a cargar en las victimas páginas con HTTP y loguearte en ellas...

Saludos :)
106  Programación / Programación C/C++ / Re: Problema removiendo clave de registro en: 16 Abril 2016, 12:33 pm
Si tal, prueba a borrar con RegDeleteTree.

Mismo resultado:

Código
  1. if (RegDeleteTree(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run\\pepito") == NO_ERROR){
  2. cout << "conseguido";
  3. return true;
  4. }
  5.  

Caso perdido, que se quede con el registro, se le regalo :"D
107  Seguridad Informática / Hacking / Re: Arp spoofing con Caín y Abel en: 16 Abril 2016, 12:29 pm
Bueno releyendo tu comentario, parece que haces el spoofing correctamente.

Si se te desconecta a veces estoy casi seguro que es debido a una mala conexión a la red como en el caso de que uses wifi y la señal no sea la mejor, a mi me han ocurrido casos.

Si a las victimas les aparece el cartelito es que el navegador detecta un certificado falso seguramente, prueba cambiando la configuración, yo no tengo ni idea de cain y abel.

Suerte.
108  Programación / Programación C/C++ / Re: Problema removiendo clave de registro en: 16 Abril 2016, 12:05 pm
Utiliza FormatMessage para ver el error que lanza. Guarda el retorno en una variable en vez de ponerlo directamente en wl if.

Y recuerda que el último parámetro de RegDeleteKeyEx es reservado y debe ser NULL.

Wow sorprendente resultado, desconocía la función FormatMessage.

Código
  1. LSTATUS l = RegDeleteKeyW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run\\pepito");
  2. LPTSTR errorText = NULL;
  3.  
  4. FormatMessageW(
  5. // use system message tables to retrieve error text
  6. FORMAT_MESSAGE_FROM_SYSTEM
  7. // allocate buffer on local heap for error text
  8. | FORMAT_MESSAGE_ALLOCATE_BUFFER
  9. // Important! will fail otherwise, since we're not
  10. // (and CANNOT) pass insertion parameters
  11. | FORMAT_MESSAGE_IGNORE_INSERTS,
  12. NULL,    // unused with FORMAT_MESSAGE_FROM_SYSTEM
  13. l,
  14. MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
  15. (LPTSTR)&errorText,  // output
  16. 0, // minimum size for output buffer
  17. NULL);   // arguments - see note
  18.  
  19. if (NULL != errorText)
  20. {
  21. // ... do something with the string `errorText` - log it, display it to the user, etc.
  22. wcout << errorText;
  23. // release memory allocated by FormatMessage()
  24. LocalFree(errorText);
  25. errorText = NULL;
  26. }
  27.  

Salida: "El sistema no puede encontrar el archivo especificado." Con y sin permisos no lo encuentra. Y yo me pregunto, ¿como no lo encuentra si esta todo bien? ¿quizás porque use unicode?, he probado también a eliminar otra clave del mismo directorio "Spotify", y el resultado ha sido el mismo, que no lo encuentra. :"D
109  Programación / Programación C/C++ / Re: Problema removiendo clave de registro en: 16 Abril 2016, 11:43 am
Prueba a poner GetLastError después del RegDeleteKeyEx. Antes de los RegClsoeKey.
Si sale un error diferente de 0, mira su significado con FormatMessage.

Si sigues sin obtener error, asegúrate que la primera clave es la correcta: antes del Delete, enumera las sub-claves para asegurarte de que existe. Si no quieres enumerar, al menos trata de abrirla.

Abre como administrador, no vaya a ser un error trivial.

Hola ivancea, gracias por la respuesta.

Se me olvidó mencionar anteriormente que no tiene privilegios la aplicación, pero es que no los debería de necesitar, para crear la clave y leerla en HKEY_CURRENT_USER no necesita privilegios, y para borrarla pues debería de ser igual (ya que también he probado a hacerlo intentandola borrar con privilegios y falla también, luego los privilegios no son el problema).

He probado como dijistes a listar el directorio (hacer un enum RegEnumKeyEx), en este caso para "HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run" y ha mostrado las claves con éxito incluida la que quiero borrar "pepito" :)

Luego puedo escribir en HKEY_CURRENT_USER con RegSetValueEx y leer sus variables para comprobar si existen con RegGetValue, pero el RegDeleteEx... ni con privilegios ni sin ellos es capaz de borrar en HKEY_CURRENT_USER ni en HKEY_LOCAL_MACHINE.

He probado a llamarla de 3 maneras:

Citar
RegDeleteKeyEx(hKeyOutput, keyName, options, RRF_RT_REG_SZ)
RegDeleteKeyEx(hKeyOutput, keyName, options, REG_SZ)
RegDeleteKeyEx(hKeyOutput, keyName, options, NULL)

Todas sin éxito, la clave creada es de tipo REG_SZ.

Y es que no sé, mirad esta es la funcion que ancla al registro y crea la clave que luego procedemos a borrar, funciona perfectamente:

Código
  1. bool AttachToRegistry(bool privileges, LPCWSTR keyName)
  2. {
  3. WCHAR processPath[MAX_PATH];
  4. HKEY hKeyOutput;
  5. HKEY hKeyInput;
  6. DWORD options;
  7. BOOL ret = FALSE;
  8.  
  9. hKeyInput = (privileges) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
  10. options = (arquitecturax64()) ? KEY_ALL_ACCESS | KEY_WOW64_64KEY : KEY_ALL_ACCESS | KEY_WOW64_32KEY;
  11.  
  12. if (GetModuleFileName(NULL, processPath, MAX_PATH))
  13. {
  14. std::wstring p = L"\"" + std::wstring(processPath) + L"\"";
  15.  
  16. if (RegOpenKeyEx(hKeyInput, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, options, &hKeyOutput) == NO_ERROR)
  17. {
  18. if (RegSetValueEx(hKeyOutput, keyName, NULL, REG_SZ, (LPBYTE)p.c_str(), p.length()*2) == NO_ERROR)
  19. {
  20. ret = TRUE;
  21. }
  22. RegCloseKey(hKeyInput);
  23. RegCloseKey(hKeyOutput);
  24. }
  25. }
  26.  
  27. return ret;
  28. }
  29.  

Como la de borrar es una copia de la misma, ha diferencia de que en vez de llamar a RegSetValueEx llama a RegDeleteKeyEx, probaré con RegDeleteKey y os cuento.

Saludos.

Edito: Acabo de probar con RegDeleteKey el resultado es el mismo, no funciona ni con ni sin permisos, no hay manera de borrarla, ¿algún hook?.

En el main mismo:

Código
  1. if (RegDeleteKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run\\pepito") == ERROR_SUCCESS)
  2. {
  3. cout << "Borrado";
  4. }
  5. cout << GetLastError();
  6.  

Muestra 0, es decir no borra ni entra en el if y no detecta error.

Probaré con un tercer método que si espero que funcione, con "system", ahora os digo.

Con batch da error:, con y sin permisos:

Código:
Código
  1. system("REG DELETE HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\pepito");

"¿Desea eliminar permanentemente la clave del Registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\pepito (Sí/No)? si
ERROR: El sistema no ha podido encontrar la clave o el valor del Registro
especificados."

Me dice que no la encuentra, pero bien que aparece en regedit y al hacer el enum. :"DDD
110  Programación / Programación C/C++ / Re: Problema removiendo clave de registro en: 15 Abril 2016, 18:12 pm
¿Qué parte falla?
-¿Entra al if del open?
-¿Comprobaste que la clave abierta es la correcta?
-¿Entra al if del delete?

-En caso de que haya algún error, ¿qué error da GetLastError?

Lo probé todo lo que dijistes pero no lo puse en el código.

Entra en el if de RegOpenKeyEx pero no en el de RegDeleteKeyEx ya que da error.

También probé a llamar a GetLastError() pero returnaba 0, lo puse justo detrás del if del delete.

Y poco más, la dirección de la clave abierta debe de ser la misma ya que para crearla uso el mismo código para abrirla (el mismo open). No entiendo que puede fallar :/

Con permisos ocurre lo mismo.

Iré mirando, gracias por las respuestas, y a ver si lo encuentro solución.

Saludos.

Edito: Mejor os paso el código con el "debugger" XD:

Código
  1. bool RemoveFromRegistry(bool privileges, LPCWSTR keyName)
  2. {
  3. HKEY hKeyOutput;
  4. HKEY hKeyInput;
  5. DWORD options;
  6. BOOL ret = FALSE;
  7. //poner HKEY_USERS
  8. hKeyInput = (privileges) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
  9. options = (arquitecturax64()) ? KEY_ALL_ACCESS | KEY_WOW64_64KEY : KEY_ALL_ACCESS | KEY_WOW64_32KEY;
  10.  
  11. if (RegOpenKeyEx(hKeyInput, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, options, &hKeyOutput) == NO_ERROR)
  12. {
  13. cout << "hola1";
  14. options = (arquitecturax64()) ? KEY_WOW64_64KEY : KEY_WOW64_32KEY;
  15. if (RegDeleteKeyEx(hKeyOutput, keyName, options, NULL) == NO_ERROR)
  16. {
  17. cout << "hola2";
  18.  
  19. ret = TRUE;
  20. }
  21. RegCloseKey(hKeyInput);
  22. RegCloseKey(hKeyOutput);
  23. cout << GetLastError();
  24. }
  25. cout << "hola3";
  26. return ret;
  27. }
  28.  

Salida:

Citar
hola10hola3
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ... 77
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines