Name del propio exe sin ruta ni extensión[FASM][Solucionado]
Publicado: 14 Sep 2010, 23:21
Bueno como algunos sabrán (Ps1c0s1s y alguno más..) estoy empezando en plan n00b con ASM.. en concretó empecé con FASM a hacer programitas sencillitos y bueno ahora estoy haciendo uno que necesita guardar en una string su propio nombre, pero sin el path ni extensión, es decir, como si le hicieramos un ExtractFileName y le quitaramos la extensión con ExtractFileExt en delphi por ejemplo.
He investigado y os dejo algunos codes que he visto no se cómo implementarlo para que me devuelva correctamente la string que quiero
(por ejemplo si el archivo está en C:\lalala.exe pues que me devuelva "lalala" solamente)
El getNameOfSelf de Antrax que no logro leer entero el eax:
Este code que me rompe la ejecución:
o alguna función propia para quitar lo que sobra de la ruta y al extensión a partir de la string que devuelve GetModuleFileName (no se ni por donde empezar )
espero que puedan ayudarme con esto que apenas estoy empezando con ASM..
si todo va bien postearé pronto la nueva tool en ASM jeje
Saludos!
He investigado y os dejo algunos codes que he visto no se cómo implementarlo para que me devuelva correctamente la string que quiero
(por ejemplo si el archivo está en C:\lalala.exe pues que me devuelva "lalala" solamente)
El getNameOfSelf de Antrax que no logro leer entero el eax:
Código: Seleccionar todo
GetNameOfSelf:
mov eax, [fs:0x30]
mov eax, [eax+0x0C]
mov eax, [eax+0x14]
mov ecx, [eax+0x24] ;Length
mov eax, [eax+0x28] ;Buffer(Unicode btw)
ret
Este code que me rompe la ejecución:
Código: Seleccionar todo
proc FileNameFromFile,cFile
mov ebx,[cFile]
mov eax,-1
incrementLengthLoop:
inc eax
cmp byte [ebx+eax],0
jne incrementLengthLoop
xor ebx,ebx
add eax,[cFile]
inc eax
lea esi,[eax]
searchFileNameLoop:
dec esi
cmp byte [esi],0x5C ; 0x5c = '\'
jne searchFileNameLoop
inc esi
mov eax,esi
xor esi,esi
ret
endp
Código: Seleccionar todo
push MAX_PATH
push String
push NULL
call GetModuleFileName
si todo va bien postearé pronto la nueva tool en ASM jeje
Saludos!