• Name del propio exe sin ruta ni extensión[FASM][Solucionado]

 #230815  por R-007
 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:
Código: [ Debe registrarse para ver este enlace ]
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: [ Debe registrarse para ver este enlace ]
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
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 )
Código: [ Debe registrarse para ver este enlace ]
                push    MAX_PATH
                push    String
                push    NULL
                call    GetModuleFileName
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!
 #230824  por The Swash
 15 Sep 2010, 00:11
Creo que postearas un Offset anotator =) mmm tengo poca experiencia con ASM así que dejo que alguien con mas conocimientos te ayude
Suerte en ASM de seguro te ira de lujo!
 #231037  por ps1c0s1s
 15 Sep 2010, 15:43
Con el amigo ! por el msn :P ! vamos a ver que se hace jaja!
 #231130  por p0is0n-123
 15 Sep 2010, 21:08
Acordate de al final hacer un
invoke ExitProcess,0
o Crasheará la aplicacion,poco mas te puedo ayudar...Deje el aprendizaje de FASM por la mitad...

Salu2....
 #231158  por R-007
 15 Sep 2010, 22:38
gracias a todos por vuestra ayuda :)
YA LO CONSEGUÍ Ps1c0! eres un genio man :P
a los 2 minutos de irte del msn conseguí lo del puntero.. fallaba por escribir después el salto de linea pero ya está todo perfecto

voy a postearlo :P

Saludos!!!