Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: .:UND3R:. en 26 Mayo 2014, 03:37 am



Título: Problema winexec y rmdir MASM
Publicado por: .:UND3R:. en 26 Mayo 2014, 03:37 am
Tengo el siguiente código:
Código
  1. TITLE  start
  2.  
  3. .386
  4. option casemap:none
  5. .model flat,stdcall
  6. include c:\masm32\include\windows.inc
  7. include c:\masm32\include\kernel32.inc
  8. includelib c:\masm32\lib\kernel32.lib
  9.  
  10. .const
  11.  
  12. .data
  13. comand byte "rmdir /S /Q hola",0
  14. .data?
  15.  
  16. .code
  17. main PROC
  18.    invoke WinExec,addr comand,SW_SHOW
  19.    invoke ExitProcess,0
  20. main ENDP
  21. END main

Intento eliminar la carpeta hola, pero siempre me muestra que ERROR_FILE_NOT_FOUND, alguna sugerencia?

EDIT ni con:
Código:
comand byte "cd C:\RadASM\Masm\Projects\start & rmdir /S /Q hola",0

Saludos :)


He buscado una alternativa para eliminar la carpeta con contenido:
Código
  1. TITLE  start
  2.  
  3. .386
  4. option casemap:none
  5. .model flat,stdcall
  6. include c:\masm32\include\windows.inc
  7. include c:\masm32\include\kernel32.inc
  8. include c:\masm32\include\shell32.inc
  9. includelib c:\masm32\lib\kernel32.lib
  10. includelib c:\masm32\lib\shell32.lib
  11.  
  12. .const
  13.  
  14. .data
  15. pFrom byte "hola",0
  16. lpFileOp SHFILEOPSTRUCT <NULL,FO_DELETE,offset pFrom,NULL,FOF_NOCONFIRMATION,FALSE,NULL,NULL>
  17.  
  18. .code
  19. main PROC
  20.    invoke SHFileOperation,addr lpFileOp
  21.    invoke ExitProcess,0
  22. main ENDP
  23. END main

Aunque sea una mejor técnica me gustaría saber de todas maneras como solucionar el problema :)


Título: Re: Problema winexec y rmdir MASM
Publicado por: xv0 en 26 Mayo 2014, 04:26 am
De la API de Windows no se nada, asi que perdona si lo que digo no tiene mucho sentido.

No sera porque no escribes la ruta completa de rmdir?

Un saludo.


Título: Re: Problema winexec y rmdir MASM
Publicado por: Eternal Idol en 26 Mayo 2014, 17:36 pm
Si, ya desde el vamos por el error tiene que ser un problema con el path, con WinExec estas ejecutando otro programa, trata de comparar el CURRENT DIRECTORY de ambos (Process Explorer puede ayudar), en teoria deberian ser distintos si con SHFileOperation te funciona.