Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Token32 en 10 Octubre 2013, 06:24 am



Título: Problema al ligar (SOLUCIONADO)
Publicado por: Token32 en 10 Octubre 2013, 06:24 am
Tengo un programa muy simple que llama a ExitProcess de win32
pero al ligarlo con ld me tira este error "xim.obj:xim.asm:(.code+0x3): undefined reference to `ExitProcess@4´"

El codigo :
Código:
;xim.asm
global _start
extern _GetStdHandle@4
extern _ExitProcess@4
[section .code use32]
_start :
push dword 0
call _ExitProcess@4

Para compilarlo :
nasm -f win32 xim.asm
ld xim.obj -e _start -o xim.exe


Alguien sabe que puedo hacer para resolverlo?


Título: Re: Problema al ligar
Publicado por: Eternal Idol en 10 Octubre 2013, 09:08 am
ExitProcess es una funcion de la libreria Kernel32.dll, necesitas la libreria de importacion (Kernel32.lib) para que el enlazador pueda resolver el simbolo (ExitProcess@4).


Título: Re: Problema al ligar (SOLUCIONADO)
Publicado por: Token32 en 12 Octubre 2013, 20:35 pm
Gracias lo he solucionado instalando Windows SDK hay esta la biblioteca kernel32.Lib
al ligar solo agrego el directorio de la biblioteca
Código:
	ld -e _start xim.obj -kernel32 -L"C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib" -o xim.exe


Título: Re: Problema al ligar (SOLUCIONADO)
Publicado por: Eternal Idol en 12 Octubre 2013, 21:04 pm
De nadas  ::)