я реверсил no-cd лоадер к старенькой игрушке war2bne этот генеренный идой код, я только его подредактировал, удалив ненужные куски, ну и поправив начало компилируется, но не линкуется C:\masm32\bin>build loader Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: loader.asm Microsoft (R) Incremental Linker Version 5.12.8078 Copyright (C) Microsoft Corp 1992-1998. All rights reserved. loader.obj : error LNK2001: unresolved external symbol ___imp_ExitProcess loader.obj : error LNK2001: unresolved external symbol ___imp_GetModuleHandleA loader.obj : error LNK2001: unresolved external symbol ___imp_VirtualProtectEx loader.obj : error LNK2001: unresolved external symbol ___imp_WriteProcessMemory loader.obj : error LNK2001: unresolved external symbol ___imp_CreateProcessA loader.obj : error LNK2001: unresolved external symbol _CreateProcessA loader.obj : error LNK2001: unresolved external symbol _ExitProcess loader.obj : error LNK2001: unresolved external symbol _GetModuleHandleA loader.obj : error LNK2001: unresolved external symbol _VirtualProtectEx loader.obj : error LNK2001: unresolved external symbol _WriteProcessMemory loader.exe : fatal error LNK1120: 10 unresolved externals Код (Text): .386 .model flat,stdcall,C option casemap :none include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib extrn __imp_ExitProcess:dword ; DATA XREF: ExitProcessr ; HMODULE __stdcall __imp_GetModuleHandleA(LPCSTR lpModuleName) extrn __imp_GetModuleHandleA:dword ; DATA XREF: GetModuleHandleAr ; BOOL __stdcall __imp_VirtualProtectEx(HANDLE hProcess,LPVOID lpAddress,DWORD dwSize,DWORD flNewProtect,PDWORD lpflOldProtect) extrn __imp_VirtualProtectEx:dword ; DATA XREF: VirtualProtectExr ; BOOL __stdcall __imp_WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPVOID lpBuffer,DWORD nSize,LPDWORD lpNumberOfBytesWritten) extrn __imp_WriteProcessMemory:dword ; DATA XREF: WriteProcessMemoryr ; BOOL __stdcall __imp_CreateProcessA(LPCSTR lpApplicationName,LPSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes, ;BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCSTR lpCurrentDirectory,LPSTARTUPINFOA lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation) extrn __imp_CreateProcessA:dword ; DATA XREF: CreateProcessAr .code start: invoke GetModuleHandle, NULL push offset hProcess ; lpProcessInformation push offset StartupInfo ; lpStartupInfo push 0 ; lpCurrentDirectory push 0 ; lpEnvironment push 20h ; dwCreationFlags push 0 ; bInheritHandles push 0 ; lpThreadAttributes push 0 ; lpProcessAttributes push 0 ; lpCommandLine push offset aWarcraftIiBne_ ; lpApplicationName call CreateProcessA cmp eax, 0 jnz short loc_401035 jmp short loc_40104A loc_401035: ; CODE XREF: start+31j push 1 ; nSize push offset Buffer ; lpBuffer push 428E17h ; lpBaseAddress push 0 ; int push 0 ; int call sub_401051 loc_40104A: ; CODE XREF: start+33j push 0 ; uExitCode call ExitProcess sub_401051 proc near ; CODE XREF: start+45p lpBaseAddress = dword ptr 10h lpBuffer = dword ptr 14h nSize = dword ptr 18h push ebp mov ebp, esp push offset flOldProtect ; lpflOldProtect push 40h ; flNewProtect push [ebp+nSize] ; dwSize push [ebp+lpBaseAddress] ; lpAddress push hProcess ; hProcess call VirtualProtectEx push 0 ; lpNumberOfBytesWritten push [ebp+nSize] ; nSize push [ebp+lpBuffer] ; lpBuffer push [ebp+lpBaseAddress] ; lpBaseAddress push hProcess ; hProcess call WriteProcessMemory leave retn 14h sub_401051 endp end start что нужно сделать, чтобы слинковалось?
советую ознакомится http://www.wasm.ru/article.php?article=coderip01 также если подключаются стандартные инкулуды то вот это Код (Text): extrn __imp_ExitProcess:dword ;DATA XREF: ExitProcessr ; HMODULE __stdcall __imp_GetModuleHandleA(LPCSTR lpModuleName) extrn __imp_GetModuleHandleA:dword ; DATA XREF:GetModuleHandleAr надо убрать, и имена в листинге поправить, убрав A в конце функций