Página 1 de 1

[FASM] Annotator (1.5 KB)

Publicado: 31 May 2015, 19:17
por Slek
Buenas, practicando un poco de ensamblador -para no oxidarme- he hecho este simple annotator en fasm. Básicamente, añade el nombre del ejecutable al fichero "Check.txt". Cada entrada se separa con un salto de línea estlo Windows. Buscando por el foro he visto una herramienta similar -de 3 KB-, pero no he visto el source. Por este motivo he decidido publicarlo.

Para ello escanea la ruta del ejecutable hacia atrás en busca del primer punto. Luego busca la primera \ y calcula la diferencia. Además, añade el salto de línea donde debería estar la extensión del archivo (.EXE). Finalmente, escribe dicha subcadena al final del archivo de texto que abrimos inicialmente, para que quede registrado.
include 'win32ax.inc'

newLine = 0xA0D

.data
  buffer db MAX_PATH dup(?)

.code
 
  start:
    invoke CreateFile,filename,GENERIC_WRITE,0,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL
    push eax ;EBP-8
    invoke GetModuleFileName,0,buffer,MAX_PATH
    mov ecx,eax
    mov edi,buffer
    add edi,eax
    mov al,'.'
    std
    repnz scasb
    mov word [edi+1],newLine
    mov edx,ecx
    add edx,3
    mov al,'\'
    repnz scasb
    cld
    add ecx,2
    sub edx,ecx
    add edi,2
    push 0
    push 0
    push edx
    push edi
    push dword [ebp-8]
    invoke SetFilePointer,dword [ebp-8],0,0,FILE_END
    call [WriteFile]
    call [CloseHandle]
    invoke ExitProcess,0
    filename db 'Check.txt',0
 
.end start
Un saludo!

Re: [FASM] Annotator (1.5 KB)

Publicado: 31 May 2015, 20:39
por Pink
Excelente bro.

So ideas mias o te falta un parametro? o.O


usando FILE_APPEND_DATA te ahorras lo de setfilepointer y todo lo demás.


Saludos bro

Re: [FASM] Annotator (1.5 KB)

Publicado: 31 May 2015, 20:45
por Blau
Me guardo el source por si algún día me da por aprender (F)ASM, ¡gracias!

Re: [FASM] Annotator (1.5 KB)

Publicado: 31 May 2015, 20:55
por _ROOTt_
gracias Slek

Re: [FASM] Annotator (1.5 KB)

Publicado: 31 May 2015, 21:07
por Pink
Me retracto en lo del parametro.
Saludos.

Re: [FASM] Annotator (1.5 KB)

Publicado: 31 May 2015, 21:21
por Slek
Muchas gracias a todos!

Tienes razón Pink! Falta el último parámetro: hTemplateFile
Y no conocía el acceso FILE_APPEND_DATA, muchas gracias!

Aquí va el code corregido y sin SetFilePointer:
include 'win32ax.inc'

newLine = 0xA0D
FILE_APPEND_DATA = 0x0004

.data
  buffer db MAX_PATH dup(?)

.code
 
  start:
    invoke CreateFile,filename,FILE_APPEND_DATA,0,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
    push eax
    invoke GetModuleFileName,0,buffer,MAX_PATH
    mov ecx,eax
    mov edi,buffer
    add edi,eax
    mov al,'.'
    std
    repnz scasb
    mov word [edi+1],newLine
    mov edx,ecx
    add edx,3
    mov al,'\'
    repnz scasb
    cld
    add ecx,2
    sub edx,ecx
    add edi,2
    mov eax,[esp]
    invoke WriteFile,eax,edi,edx,0,0
    call [CloseHandle]
    invoke ExitProcess,0
    filename db 'Check.txt',0
 
.end start
P.D: fasm tampoco reconoce FILE_APPEND_DATA, por eso lo he tenido que definir a mano :D

Re: [FASM] Annotator (1.5 KB)

Publicado: 01 Jun 2015, 12:30
por Scorpio
De lujo bro, yo hice un intento de algo parecido de 2Kb (http://www.indetectables.net/viewtopic. ... b337b31b3e), pero nada que ver con esto maquina.

//Regards.

Re: [FASM] Annotator (1.5 KB)

Publicado: 01 Jun 2015, 13:19
por Pink
Cuando dije me retracto por lo del parámetro lo dije porque el ultimo es opcional(En algunos Lenguajes no hace falta colocarlos si no se van a usar).

Saludos bro

Re: [FASM] Annotator (1.5 KB)

Publicado: 01 Jun 2015, 19:45
por Kaway
Gracias brother , perfect

Re: [FASM] Annotator (1.5 KB)

Publicado: 02 Jun 2015, 21:49
por Slek
Gracias a los dos :D

¡Saludos!